boot loader 程序最先启动。loader 程序先磁盘 加载内核镜像 到内存,然后 加上一些参数 运行起来。
内核在哪里?
需要传哪些参数?
内核和参数都在 root 文件系统的 某个位置。
内核镜像存储在设备里,然而设备驱动不能用,那么内核程序 该在什么时候 运行?
boot loader 访问 磁盘 用的驱动 和 内核访问磁盘用的驱动 是不一样的。
boot loader 用的是 Basic input/output system(BIOS)或者 unified extensible firewear interface(UEFI) 来访问磁盘
现代磁盘 允许 BIOS和 UEFI 通过 Logical Block Addressing(LBA) 访问磁盘。
NOTE
可以通过 efibootmgr 看是否有用 UEFI
一旦可以访问磁盘数据了,boot loader 要定位数据(在文件系统中)。多数 boot loader 可以读分区表 以及 只读地访问文件系统。这样,让 动态配置 变得简单。
总的来说,一个模式:内核添加新特性。boot loader 学着 添加 独立的 简化的 各种特性。