分享

RamFS/TmpFS文件系统

 昵称16791680 2014-05-05

       RamFS/TmpFS(以下简称RamFS)是Linus Torvalds 开发的一种基于内存的文件系统,工作于虚拟文件系统层(VFS),不能格式化啊,可以创建多个,在创建时可以指定最大能使用的内存大小,并且读写。

       当Linux 运行于嵌入式设备上市,许多守护进程会在后台运行并生成许多日志消息。另外,内核日志记录机制,像syslogd、dmesg 和 klogd,会在 /var 和/tmp 目录下生成许多消息。由于这些进程长生了大量数据,而且只是为了记录系统当前的执行状态,在重新引导之后就丢弃了这些信息,所有如果解决这个问题的比较好的方案是使用RamFS。

       RamFS 文件系统把所有的文件都放在 RAM 中,所以读/写 操作发生在RAM中,可以用RamFS 来存储一些临时性或经常要修改的数据,例如 /tmp 和/var 目录,这样既避免了对Flash 存储器的读写损耗,也提高了数据读写速度。

       RamFS 相对于传统的Ramdisk 的不同之处主要在于:不能格式化,文件系统大小可以随所含文件内容大小变化。RamFS 相对于传统的 Ramdisk 的优点包括:

       > 动态文件系统大小。文件系统大小可以根据被复制、创建或删除的文件及目录的数据来缩放,使得能够以最理想的方式使用内存;

       > 速度。因为RamFS 驻留在RAM,所以读和写几乎都是瞬时的。即使以交换的形式存储文件,I/O操作的速度仍非常快。

       同样,RamFS 在系统重新引导时会丢失所有数据。因此,需要长期保存的数据不能存储在RamFS上。

       如果Linux 内核已经支持了RamFS,那么就可以随时可以使用RamFS 了。创建一个目录,加载RamFS 到该目录即可。

       与EXT2 和 JFFS2 等大多数其他文件系统都驻留在块设备之上不同,RamFS 直接位于VFS 上。因而,挂载 RamFS 文件系统的命令略有不同。如下所示:

       $ mkdir /mnt/Ramfs

       $ mount -t ramfs none /mnt/Ramfs 

       注意RamFS 没有对应的dev 目录下的设备文件。

       默认情况下,RamFS 被限制最多可使用的内存大小的一半。可以通过 maxsize (以KB 为单位)选项来改变。如:

       $ mount -t ramfs none /mnt/Ramfs -o maxsize=2000

       这个命令创建了一个限定最大使用内存为2M 的Ramdisk。

       在 /etc/rc.d 文件中,常常能看到这样的内容:

       $mount -t tmpfs /var -o size=512K

       $mkdir -p /var/tmp

       $mkdir -p /var/log

       $ln -s /var/tmp /tmp

       这段命令将在 /var 上创建的 RamFS 并将RamFS 的最大大小限制为512K。同时,tmp/ 和 log/ 目录成为 RmpFS 的一部分以便在RAM 中存储日志消息。可见 RamFS 还是相当实用的一种Ramdisk。

        如果想将 RamFS 的一项添加在 /etc/fstab,那么它可能看起来像这样:

        tmpfs /var tmpfs size=32m 0 0

        这将在 /var 上挂载一个新的 RamFS 文件系统。      

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多