前言
引导加载程序是系统加电后运行的第一段软件代码。在PC机中的由BIOS和位于硬盘MBR中的OS Boot Loader等共同构成了引导加载程序。
其中BIOS在完成硬件检测和资源分配后,将硬盘MBR中的Boot Loader读到系统的RAM中,然后将控制权交给OS Boot Loader。
Boot Loader的主要运行任务就是将内核映像从硬盘上读到RAM中去,然后跳转到内核的入口点去运行,即开始启动操作系统。
Boot Loader所支持的嵌入式体系
Assigned boot loader ids (hexadecimal):
0 LILO (0x00 reserved for pre-2.00 bootloader)
1 Loadlin
2 bootsect-loader (0x20, all other values reserved)
3 Syslinux
4 Etherboot/gPXE/iPXE
5 ELILO
7 GRUB
8 U-Boot
9 Xen
A Gujin
B Qemu
C Arcturus Networks uCbootloader
D kexec-tools
E Extended (see ext_loader_type)
F Special (0xFF = undefined)
10 Reserved
11 Minimal Linux Bootloader <http://sebastian-plotz.blogspot.de>
12 OVMF UEFI virtualization stack
名称 | 说明 | 支持的架构 |
---|---|---|
LILO | Linux的磁盘引导加载程序 | x86 |
GRUB | LILO的GNU版 | x86 |
Loadlin | 从DOS引导Linux | x86 |
U-Boot | 以PPCBoot和ARMBoot为基础的通用引导程序 | x86,ARM,PowerPC |
RedBoot | 以eCos为基础的引导程序 | x86,ARM,PowerPC,MIPS,M68k,SuperH |
Vivi | 以s3c2410处理器引导Linux | ARM |
ROLO | 从ROM引导Linux,且不需要BIOS | x86 |
Etherboot | 从以太网启动Linux系统的固件 | x86 |
LinuxBIOS | 以Linux为基础的BIOS替代品 | x86 |
blob | 来自LART计划的引导程序 | ARM |
关于引导程序的使用:其实每种嵌入式设备都需要配置硬件环境的,这其中就可以分类划分
- C51简单的没有引导程序的
- ARM有引导程序但是没有操作系统的
- 高级的有引导程序和操作系统的
下面就分别说