1.引导过程概述
引导 Linux 内核的过程包括很多阶段,这里以引导 X86 PC 为例来进行讲解。引导 X86 PC 上的 Linux内核的过程和引导嵌入式系统上的 Linux 内核的过程基本类似。不过在 X86 PC 上有一个从 BIOS(基本输入/输出系统)转移到 Bootloader 的过程, 如图1所示, 而嵌入式系统往往复位后就直接运行 Bootloader。
图1 X86 PC 上的 Linux 内核引导流程
图1给出了在 X86 PC 上从上电/复位到运行 Linux 用户空间初始进程的流程。在进入与 Linux 相关代码之前,会经历如下阶段。
① 当系统上电或复位时, CPU 会将 PC 指针赋值为一个特定的地址 0xFFFF0,并执行该地址处的指令。在 PC 中,该地址位于 BIOS 中,它保存在主板上的 ROM 或 Flash 中。
② BIOS 运行时按照 CMOS 的设置定义的启动设备顺序来搜索处于活动状态,并且可以引导的设备。若从硬盘启动, BIOS 会将硬盘 MBR(主引导记录&