用于X86体系Linux的bootloader常用的有以下两种:

GNU GRUB(GRand UnifiedBootloader简称“GRUB”)是一个来自GNU项目的多操作系统启动程序。GRUB是多启动规范的实现,它允许用户可以在计算机内同时拥有多个操作系统,并在计算机启动时选择希望运行的操作系统。GRUB可用于选择操作系统分区上的不同内核,也可用于向这些内核传递启动参数。

在X86架构的机器中,Linux、BSD 或其它Unix类的操作系统中GRUB、LILO 是大家最为常用,应该说是主流。

详细信息请参考:http://www.gnu.org/software/grub/

syslinux是一个功能强大的引导加载程序,而且兼容各种介质。它的目的是简化首次安装Linux的时间,并建立修护或其它特殊用途的启动盘。它的安装很简单,一旦安装syslinux好之后,sysLinux启动盘就可以引导各种基于DOS的工具,以及MS-DOS/Windows或者任何其它操作系统。不仅支持采用BIOS结构的主板,而且从6.0版也开始支持采用EFI结构的新型主板。

Syslinux常被用于自网络或者可移动存储介质(如USB/CD-ROM)引导 Linux

详细信息请参考:https://kernel.org/pub/linux/utils/boot/syslinux/

1.3 嵌入式CPU的引导

Case 1:CPU内部无引导代码

CPU上电后,CPU开始在固定地址入口执行代码

CPU没有提供其他引导机制

硬件设计必须确保已连接存储芯片(如NOR闪存芯片)这样就可以在CPU启动的地址访问它并执行指令

第一级引导程序必须在此地址编程在该存储芯片中(如NOR)