二者特点
都用c开发
coreboot spec 灵活,易实现
UEFI spec限制多
coreboot
https://github.com/coreboot/coreboot
coreboot前称为“LinuxBIOS”,是一个开源的软件项目,旨在替换BIOS或UEFI。大部分使用C语言编写,少部分使用汇编语言,遵循GPLv2协议。
coreboot引入payload概念,在初始硬件初始化后就跳转到payload。
payload可以是引导程序,亦可以是OS。
payload可以是bootloader,比如SeaBIOS、GRUB 2(Linux常用的bootloader)、OpenBIOS、Tiano Core(一种UEFI的实现),也可以是操作系统,比如Linux、FreeBSD、Windows、OpenSolaris。
coreboot主要用在ARM架构的芯片上。
UEFI
Unified Extensible Firmware Interface。
UEFI取代BIOS,
传统BIOS引导的是MBR分区表,读取分区表的主引导记录(0磁道,1扇区,前512字节,以55AA结束)
UEFI引导是启动到文件,读取第一个FAT分区(ESP分区)efi\boot\bootx64.efi 来引导系统
UEFI主要用在X86架构的芯片上。