首先了解一下/dev/null 和/dev/zero是什么。
/dev/null 它是空设备,也称为位桶(bit bucket)或者黑洞(black hole)。你可以向它输入任何数据,但任何写入它的数据都会被抛弃。通常用于处理不需要的输出流。(当然,它也可以作为空的输入流)
/dev/zero 该设备无穷尽地提供空字符(ASCII NUL, 0x00),可以使用任何你需要的数目。它通常用于向设备或文件写入字符串0,用于初始化数据存储。(当然,也可作为输出流的接受容器),其中的一个典型用法是用它提供的字符流来覆盖信息,另一个常见用法是产生一个特定大小的空白文件。
然后简单理解一下虚拟内存是什么?
Linux里面的虚拟内存其实就是swap 分区,Linux 中可以使用 SWAP 分区,在分配物理内存,当可用内存不足时,将暂时不用的内存数据先放到磁盘上,让有需要的进程先使用,等进程再需要使用这些数据时,再将这些数据加载到内存中,通过这种”交换”技术,Linux 可以让进程使用更多的内存。
Linux如何开辟虚拟内存?
1、利用dd指令创建一个swap file
如:
dd if=/dev/zero of=/tmp/swap bs=4k count=16382
这里其实就是使用了上面的 /dev/zero初始化了一个文件,这个文件就是/tmp/swap,这里的bs就是一个扇区的大小为4kb,然后count表示这个文件里面有多少个bs,意思就是这个文件里面包含16382个扇区。
2、利用mkswap来创建swap文件的文件系统(我的理解就是给他进行格式化)
mkswap /tmp/swap
3、以swapon来启动这个swap分区
swapon /tmp/swap
参考网页:
https://www.cnblogs.com/link01/p/12273943.html