tmpfs 是 Linux/Unix 系统上的一种基于内存的文件系统,即 tmpfs 使用内存或 swap 分区来存储文件。
Linux 内核中的 VM 子系统负责在后台管理虚拟内存资源 Virtual Memory,即 RAM 和 swap 资源,透明地将 RAM 页移动到交换分区或从交换分区到 RAM 页,tmpfs 文件系统需要 VM 子系统的页面来存储文件。tmpfs 自己并不知道这些页面是在交换分区还是在 RAM 中;做这种决定是 VM 子系统的工作。tmpfs 文件系统所知道的就是它正在使用某种形式的虚拟内存。
由于 tmpfs 是基于内存的,因此速度是相当快的。另外 tmpfs 使用的 VM 资源是动态的,当删除 tmpfs 中文件,tmpfs 文件系统驱动程序会动态地减小文件系统并释放 VM 资源,当然在其中创建文件时也会动态的分配VM资源。另外,tmpfs 不具备持久性,重启后数据不保留。
/dev/shm 就是一个基于 tmpfs 的设备,在有些 Linux 发行版中 /dev/shm 是 /run/shm/ 目录的一个软链接。实际上在很多系统上的 /run 是被挂载为 tmpsf 的。用 df -T 可以查看系统中的磁盘挂载情况:
文件系统 1K-块 已用 可用 已用% 挂载点udev 1859684 4 1859680 1% /devtmpfs 374096 1524 372572 1% /run/dev/sda8 76561456 36029540 36619724 50% /none 4 0 4 0% /sys/fs/cgroupnone 5120 0 5120 0% /run/locknone 1870460 27688 1842772 2% /run/shmnone 102400 56 102344 1% /run/user
评论列表()