精通init ramfs构建step by step (二)
来源:互联网 发布:linux 安装 jdk tar.gz 编辑:程序博客网 时间:2024/05/22 07:51
四、什么是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 文档。
综上所述,init ramfs是一种ramfs文件系统,在内核启动完成后把它复制到rootfs中,作为内核初始的根文件系统,它的任务是挂载系统真正的根文件系统。这就是init ramfs的前世今生。
- 精通init ramfs构建step by step (二)
- 精通init ramfs构建step by step (一)
- 精通init ramfs构建step by step (三)
- 精通init ramfs构建step by step (四)
- 精通init ramfs构建step by step (五)
- 精通init ramfs构建step by step (六)
- 精通init ramfs构建step by step(三)
- 精通initramfs构建step by step
- 精通initramfs构建step by step
- 精通initramfs构建step by step
- 精通initramfs构建step by step
- 精通initramfs构建step by step
- 精通initramfs构建step by step
- 精通initramfs构建step by step
- 精通initramfs构建step by step
- 精通initramfs构建step by step
- PL/SQL Step By Step(二)
- 卷积神经网络Step by Step(二)
- IMP数据时报20001错误
- Java泛型简明教程
- php时间函数的一些例子以及时区设置问题
- iPhone中基础字符判断函数收集(如判断大小写、数字等)
- XML CDATA是什么?
- 精通init ramfs构建step by step (二)
- Graphics相关-GradientDrawable以及其他
- Javascript继承机制的设计思想
- Attribute在.net编程中的应用(五)
- VIM 命令(转载)
- ORM,SqlDataSource,ADO.NET你需要什么?
- ip地址期末测验题答案
- 方向求助
- Rhodes入门教程-应用程序架构