以前 PC 上 BIOS 启动,很好理解,加载 bootloader,bootloader 加载系统,之间的一些工作都很明确
但是现在 PC 这边实模式不是必须的了,而且早就开始用 UEFI 了。但是 UEFI32 可以启动 64 位的 Linux 却不支持 64 位 Windows
没有弄过黑苹果,也没有兼容的硬件。看样子如果是 Intel X86 的话,UEFI 和 bootloader 的差异还是有办法在载入最后的内核之前弄好的。系统的内核,到底是怎样的地位?以前用 Grub2 可以启动很多系统,其中有个方法就是用 memdisk 把 ISO 读到内存里,很慢而且参数里有 linux16,这些现象的原因是什么?
还有 ARM 架构,感觉挺复杂的。而且如果是手机的 SoC 的话,好多 Uncore 部分也要初始化,甚至一开始有不少东西都不在 DRAM 和 CPU 核心上跑。也不理解到底是怎么切换的
再就是,AArch64 的很多平台,启动的时候有个状态是 AArch32 单核,到一定的阶段之后才会切换成 AArch64 多核。X86 传统的启动方式也是实模式切换到保护模式,这中间的缘由是什么?