linux启动过程简述:
第一阶段
当用户打开机器电源时,CPU将自动进入实模式,并从地址0xFFFF0开始自动执行程序代码,而这个地址通常是ROM-BIOS中的地址(也就是说CPU将自动找到BIOS中代码并开始执行)。这时候BIOS就进行开机自检,并按照BIOS中设置的启动设备(在windows中我们在重装系统时也经常会在开电源后按Del键进入到BIOS并配置启动设备的顺序,将光盘启动放到第一位,就是跟这里一个意思了)进行启动(安装好了系统后一般来说是从硬盘启动)。这时候CPU开始执行启动设备上的程序了。而启动设备上一般都安装了引导程序lilo或grub,并且它们一般都位于启动设备的第一个扇区,于是,CPU便开始执行引导程序了。也就是说引导程序就开始引导linux了。
第二阶段
引导程序引导linux后,CPU就开始执行linux的代码了。linux首先进行的是内核引导,在这期间主要完成磁盘引导,读取机器的系统数据,从实模式切换到保护模式,加载数据段寄存器,重置中断描述符表,等等。
第三阶段
引导了linux内核后,开始执行init程序,进行系统初始化工作。init程序主要是调用rc.sysinit和rc等程序来完成系统初始化和运行服务,执行完初始化后,返回init程序,进入第四阶段
第四阶段
init程序接着启动mingetty,打开中断供用户登陆,也就到了我们看到的login画面了(这里指的应该是启动到终端界面时的登陆画面)。登陆成功后就进入了shell程序了。
下面是转来的一张上述各阶段的开机启动流程图:
接下来详细解释一下某些阶段:
内核引导阶段
(明天再写了,累了)