为您找到与linux内核空间地址空间占用范围相关的共200个结果:
今天读文网小编就要跟大家讲解下从Linux内核访问用户空间内存的方法~那么对此感兴趣的网友可以多来了解了解下。下面就是具体内容!!!
Linux内核访问用户空间内存的方法
首先读文网小编必须要给大家科普下什么是Linux 内存
在 Linux 中,用户内存和内核内存是独立的,在各自的地址空间实现。地址空间是虚拟的,就是说地址是从物理内存中抽象出来的(通过一个简短描述的过程)。由于地址空间是虚拟的,所以可以存在很多。事实上,内核本身驻留在一个地址空间中,每个进程驻留在自己的地址空间。这些地址空间由虚拟内存地址组成,允许一些带有独立地址空间的进程指向一个相对较小的物理地址空间(在机器的物理内存中)。不仅仅是方便,而且更安全。因为每个地址空间是独立且隔离的,因此很安全。
但是与安全性相关联的成本很高。因为每个进程(和内核)会有相同地址指向不同的物理内存区域,不可能立即共享内存。幸运的是,有一些解决方案。用户进程可以通过 Portable Operating System Interface for UNIX? (POSIX) 共享的内存机制(shmem)共享内存,但有一点要说明,每个进程可能有一个指向相同物理内存区域的不同虚拟地址。
虚拟内存到物理内存的映射通过页表完成,这是在底层软件中实现的(见图 1)。硬件本身提供映射,但是内核管理表及其配置。注意这里的显示,进程可能有一个大的地址空间,但是很少见,就是说小的地址空间的区域(页面)通过页表指向物理内存。这允许进程仅为随时需要的网页指定大的地址空间。
图 1. 页表提供从虚拟地址到物理地址的映射
由于缺乏为进程定义内存的能力,底层物理内存被过度使用。通过一个称为 paging(然而,在 Linux 中通常称为 swap)的进程,很少使用的页面将自动移到一个速度较慢的存储设备(比如磁盘),来容纳需要被访问的其它页面(见图 2 )。这一行为允许,在将很少使用的页面迁移到磁盘来提高物理内存使用的同时,计算机中的物理内存为应用程序更容易需要的页面提供服务。注意,一些页面可以指向文件,在这种情况下,如果页面是脏(dirty)的,数据将被冲洗,如果页面是干净的(clean),直接丢掉。
图 2. 通过将很少使用的页面迁移到速度慢且便宜的存储器,交换使物理内存空间得到了更好的利用
MMU-less 架构
不是所有的处理器都有 MMU。因此,uClinux 发行版(微控制器 Linux)支持操作的一个地址空间。该架构缺乏 MMU 提供的保护,但是允许 Linux 运行另一类处理器。
选择一个页面来交换存储的过程被称为一个页面置换算法,可以通过使用许多算法(至少是最近使用的)来实现。该进程在请求存储位置时发生,存储位置的页面不在存储器中(在存储器管理单元 [MMU] 中无映射)。这个事件被称为一个页面错误 并被硬件(MMU)删除,出现页面错误中断后该事件由防火墙管理。该栈的详细说明见 图 3。
Linux 提供一个有趣的交换实现,该实现提供许多有用的特性。Linux 交换系统允许创建和使用多个交换分区和优先权,这支持存储设备上的交换层次结构,这些存储设备提供不同的性能参数(例如,固态磁盘 [SSD] 上的一级交换和速度较慢的存储设备上的较大的二级交换)。为 SSD 交换附加一个更高的优先级使其可以使用直至耗尽;直到那时,页面才能被写入优先级较低的交换分区。
图 3. 地址空间和虚拟 - 物理地址映射的元素
并不是所有的页面都适合交换。考虑到响应中断的内核代码或者管理页表和交换逻辑的代码,显然,这些页面决不能被换出,因此它们是固定的,或者是永久地驻留在内存中。尽管内核页面不需要进行交换,然而用户页面需要,但是它们可以被固定,通过 mlock(或 mlockall)函数来锁定页面。这就是用户空间内存访问函数的目的。如果内核假设一个用户传递的地址是有效的且是可访问的,最终可能会出现内核严重错误(kernel panic)(例如,因为用户页面被换出,而导致内核中的页面错误)。该应用程序编程接口(API)确保这些边界情况被妥善处理。
内核 API
现在,让我们来研究一下用户操作用户内存的内核 API。请注意,这涉及内核和用户空间接口,而下一部分将研究其他的一些内存 API。用户空间内存访问函数在表 1 中列出。
表 1. 用户空间内存访问 API
正如您所期望的,这些函数的实现架构是独立的。例如在 x86 架构中,您可以使用 ./linux/arch/x86/lib/usercopy_32.c 和 usercopy_64.c 中的源代码找到这些函数以及在 ./linux/arch/x86/include/asm/uaccess.h 中定义的字符串。
当数据移动函数的规则涉及到复制调用的类型时(简单 VS. 聚集),这些函数的作用如图 4 所示。
图 4. 使用 User Space Memory Access API 进行数据移动
access_ok 函数
您可以使用 access_ok 函数在您想要访问的用户空间检查指针的有效性。调用函数提供指向数据块的开始的指针、块大小和访问类型(无论这个区域是用来读还是写的)。函数原型定义如下:
access_ok(type,addr,size);
type 参数可以被指定为 VERIFY_READ 或 VERIFY_WRITE。VERIFY_WRITE 也可以识别内存区域是否可读以及可写(尽管访问仍然会生成 -EFAULT)。该函数简单检查地址可能是在用户空间,而不是内核。
get_user 函数
要从用户空间读取一个简单变量,可以使用 get_user 函数,该函数适用于简单数据类型,比如,char 和 int,但是像结构体这类较大的数据类型,必须使用 copy_from_user 函数。该原型接受一个变量(存储数据)和一个用户空间地址来进行 Read 操作:
get_user(x,ptr);
get_user 函数将映射到两个内部函数其中的一个。在系统内部,这个函数决定被访问变量的大小(根据提供的变量存储结果)并通过 __get_user_x 形成一个内部调用。成功时该函数返回 0,一般情况下,get_user 和 put_user 函数比它们的块复制副本要快一些,如果是小类型被移动的话,应该用它们。
put_user 函数
您可以使用 put_user 函数来将一个简单变量从内核写入用户空间。和 get_user 一样,它接受一个变量(包含要写的值)和一个用户空间地址作为写目标:
put_user(x,ptr);
和 get_user 一样,put_user 函数被内部映射到 put_user_x 函数,成功时,返回 0,出现错误时,返回 -EFAULT。
clear_user 函数
clear_user 函数被用于将用户空间的内存块清零。该函数采用一个指针(用户空间中)和一个型号进行清零,这是以字节定义的:
clear_user(ptr,n);
在内部,clear_user 函数首先检查用户空间指针是否可写(通过 access_ok),然后调用内部函数(通过内联组装方式编码)来执行 Clear 操作。使用带有 repeat 前缀的字符串指令将该函数优化成一个非常紧密的循环。它将返回不可清除的字节数,如果操作成功,则返回 0。
copy_to_user 函数
copy_to_user 函数将数据块从内核复制到用户空间。该函数接受一个指向用户空间缓冲区的指针、一个指向内存缓冲区的指针、以及一个以字节定义的长度。该函数在成功时,返回 0,否则返回一个非零数,指出不能发送的字节数。
copy_to_user(to,from,n);
检查了向用户缓冲区写入的功能之后(通过 access_ok),内部函数 __copy_to_user 被调用,它反过来调用 __copy_from_user_inatomic(在 ./linux/arch/x86/include/asm/uaccess_XX.h 中。其中 XX 是 32 或者 64 ,具体取决于架构。)在确定了是否执行 1、2 或 4 字节复制之后,该函数调用 __copy_to_user_ll,这就是实际工作进行的地方。在损坏的硬件中(在 i486 之前,WP 位在管理模式下不可用),页表可以随时替换,需要将想要的页面固定到内存,使它们在处理时不被换出。i486 之后,该过程只不过是一个优化的副本。
copy_from_user 函数
copy_from_user 函数将数据块从用户空间复制到内核缓冲区。它接受一个目的缓冲区(在内核空间)、一个源缓冲区(从用户空间)和一个以字节定义的长度。和 copy_to_user 一样,该函数在成功时,返回 0 ,否则返回一个非零数,指出不能复制的字节数。
copy_from_user(to,from,n);
该函数首先检查从用户空间源缓冲区读取的能力(通过 access_ok),然后调用 __copy_from_user,最后调用 __copy_from_user_ll。从此开始,根据构架,为执行从用户缓冲区到内核缓冲区的零拷贝(不可用字节)而进行一个调用。优化组装函数包含管理功能。
strnlen_user 函数
strnlen_user 函数也能像 strnlen 那样使用,但前提是缓冲区在用户空间可用。strnlen_user 函数带有两个参数:用户空间缓冲区地址和要检查的最大长度。
strnlen_user(src,n);
strnlen_user 函数首先通过调用 access_ok 检查用户缓冲区是否可读。如果是 strlen 函数被调用,max length 参数则被忽略。
strncpy_from_user 函数
strncpy_from_user 函数将一个字符串从用户空间复制到一个内核缓冲区,给定一个用户空间源地址和最大长度。
strncpy_from_user(dest,src,n);
由于从用户空间复制,该函数首先使用 access_ok 检查缓冲区是否可读。和 copy_from_user 一样,该函数作为一个优化组装函数(在 ./linux/arch/x86/lib/usercopy_XX.c 中)实现。
内存映射的其他模式
上面部分探讨了在内核和用户空间之间移动数据的方法(使用内核初始化操作)。Linux 还提供一些其他的方法,用于在内核和用户空间中移动数据。尽管这些方法未必能够提供与用户空间内存访问函数相同的功能,但是它们在地址空间之间映射内存的功能是相似的。
在用户空间,注意,由于用户进程出现在单独的地址空间,在它们之间移动数据必须经过某种进程间通信机制。Linux 提供各种模式(比如,消息队列),但是最着名的是 POSIX 共享内存(shmem)。该机制允许进程创建一个内存区域,然后同一个或多个进程共享该区域。注意,每个进程可能在其各自的地址空间中映射共享内存区域到不同地址。因此需要相对的寻址偏移(offset addressing)。
mmap 函数允许一个用户空间应用程序在虚拟地址空间中创建一个映射,该功能在某个设备驱动程序类中是常见的,允许将物理设备内存映射到进程的虚拟地址空间。在一个驱动程序中,mmap 函数通过 remap_pfn_range 内核函数实现,它提供设备内存到用户地址空间的线性映射。
结束语
本文讨论了 Linux 中的内存管理主题,然后讨论了使用这些概念的用户空间内存访问函数。在用户空间和内核空间之间移动数据并没有表面上看起来那么简单,但是 Linux 包含一个简单的 API 集合,跨平台为您管理这个复杂的任务。
浏览量:2
下载量:0
时间:
一般如今装Win7系统,一般建议给C盘分50G以上空间最佳。那么遇到Win7系统C盘占用空间过大怎么解决呢?接下来大家跟着读文网小编一起来了解一下Win7系统C盘占用空间过大的解决方法吧。
1、使用系统管理员的账户登录电脑。然后打开“计算机”,在C盘中找到windows文件夹中的winsxs文件夹,如图:
2、然后查看这个文件夹的属性,点击高级按钮,如图:
3、选择压缩内容以节省磁盘空间,如图:
浏览量:2
下载量:0
时间:
nux系统磁盘提示满了,可是磁盘内文件加起来的大小和被占用的大小不一致,这就是磁盘丢失的情况,那么Linux系统怎么找回丢失磁盘空间?下面读文网小编就给大家介绍下Linux找回丢失磁盘空间的方法。
收到一个磁盘告警,说某某分区已经满了,然后登录服务器 df 一看,发现磁盘确实快满了,然后你就想找到具体是哪个目录满了,于是 du -s * 一看,却发现所有子目录的大小总和却和df显示的总已使用磁盘空间对不上,有时候甚至还相差很多,于是就纳闷了:我的磁盘空间去哪了呢?
这里就列3种情况:
隐藏文件
linux系统把文件名以。(点号)开头的文件视为隐藏文件,而类似bash里*这样的操作符是不会匹配隐藏文件的,所以如果根目录下有个较大的隐藏文件的话,是不会被du -sh * 统计到的,解决办法就是: du -sh 。[^.]* 。
非空目录被mount
一般挂载其他分区的时候都是建议mount到一个空目录的,那么如果mount到一个非空的目录,情况会怎么样呢?比如/mnt目录本来里面是有文件 的,然后执行了sudo mount /dev/sda6 /mnt。其实这个mount命令完全能正常执行,被mount的分区也能正常访问,只是原先在/mnt里的文件,现在已经访问不到了,包括du也看不到 大小了,但是磁盘空间却还是被占着,因为如果你 umount /mnt 以后,原来的文件都还会回来的。
空洞文件
一个文件的大小和所占磁盘空间也不一定完全一致,比如某个程序一直打开着一个叫log的文件在写,而中间有人用 》 log 命令清除了log的内容,就会产生这样的文件。
大多数情况下来看,以上这三种垃圾,电脑中都会隐藏,那些电脑磁盘不大的朋友们可以勤加清理,可以释放一些空间以被储存其他重要的文件。一般这三种方法清理之后,电脑中的垃圾文件就被清理的差不多了,所以是个还蛮有效的方法呢,试试吧!
看过“Linux系统怎么找回丢失磁盘空间”
浏览量:2
下载量:0
时间:
使用无线路由器,每台电脑都会分配一个本地IP地址,不管这个地址是自动分配,还是手动他配,都是由DHCP来分配,即动态主机设置协议,DHCP有个IP地址池,其中的IP地址,供局域网内所有电脑使用。那么你知道路由器地址池范围怎么设置吗?下面是读文网小编整理的一些关于路由器地址池范围设置的相关资料,供你参考。
设置无线路由器IP地址池的方法,先登录路由器,在浏览器地址栏中输入路由器地址,这个地址在路由器底坐,看一下便知,一般大多为192.168.1.1。
进入路由器之后,先在左侧选项中,找到并选择“DHCP服务器”这一项。
在DHCP服务器之下,选择“DHCP服务”,到右侧窗口,将DHCP服务器设置为“启用”,默认也是启用的,然后再设置IP地址池,开始地址一般为192.168.1.2(192.168.1.1为网关),结束地址为192.168.1.255,有254个,其实没必要设置这么多,家庭用,有10个IP就行(如192.168.1.100 - 192.168.1.109),公司用,100个足够了(如192.168.1.100 - 192.168.1.199)。
如果是WDS桥接,主DHCP必须是启用的,其它路由器的DHCP必须是关闭的,即不启用。
如果是WDS桥接,还有一个要关注的地方,就是信道问题,信道必须是同一信道,模式也要一样。
设置完成后,要重启路由器才能生效,重启方法,在系统工具下面,选择“重启系统”这一项,在右侧,点击“重启系统”按钮即可。
设置完DHCP地址池以后,电脑上的IP也可能会失效,必须重新设置一下,任务栏网络图标->网络和共享中心->更改适配器设置->本地连接属性->常规->internet协义版本 4 (TCP/IPv4)->属性,将IP地址重新设置一下,或者设置为自动获取IP也行,确定。
路由器地址池范围的相关
浏览量:9
下载量:0
时间:
Linux可以利用df命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。 那么Linux怎么使用df命令查看磁盘空间呢?读文网小编分享了Linux使用df命令查看磁盘空间的方法,希望对大家有所帮助。
[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda2 14G 11G 2.6G 82% /
/dev/sda1 99M 14M 81M 14% /boot
tmpfs 442M 275M 168M 63% /dev/shm
/dev/mapper/vg_test-lv_test
24M 1.3M 21M 6% /mnt/lvm
[root@localhost ~]#
当然你可能并不关系磁盘还剩余多少空间,你是需要知道当前的文件夹下的磁盘使用情况:
[root@localhost ~]# du --max-depth=1 -h
24K 。/.gnome www.2cto.com
8.0K 。/.eggcups
8.0K 。/.config
136K 。/.gnome2
16K 。/.chewing
8.0K 。/.gnome2_private
8.0K 。/.Trash
224K 。/.gstreamer-0.10
28K 。/Desktop
48K 。/.nautilus
48K 。/.metacity
240K 。/.scim
3.4M 。/.mozilla
1012K 。/.kde
12K 。/.superkaramba
40K 。/.local
8.0K 。/.qt
272K 。/.gconf
32K 。/.mcop
16K 。/.redhat
1.7M 。/.thumbnails
8.0K 。/.gconfd
7.5M 。
[root@localhost ~]#
看上面使用了du --max-depth=1 -h的命令来查找磁盘的使用情况,因为后面没有跟路径,它就默认是当前的路径。这个命令的-h参数是为了方便你读懂每个文件的大小,如果没有这个参数显示的文件大小就没有k,M,G等。执行命令后,前面n-1行的是该目录下每个文件夹的大小。最后一行显示的是该目录总的大小。
然后你会说不在乎该目录下每个文件的大小,你只想知道其中某一个文件(文件夹)的大小,那么有没有办法呢?当然你应该记得,我一直强调的,方法总比问题多,这儿也不例外。
请看下面的例子:
[root@localhost ~]# du -sh
7.5M 。 www.2cto.com
[root@localhost ~]#
聪明的你一定发现了这里显示的大小和上面最后一行的大小是一样的。这就是说这里显示的大小是该目录的总大小。
我知道你心里在冷笑,不是方法比问题多吗?这里说的也只有一个答案。当然,我不会让你失望的。另一个方法比较土,但是还是可以解决问题的。
[root@localhost ~]# du -h --max-depth=0
7.5M 。
[root@localhost ~]#
我想告诉你的是man手册里面已经告诉了:--max-depth=0的功能和-s的功能是一样的。
当然你也可以通过sed打印最后du -h --max-depth=1一行来解决问题,但我并不推荐。
这里涉及到一个原则,尽量使用命令提供选项的原始功能。如果命令没有提供该功能,才需要我们自己使用grep,sed,awk来选取我们需要的行。
当然du命令后面可以跟文件路径,来查看指定路径的大小的。
[root@localhost ~]# du -sh /opt/oracle
5.6G /opt/oracle
[root@localhost ~]#
上面就是使用df命令查看Linux磁盘空间的介绍了,如果磁盘比较大的话,那么可能就要花费更多一些的时间了
看过“Linux怎么使用df命令查看磁盘空间”
浏览量:2
下载量:0
时间:
Win7系统文件要比Xp系统的文件大很多,所以Win7系统占用的C盘空间也比较大,那么怎么清理Win7系统占用C盘空间呢?下面跟着读文网小编来一起了解下清理Win7系统占用的C盘空间的方法吧。
首先电脑上需要安装360安全卫士。打开360安全卫士,点击“电脑救援”功能模块进入。
接着以“C盘清理”为搜索关键词进行搜索。在搜索结果中找到 “C盘容量减少”项,然后点击右侧的“立即修复”按钮。
接着选择“C盘”,并点击“开始扫描”按钮。
搜索完成后,勾选要“显示”的文件夹,点击“显示”按钮,即可将C盘隐藏的文件夹显示出来。之后,就可以根据实际情况,删除部分文件夹来释放C盘空间。
看过“怎么清理Win7系统占用的C盘空间”
浏览量:4
下载量:0
时间:
静态分配IP地址是指给每一台计算机都分配一个固定的IP地址,优点是便于管理,那么linux系统怎么设置静态ip地址呢?小编为大家分享了linux系统设置静态ip地址的方法,下面大家跟着读文网小编一起来了解一下吧。
在终端中输入:vi /etc/sysconfig/network-scripts/ifcfg-eth0
开始编辑,填写ip地址、子网掩码、网关、DNS等。其中“红框内的信息”是必须得有的。
编辑完后,保存退出。
重启网络服务。service network restart或/etc/init.d/network restart
ping网关,ping外网进行测试。都能ping通表示网络正常。
摘要:
---修改ip地址---
即时生效:
# ifconfig eth0 192.168.1.155 netmask 255.255.255.0
重启生效:
修改/etc/sysconfig/network-scripts/ifcfg-eth0
---修改default gateway---
即时生效:
# route add default gw 192.168.1.1
重启生效:
修改/etc/sysconfig/network-scripts/ifcfg-eth0
---修改dns---
修改/etc/resolv.conf
修改后即时生效,重启同样有效
---修改host name---
即时生效:
# hostname test1
重启生效:
修改/etc/sysconfig/network
看过“ linux系统怎么设置静态ip地址 ”
浏览量:3
下载量:0
时间:
sysctl配置与显示在/proc/sys目录中的内核参数.可以用sysctl来设置或重新设置联网功能,如IP转发、IP碎片去除以及源路由检查等。用户只需要编辑/etc/sysctl.conf文件,即可手工或自动执行由sysctl控制的功能。小编为大家分享了 Linux怎么在系统运行过程中修改内核参数的方法,下面大家跟着读文网小编一起来了解一下吧。
RedHat向管理员提供了非常好的方法,使我们可以在系统运行时更改内核参数,而不需要重新引导系统。这是通过/proc虚拟文件系统实 现的。/proc/sys目录下存放着大多数的内核参数,并且设计成可以在系统运行的同时进行更改。下面我们以打开内核的 ip转发功能为例说明在系统运行时修改内核参数的两种方法。IP转发是指允许系统对来源和目的地都不是本机的数据包通过网络,RedHat默认屏蔽此功 能,在 需要用本机作为路由器、NAT等情况下需要开启此功能。
方法一:修改/proc下内核参数文件内容
直接修改内核参数ip_forward对应在/proc下的文件/proc/sys/net/ipv4/ip_forward。用下面命令查看ip_forward文件内容:
# cat /proc/sys/net/ipv4/ip_forward
该文件默认值0是禁止ip转发,修改为1即开启ip转发功能。修改命令如下:
# echo 1 >/proc/sys/net/ipv4/ip_forward
修改过后就马上生效,即内核已经打开ip转发功能。但如果系统重启后则又恢复为默认值0,如果想永久打开需要通过修改/etc/sysctl.conf文件的内容来实现。
方法二.修改/etc/sysctl.conf文件
默认sysctl.conf文件中有一个变量是
net.ipv4.ip_forward = 0
将后面值改为1,然后保存文件。因为每次系统启动时初始化脚本/etc/rc.d/rc.sysinit会读取/etc/sysctl.conf文件的 内容,所以修改后每次系统启动时都会开启ip转发功能。但只是修改sysctl文件不会马上生效,如果想使修改马上生效可以执行下面的命令:
# sysctl –p
在修改其他内核参数时可以向/etc/sysctl.conf文件中添加相应变量即可,下面介绍/proc/sys下内核文件与配置文件 sysctl.conf中变量的对应关系,由于可以修改的内核参数都在/proc/sys目录下,所以sysctl.conf的变量名省略了目录的前面部 分(/proc/sys)。
将/proc/sys中的文件转换成sysctl中的变量依据下面两个简单的规则:
1.去掉前面部分/proc/sys
2.将文件名中的斜杠这两条规则可以将/proc/sys中的任一文件名转换成sysctl中的变量名。
例如:
/proc/sys/net/ipv4/ip_forward =》 net.ipv4.ip_forward
/proc/sys/kernel/hostname =》 kernel.hostname
可以使用下面命令查询所有可修改的变量名
# sysctl –a
下面例举几个简单的内核参数:
1./proc/sys/kernel/shmmax
该文件指定内核所允许的最大共享内存段的大小。
2./proc/sys/kernel/threads-max
该文件指定内核所能使用的线程的最大数目。
3./proc/sys/kernel/hostname
该文件允许您配置网络主机名。
4./proc/sys/kernel/domainname
该文件允许您配置网络域名。
看过“ 怎么在 Linux系统运行过程中修改内核参数 ”
浏览量:2
下载量:0
时间:
对于很多刚刚接触linux的朋友来说,如何设置linux系统的IP地址,作为第一步,下面读文网小编以centos系统为例,给大家演示如何给centos设置IP地址
1、自动获取IP地址
虚拟机使用桥接模式,相当于连接到物理机的网络里,物理机网络有DHCP服务器自动分配IP地址。
#dhclient 自动获取ip地址命令
#ifconfig 查询系统里网卡信息,ip地址、MAC地址
分配到ip地址后,用物理机进行ping ip地址,检测是否ping通。
2、手动设置ip地址
如果虚拟机不能自动获取IP,只能手动配置,配置方法如下:
输入命令
#vi /etc/sysconfig/network-scripts/ifcfg-eth0 [编辑网卡的配置文件]
输入上述命令后回车,打开配置文件,使用方向键移动光标到最后一行,按字母键“O”,进入编辑模式,输入以下内容:
IPADDR=192.168.4.10
NETMASK=255.255.255.0
GATEWAY=192.168.4.1
另外光标移动到”ONBOOT=no”这一行,更改为ONBOOT=yes
“BOOTPROTO=dhcp”,更改为BOOTPROTO=none
完成后,按一下键盘左上角ESC键,输入:wq 在屏幕的左下方可以看到,输入回车保存配置文件。
之后需要重启一下网络服务,命令为
#servicenetwork restart
网络重启后,eth0的ip就生效了,使用命令#ifconfigeth0 查看
接下来检测配置的IP是否可以ping通,在物理机使用快捷键WINDOWS+R 打开运行框,输入命令cmd,输入ping 192.168.4.10 进行检测,ping通说明IP配置正确。
备注:我所在的物理机网段为192.168.4.0 网段。大家做实验的时候根据自己的环境进行设定,保持虚拟机和物理机在同一网段即可。
3、使用NAT模式
虚拟机网络连接使用NAT模式,物理机网络连接使用Vmnet8。
虚拟机设置里面——网络适配器,网络连接选择NAT模式。
虚拟机菜单栏—编辑—虚拟网络编辑器,选择Vmnet8 NAT模式,
1.在最下面子网设置ip为192.168.20.0 子网掩码255.255.255.0
2.NAT设置里面网关IP为192.168.20.2
3.使用本地DHCP服务将IP地址分配给虚拟机不勾选
设置完成后点击应用退出。
物理机网络连接VMNet8 手动设置ip地址 192.168.20.1 子网掩码255.255.255.0
网关和DNS地址为192.168.20.2(即虚拟机NAT的网关地址)
编辑linux网卡eth0的配置文件
#vi /etc/sysconfig/network-scripts/ifcfg-eth0
输入上述命令后回车,打开配置文件,使用方向键移动光标到最后一行,按字母键“O”,进入编辑模式,输入以下内容:
IPADDR=192.168.20.3
NETMASK=255.255.255.0
GATEWAY=192.168.20.2
另外光标移动到”ONBOOT=no”这一行,更改为ONBOOT=yes
“BOOTPROTO=dhcp”,更改为BOOTPROTO=none
完成后,按一下键盘左上角ESC键,输入:wq 在屏幕的左下方可以看到,输入回车保存配置文件。
设置DNS地址,运行命令#vi /etc/resolv.conf
光标移动到空行,按“O”键,输入 nameserver 192.168.20.2 退出按ESC键,输入:wq 回车保存配置文件。
重启网络服务 #service network restart
重启之后#ifconfig 查看配置的ip地址,物理机ping这个地址测试是否能通。
看过“ 如何设置linux系统的IP地址 ”
浏览量:2
下载量:0
时间:
一台安装了Linux系统的电脑如果想要联网,首先要做的就是进行网络配置。那么Linux系统怎么配置网络IP地址呢?小编为大家分享了Linux系统配置网络IP地址的方法,下面大家跟着读文网小编一起来了解一下吧。
(3)netconfig命令
输入netconfig后将会出现下图所示,单击yes按钮。
进行相关配置后ok退出。
注意(此方法配置的ip地址后计算机从新启动仍然有效)
浏览量:3
下载量:0
时间:
多磁头技术:通过在同一碟片上增加多个磁头同时的读或写来为硬盘提速,或同时在多碟片同时利用磁头来读或写来为磁盘提速,多用于服务器和数据库中心。下面是读文网小编带来的关于回收站占用硬盘空间吗的内容,欢迎阅读!
使用Windows的用户对回收站不会陌生,它给了我们一剂“后悔药”。回收站保存了您删除的文件、文件夹、图片、快捷方式和Web页等。这些项目将一直保留在回收站中,直到您清空回收站。我们许多误删除的文件就是从它里面找到的。灵活地利用各种技巧可以更高效地使用回收站,使之更好地为自己服务。
在Windows 95以前的年代,用户删除某个文件,那个文件就消失了。如果发现删除了不应删除的文件,就须要用其它的工具进行恢复。现如今,Windows 的“回收站”则宽容多了,它的显著特点是:扔进去的东西还可以“捡回来”。
回收站是一个特殊的文件夹,默认在每个硬盘分区根目录下的RECYCLER文件夹中,而且是隐藏的。当你将文件删除并移到回收站后,实质上就是把它放到了这个文件夹,仍然占用磁盘的空间。只有在回收站里删除它或清空回收站才能使文件真正地删除,为电脑获得更多的磁盘空间。
对于回收站,一般都认为那是垃圾站,没有多少东西可以学习,其实,用好回收站还是需要掌握一些技巧,有时可能起到意想不到的效果。
浏览量:3
下载量:0
时间:
Win7系统文件要比Xp系统的文件大很多,所以Win7系统占用的C盘空间也比较大,那么怎么有效地清理Win7系统占用C盘空间呢?小编为大家分享了的解决方法,下面大家跟着读文网小编一起来了解一下吧。
1、首先打开Win7控制面板,进入“系统和安全”,在左侧导航栏中打开“高级系统设置”。
2、切换到“高级”选项卡,打开“环境变量”。
3、在环境变量对话框中分别选中“TEMP”和“TMP”,点击“编辑”按钮。
在编辑用户变量对话框中,我们看到变量值处是可以进行编辑的部分,这里已经存在原系统默认的临时文件存放地址,我们可以直接将用户和系统的temp和tmp变量都改到另外的路径即可。
经过以上步骤对临时文件进行转移,你便会发现C盘的空间腾出了很大的一部分。想要不让速度影响电脑的运行,我们便需要对C盘进行必要的清理,腾出空间的Win7C盘才不会影响我们电脑的运行速度哦。
看过“ 怎么清理Win7系统占用C盘空间 ”
浏览量:4
下载量:0
时间:
现在在使用电脑中,相信很多用户都知道只有足够的C盘空间,那么系统才能运行的更加流畅。当然,在win8系统中也是如此,不少使用Win8、Win8.1的用户不难发现,原先只占用20G大小的系统盘,随着使用时间的增加,C盘的磁盘空间不断减少,那这部分减少的空间去哪里了?C盘空间被那些文件占用呢?小编为大家分享了C盘空间被哪些文件占用的相关资料,下面大家跟着读文网小编一起来了解一下吧。
由于Windows系统的特殊环境,一般减少的空间都是主要集中在以下:
注册表:用户数据和程序数据不断写入注册表,因此注册表也会变大。
补丁安装:Windows Update自动更新打开时,差不多每个月会有新的补丁发布。安装补丁需要额外的空间(补丁替换掉一些文件,把原来的文件备份起来)。
系统还原:系统还原会自动创建还原点,需要硬盘空间。
应用商店缓存:应用商店在下载应用时会有残留缓存文件沉积,会占据一些空间。
其他诸如休眠临时文件以及系统驱动备份也是较大的文件。
既然知晓了系统盘占用的真凶,如何给臃肿的系统盘减肥呢?
1、首先分析自己的系统盘的大文件目录和数量,可以用磁盘空间分析工具或者系统瘦身工具分析下,有哪些大文件或者程序作祟。
由上面可以看到系统盘主要由若干个显示/半隐藏的系统文件夹,外加上几个系统单一文件组成:分别为32位或者64位软件的安装目录Program Files,记录应用程序注册写入的配置文件目录ProgramData,Windows系统主目录,用户个人数据Users,以及其他还原点文件目录Recovery以及睡眠休眠产生的系统sys文件。
2、分析了系统盘的磁盘情况后,对大文件或者文件占用的情况也知晓了,接下来开始系统盘的瘦身操作。比如系统瘦身工具,安全删除可清理的系统文件。
3、Program Files或者Program Files (x86)瘦身:用于存放应用程序的安装文件目录,占用一定的体积,可以卸载一些体积较大的程序。
4、ProgramData瘦身:不推荐,存放大多数的应用软件以及程序的配置信息
5、Windows系统主目录:其中存放了每个月的系统Windows Update升级备份的各种临时文件,其中也包括应用商店应用下载后产生的临时缓存。支持手动删除或者第三方工具删除。
具体路径在以下:C:WindowsSoftwareDistributionDownload
6、用户个人数据Users:里面存放了软件临时文件或者用户日常操作过程中的产生的各种临时文件,体积不是很大,但时间一久,也能够积少成多。由于临时文件属于系统隐藏文件,可以使用第三方安全清理工具解决。
7、其他还原点文件目录Recovery:存储手动创建的或者系统自动生成的还原点,建议调整上限,不建议关闭该功能。
操作如下:右击我的计算机,选择属性,进入系统信息汇总页面。
然后选择系统保护功能,系统默认是关闭的,建议手动开启(启用)并配置磁盘空间使用量。
8、睡眠休眠产生的系统sys文件
由于Windows8/8.1引入了快速启动功能,加快了开机启动速度,如果开启休眠功能,将会在系统盘生成一个与物理内存等大的系统休眠文件pagefile.sys以及hlberfil.sys文件。
可以用powercfg /h on或者powercfg /h off的管理员:命令提示符进行开启或者关闭休眠。
以上方案也适用Win7平台
看过“ C盘空间被哪些文件占用 ”
浏览量:5
下载量:0
时间:
如果你在使用Linux过程中遇到无法读写磁盘,应用程序无法执行,请求响应不了等问题,那多半是Linux系统磁盘空间满了,那么怎么查看Linux磁盘空间呢?下面跟着读文网小编一起来了解一下吧。
首先如果需要查看整个磁盘还剩多少空间,可以使用命令df -h。
1 | df -h |
如果你并不关心磁盘还剩余多少空间,只是需要知道当前的文件夹下的磁盘使用情况,可以使用如下命令:
1 | du --max-depth=1 -h |
上面使用du --max-depth=1 -h命令来查找磁盘的使用情况,默认是当前的路径。
其中-h参数是为了方便你读懂每个文件的大小,如果没有这个参数显示的文件大小就没有k,M,G等。
得到结果中,前面n-1行的是该目录下每个文件夹的大小。最后一行显示的是该目录总的大小。
如果你并不关心该目录下每个文件的大小,你只想知道其中某一个文件(文件夹)的大小,需要使用下面命令:
1 | du -sh |
聪明的你一定发现了这里显示的大小和上面最后一行的大小是一样的。
还有另外一个命令,也可以得到得到同样的效果:
1 | du -h --max-depth=0 |
其实在man手册里面已经告诉了我们:--max-depth=0的功能和-s的功能是一样的。
另外du命令后面可以跟文件路径,来查看指定路径的大小:
1 | du -sh /root/sw |
看过“ linux怎么查看磁盘空间 ”
浏览量:2
下载量:0
时间:
由于内核更新速度很快,总是有更新,每更新一次,启动菜单上就会多一个内核版本菜单,时间一长,会积累很多,鉴于此,在不使用旧版内核时,可以将其删除。那么Linux系统怎么删除旧内核?下面跟着读文网小编一起去了解下吧。
Linux系统本身就是一个开源的系统,所以在使用过程中可以进行修改,只有它的内核是不变的,只有在一段时间之内,才可以对Linux内核进行升级。升级了以后就会留下一些旧的无用的内核,中本文就以Ubuntu系统为例,来介绍一下Linux系统如何删除旧内核?
首先可查看当前用的内核是哪个,可通过命令:uname -a 来获得信息。例如我台式机上显示为:
magc@magc-desktop:~$ uname -a
Linux magc-desktop 2.6.24-19-rt #1 SMP PREEMPT RT Thu Aug 21 02:08:03 UTC 2008 i686 GNU/Linux
然后通过查看本机上所有内核的列表来决定哪些需要删除掉:
运行命令:dpkg --get-selections|grep linux 例如我本机显示为:
magc@magc-desktop:~$ dpkg --get-selections|grep linux
libselinux1 install
linux-generic install
linux-headers-2.6.24-19 install
linux-headers-2.6.24-19-generic install
linux-headers-2.6.24-19-rt install
linux-headers-2.6.24-21 install
linux-headers-2.6.24-21-generic install
linux-headers-2.6.24-21-rt install
linux-headers-generic install
linux-headers-rt install
linux-image-2.6.24-19-generic deinstall
linux-image-2.6.24-19-rt install
linux-image-2.6.24-21-generic install
linux-image-generic install
linux-image-rt install
linux-restricted-modules-2.6.24-19-generic deinstall
linux-restricted-modules-2.6.24-19-rt install
linux-restricted-modules-2.6.24-21-generic install
linux-restricted-modules-common install
linux-restricted-modules-generic install
linux-restricted-modules-rt install
linux-rt install
linux-sound-base install
linux-ubuntu-modules-2.6.24-19-generic deinstall
linux-ubuntu-modules-2.6.24-19-rt install
linux-ubuntu-modules-2.6.24-21-generic install
util-linux install
util-linux-locales install
其中带有image的就是内核文件,因此可看出我的机器上共五个内核版本。我当前使用的是2.6.24-19-rt,所以决定将其它没用的内核删除。
删除的命令为:sudo apt-get remove linux-image-XXXX
例如删除linux-image-2.6.24-19-generic内核的办法就是:
sudo apt-get remove linux-image-2.6.24-19-generic
以上就是Linux系统如何删除旧内核的全部内容了,首先找到旧内核,记录它们的名称。然后用sudo apt-get remove删除就可以了。
看过“ Linux系统怎么删除旧内核 ”
浏览量:3
下载量:0
时间: