快速业务通道

精通init ramfs构建step by step (二)

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-05-11

四、什么是rootfs和ramfs

  所有的2.6版本linux内核都有一个特殊的文件系统rootfs,是内核启动的初始始根文件系统,init ramfs的文件会复制到rootfs.如果把init ramfs比作种子,那么rootfs就是它生长的土壤.大部分linux系统正常运行后都会安装另外的文件系统,然后忽略rootfs.

  rootfs是ramfs文件系统的一个特殊实例.ramfs是一种非常简单的文件系统,是基于内存的文件系统.ramfs文件系统没有容量大小的限制,它可以根据需要动态增加容量.

  ramfs直接利用了内核的磁盘高速缓存机制.所有的文件的读写数据都会在内存中做高速缓存(cache),当系统再次使用文件数据时,可以直接从内存中读写,以提供系统的I/O性能.高速缓存中的写入数据会在适当的时候回写到对应的文件系统设备(如磁盘等)中,这时它的状态就标识为clean,这样系统在必要时可以释放掉这些内存.ramfs没有对应文件系统设备,它的数据永远都不会回写回去,也就不会标识为clean,因此系统也永远不会释放ramfs所占用的内存.

  ramfs直接使用了内核已有的磁盘高速缓存机制,它的实现代码非常小.也这个原因,ramfs特性不能通过内核配置参数删除,它是内核的天然特性.

  五、ramfs不是ramdisk

  ramdisk是在一块内存区域中创建的块设备,用于存放文件系统.ramdisk的容量是固定的,不能象ramfs一样动态增长.ramdisk需要内核的文件系统驱动程序(如ext2)来操作其上的数据,而ramfs则是内核的天然特性,无需额外的驱动程序.ramdisk也象其他文件系统设备一样,需要在块设备和内存中的磁盘高速缓存之间复制数据,而这种数据复制实际不必要的.

  六、从ramfs派生的文件系统tmpfs

  ramfs的一个缺点是它可能不停的动态增长直到耗尽系统的全部内存,只有root或授权用户允许使用ramfs.为了解决这个问题,从ramfs派生出了tmpfs文件系统,增加了容量大小的限制,允许把数据写入交换分区.增加了这两个特性,tmpfs允许普通用户使用.

  关于tmpfs文件系统更多的信息,可以看内核源码中的 Documentation/filesystems/tmpfs.txt 文档.

Empire CMS,phome.net

  综上所述,init ramfs是一种ramfs文件系统,在内核启动完成后把它复制到rootfs中,作为内核初始的根文件系统,它的任务是挂载系统真正的根文件系统.这就是init ramfs的前世今生.

Empire CMS,phome.net

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号