说明
LinuxBoot是一个开源的固件,用来替代UEFI BIOS加载Linux的系统。
官网是LinuxBoot。
对应的代码库位于LinuxBoot · GitHub。
原理
如图所示:
这里实际上将固件分为了两个部分(如框中所示),这两部分分别是:
1. 用于处理特定硬件的部分;
2. 通用部分;
第一部分,因为CPU和PCH等都是特定厂商提供的,因此需要特定的初始化代码来完成这些组件的初始化,这个部分可以是原来就有的东西,比如UEFI的PEI阶段。
第二部分实际上就是一个Linux的内核加文件系统,它在内存初始化之后加载,由于这些部分是通用的,因此原始的Linux代码就可以完成操作,因此在官网的开始就直接了当的写了:不要重复造轮子。
所以,LinuxBoot可以认为是跑一部分SI(Silicon Initialization)代码然后加载LinuxBoot内核再加载真正的内核。
使用
不足
1. 只能加载Linux操作系统,也就是说Windows不行,这个感觉是个问题。
2. 开源格式是GPL的,相比之下UEFI是BSD的。