RamFS/TmpFS文件系统

 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 文件系统。     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值