我知道他们是两个不同的实体。Rootfs是一个描述如何存储和访问数据的文件系统。内核是执行的实际代码。
但是,内核代码不是存储在Rootfs中吗?
例如,为什么会将它们存储在不同的分区中?我总是在嵌入式系统中看到emmc设备的分区布局,例如,一个分区用于内核,另一个分区用于Rootfs。这让我很困惑。
发布于 2019-01-07 22:21:42
旧的引导加载程序只能挂载原始文件系统,因此内核保持在引导上,操作系统保持在根上。防止由于完整的文件系统导致的某些类型的故障的一种方法是给出它自己的文件系统的每一件东西。多个分区的另一个方便之处是可以单独备份和恢复它们。一些文件系统,比如ZFS,BTRFS,LVM?不支持不使用Linux内核的引导加载程序。
这些想法的问题在于,如果当有大量其他可用空间时,启动卷变得满,那么更新内核就会失败。快速增量快照只有在高级文件系统下才能实现。
因此,这取决于操作系统发行版来决定做出什么样的权衡。
完全独立于文件系统,有一些特性(安全性和其他特性)可以将内核映射到内存,然后用硬件和/或软件限制对该内存的访问,以增强权限和减少权限提升。见用户与内核模式。
发布于 2019-01-07 22:25:45
内核是RAM驻留的可执行代码.rootfs是系统的基本文件系统(最初是ramfs或tmpfs),但更经常用于引用某种类型的文件系统中的文件集合(例如ramfs、ext2 2/3/4、jffs2、ubifs),这些文件系统由必要的初始化和用户空间程序组成。这两者都是引导Linux系统所必需的。
来自一个姐妹社区,其中有人问了一个类似的问题。单击这里获取更多信息。
https://unix.stackexchange.com/questions/493098
复制相似问题