Linux下devtmpfs的作用
使用df命令查看磁盘空间的时候,总是会出现devtmpfs和tmpfs,它们的作用是什么呢?
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 40G 26G 12G 68% /
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 672K 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
tmpfs 379M 0 379M 0% /run/user/0
devtmpfs的作用
Linux启动的时候,首先虚拟出根目录/,然后挂载硬盘(本文例子为/dev/vda1),然后建立/dev,并挂载devtmpfs。更多关于Linux磁盘目录加载的内容请移步:《Linux的时空隧道:目录》
Linux 中的设备按照存取方式的不同,可以分为两种:字符设备:无缓冲且只能顺序存取;块设备:有缓冲且可以随机(乱序)存取。而按照是否对应物理实体,也可以分为两种:物理设备,对实际存在的物理硬件的抽象;虚拟设备,不依赖于特定的物理硬件,仅是内核自身提供的某种功能。
无论是哪种设备,在 /dev 目录下都有一个对应的文件(节点),并且每个设备文件都必须有主/次设备号,主设备号相同的设备是同类设备,使用同一个驱动程序(虽然目前的内核允许多个驱动共享一个主设备号,但绝大多数设备依然遵循一个驱动对应一个主设备号的原则)。可以通过 cat /proc/devices 命令查看当前已经加载的设备驱动程序的主设备号。
注意:在 /dev 目录下除了各种设备节点之外还通常还会存在:FIFO管道、Socket、软/硬连接、目录。这些东西并不是设备文件,因此也就没有主/次设备号。
devtmpfs 的功用是在 Linux 核心 启动早期建立一个初步的 /dev,令一般启动程序不用等待 udev,缩短 GNU/Linux 的开机时间。
devtmpfs 在 2009 年初被提出,并在同年年尾进出的 Linux 2.6.32 正式收录。
tmpfs的作用
tmpfs是Linux/Unix系统上的一种基于内存的文件系统。tmpfs可以使用您的内存或swap分区来存储文件。由此可见,tmpfs主要存储暂存的文件。它有如下两大优势:
- 1、动态文件系统的大小。
- 2、tmpfs 的另一个主要的好处是它闪电般的速度。
因为典型的 tmpfs 文件系统会完全驻留在内存 RAM 中,读写几乎可以是瞬间的。同时它也有一个缺点 tmpfs 数据在重新启动之后不会保留,因为虚拟内存本质上就是易失的,所以有必要做一些脚本做诸如加载,绑定的操作。