之前分析过x86-linux的启动流程,也分析过arm-linux的启动流程
感觉下来是 上电之后 到 linux启动之前 是 不一样的 , linux启动之后 流程是 一样的.
现在有了新的认识,想写到博客来说一下
现在的机器启动流程基本上为
UEFI -> grub2 -> linux
现在的机器启动流程基本为
bootrom -> u-boot -> linux
bootrom 是 内置到 arm 芯片(例如 imx.6ul)中去的.
不同厂家做的芯片中的 bootrom 是 不同的,当然支持的二级启动方式也不同(可把bootrom当做一级启动)
x86 的 UEFI 不在x86 芯片中,而在 主板上的 靠近南桥附近的一个ROM芯片中
arm 的 bootrom 在 arm 芯片中,具体一般位于 arm芯片中的 srom中
如果我们将 x86 和 x86芯片 附近的rom芯片 封装成 一个芯片 X87
那么 uefi 可以看成 是 X87 中的 bootrom , X87 中的 rom芯片 就是 srom
那么 x87 与 arm 就没有什么不同
有人讲
x87 中的 bootrom 叫做 uefi , 而 arm 中的 bootrom 不叫 uefi
如果 imx 芯片将其 中的 bootrom 命名 为 imx-efi, 那是不是就一样了?
其实 x87 中的 uefi 和 imx.6ul 中的 bootrom 没有本质的区别,它们都是 bootloader
综上, x86 的启动方式 和 arm 的启动方式 没有 区别
- x86-linux 和 arm-linux 的启动流程
bootrom -> bootloader -> linux
------------------------------------------------
对于x86: uefi -> grub2 -> linux
------------------------------------------------
对于arm: 芯片厂家特有的bootrom -> u-boot -> linux