MACOS 中使用 EFI 作为引导,其他大部分利用 BIOS 引导
目的
加载一些自主程序代码给CPU执行,自主程序负责POST(上电自检)阶段,CPU探测各种硬件总线,查明安装了哪些设备, BIOS或BootROM固件定位这些引导设备,执行引导加载程序,将所有必要的命令行参数传递给操作系统内核。
在macOS中 唯一能执行的二进制格式为 Mach-O
在 XNU 中,文件系统是由 BSD 实现的,Mach 并不识别任何文件系统。
对应的内核是一个大程序 /System/Library/Kernels/kernel
中。
内核文件被放入内存中,然后找到入口,进行调用。
CPU(如果是多核则是主核)读取 ROM 上的 BIOS 并运行
ROM (read only memory) 在PC中通常嵌在主板上的一块芯片。
BIOS 全称 Basic Input/Output Service
CPU 从 ROM 中读取 BIOS,在 Mac 上用的是 Intel 的 EFI 接口
目前这个接口由 Unified EFI Forum 来维护,改名为 UEFI。
这个不是硬件 也不是上层跑的软件 是称为 固件
的东西,装在硬件上的