日期:2014-05-16 浏览次数:20835 次
?
?
从机器通电到Linux系统被引导起来的过程。。。。。
?
在用户打开PC的电源后,首先是BIOS中设置的启动设备(通常是硬盘)来启动引导程序,启动设备上安装的引导程序LILO或者GRUB开始引导Linux。Linux首先进行内核的引导,此过程初始化相关的硬件设置,为系统运行做准备。接下来执行init程序,init启动mingetty后,打开终端共用户登录系统,然后用户登录成功后进入shell。在系统引导的过程中,与系统引导相关的代码有bpptsect.S,setup.S,head.S和init目录下的main.c文件
??
?
BIOS中的程序开始运行,执行一系列系统检测,如内存检测等,并对本地设备进行枚举和初始化。接下来搜索BIOS中设置的处于活动状态并且可以引导的启动设备。通常Linux都是从硬盘引导的,硬盘的引导扇区在每个分区都存在的,但是主引导扇区却在硬盘的第一个物理扇区。它有两部分组成,即主引导记录(Master Boot Record,MBR)和硬盘分区表(DPT)。在硬盘的主引导扇区中包含了主引导记录(MBR)的引导加载程序。此时BIOS将控制权交个MBR。
LILO/GRUB被看做是操作系统的Boot Loader。它的责任是在启动计算机时装入Linux的Kernel,并将计算机的控制权交给L而nel,然后Kernel再进一步初始化剩余的操作系统。
? Kernel Boot 主要完成一些相关的初始化工作,如设置与体系结构相关的环境,进程调度器初始化,控制台初始化,系统IRQ初始化,内存初始化等。