关于ramfs、tmpfs、rootfs和initramfs以及initrd

ramfs

ramfs是一种基于linux磁盘缓存机制的文件系统,它是在页缓冲和目录缓冲之上的一层很薄的封装,代码量极少。ramfs的底层存储是ram,ramfs在mount时可以指定size,但是你仍然可以往其上写入一个很大的文件,由此导致ram被吃光。ramfs只能被root访问。

tmpfs

tmpfs算是ramfs的加强版,它可以使用内存或swqp分区作为存储,它使用了虚拟内存的机制,它将所有文件保存在虚拟内存中。tmpfs占用的内存有大小的限制,可以在mount时设置,当写入数据会导致超过size时会报错。tmpfs可以把暂时不用的东西回写到swap分区。

rootfs

而rootfs是ramfs/tmpfs(if tmpfs is enabled) 的一个特殊实例,用于挂载真实文件系统。

initramfs

rootfs可以被打包为一个cpio压缩包,并通过initrd=命令行参数传递给内核。也可以通过INITRAMFS_SOURCE选项直接编译进内核。

initramfs会在内核启动启动完成后被解压为rootfs,kernel将检查rootfs中是否包含init文件。如果init文件存在,内核就会执行这个文件,并且赋予PID=1的进程号。这个init程序将整个系统引导起来,包括定位并且安装真正的root设备。如果在cpio文档解压缩后的rootfs中没有init程序(init文件),内核执行旧的代码,定位并且安装root分区,执行/sbin/init程序。

initrd

initramfs是linux中现在常用的功能,在较老的linux中,用的则是initrd(initramdisk)。

initramfs不依赖于任何其他文件系统,与initramfs不同,initrd模拟了一个磁盘(增加了linux块I/O的开销),因此,initrd要求内核镜像包含该“磁盘”的文件系统驱动程序。

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值