initramfs与initrd的区别
1.initrd是一个单独的文件;initramfs和Linux内核链接在一起(/usr目录下的程序负责生成initramfs文档)。
2.initrd是一个压缩的文件系统映像(可以是ext2等,需要内核的驱动);initramfs是类似tar的cpio压缩文档。
内核中的cpio解压缩代码很小,而且init数据在boot后可以丢弃。
3.initrd运行的程序(initd,不是init)进行部分setup后返回内核;initramfs执行的init程序不返回内核
(如果/init需要向内核传递控制权,可以再次安装在/目录下一个新的root设备并且启动一个新的init程序)。
4.切换到另一个root设备时,initrd执行pivot_root后,卸载ramdisk;initramfs是rootfs,既不能
pivot_root,也不能卸载。initramfs会删掉rootfs的所有内容(find-xdev/-execrm'{}'';'),再次安装root到rootfs(cd/newmount;mount--move./;chroot.),把stdin/sdout/stderr挂在新的/dev/console上,重新执行init。由于这是一个相当困难的实现过程(包括在使用一个命令之前把它删除),所以
klibc工具包引入一个帮助程序/utils/run_init.c来执行上述过程。其他大部分工具包(包括busybox)把这个命令称为\。
linux ,Android基础知识总结
initramfs与initrd的区别1.initrd是一个单独的文件;initramfs和Linux内核链接在一起(/usr目录下的程序负责生成initramfs文档)。2.initrd是一个压缩的文件系统映像(可以是ext2等,需要内核的驱动);initramfs是类似tar的cpio压缩文档。内核中的cpio解压缩代码很小,而且init数据在b
推荐度:
点击下载文档文档为doc格式