日期:2014-05-16  浏览次数:20702 次

Linux启动探究
1.系统初始化
  a.初始化流程
    POST->MBR->GRUB->VMLinuz->Init->其他进程

    POST:BIOS加电自检,启动设备选择,读取和执行第一启动设备
    MBR:启动盘的第一扇区(446IPL+64分区表+2 magic number)中前446字节,
    由于空间有限,无法完成复杂的启动,
    一般将高级启动任务交给GRUB
   GRUB:不受大小限制,有菜单,图形化和简单交互
    VMLinuz:操作系统核心
    Init:所有进程的祖先
     
2.启动过程细节:
   BIOS自检成功,将启动盘的MBR中的启动程序复制到内存中,执行该启动程序(stage1),
接着执行/boot/grub目录下相应文件系统类型的stage1_5(Linux对应的文件为 e2fs_stage1_5,这里装载文件系统为之后核心读取RAM盘作准备),
   然后是stage2(引导分区装载),GRUB包含丰富的启动设置,以菜单的方式指向核心和RAM文件系统,通过stage2,Linux加载核心,读取initrd(RAM盘,包含缩略的文件系统和必要的模块,通过将模块编译在RAM盘中,缩小了核心大小,同时为了配置的方便),为加载真正的文件系统做准备。