LINUX 启动过程详解
一、启动过程
1.BIOS自检
2.读取MBR信息
3.加载内核
4.内核执行init 程序,从/etc/inittab 中获得run-level信息
5.init 执行 /etc/rc.d/rc.sysinit
6.执行/etc/rc.d/rcN.d/[ks]
7.init 执行相应的run-level脚本
8.init 执行/etc/rc.d/rc.local
9.执行/bin/login,登陆登陆
POST上电自检:是微机接通电源后,系统进行的一个自我检查的例行程序。这个过程通常称为POST上电自检(Power On Self Test)。对系统的几乎所有的硬件进行检测。
POST是如何进行自检测的?
主板在接通电源后,系统首先由(Power On Self Test,上电自检)程序来对内部各个设备进行检查。在我们按下起动键(电源开关)时,系统的控制权就交由BIOS来完成,由于此时电压还不稳定,主板控制芯片组会向CPU发出并保持一个RESET(重置)信号,让CPU初始化,同时等待电源发出的POWER GOOD信号(电源准备好信号)。当电源开始稳定供电后(当然从不稳定到稳定的过程也只是短暂的瞬间),芯片组便撤去RESET信号(如果是手动按下计算机面板上的Reset按钮来重启机器,那么松开该按钮时芯片组就会撤去RESET信号),CPU马上就从地址FFFF0H处开始执行指令,这个地址在系统BIOS的地址范围内,无论是Award BIOS还是AMI BIOS,放在这里的只是一条跳转指令,跳到系统BIOS中真正的启动代码处。系统BIOS的启动代码首先要做的事情就是进行POST(Power On Self Test,加电自检),由于电脑的硬件设备很多(包括存储器、中断、扩展卡),因此要检测这些设备的工作状态是否正常。
这一过程是逐一进行的,BIOS厂商对每一个设备都给出了一个检测代码(称为POST CODE即开机自我检测代码),在对某个设置进行检测时,首先将对应的POST CODE写入80H(地址)诊断端口,当该设备检测通过,则接着送另一个设置的POST CODE,对此设置进行测试。如果某个设备测试没有通过,则此POST CODE会在80H处保留下来,检测程序也会中止,并根据已定的报警声进行报警(BIOS厂商对报警声也分别作了定义,不同的设置出现故障,其报警声也是不同的,我们可以根据报警声的不同,分辨出故障所在。
POST自检是按什么顺序进行检测的?
POST自检测过程大致为:加电-CPU-ROM-BIOS-System Clock-DMA-64KB RAM-IRQ-显卡等。检测显卡以前的过程称过关键部件测试,如果关键部件有问题,计算机会处于挂起状态,习惯上称为核心故障。另一类故障称为非关键性故障,检测完显卡后,计算机将对64KB以上内存、I/O口、软硬盘驱动器、键盘、即插即用设备、CMOS设置等进行检测,并在屏幕上显示各种信息和出错报告。在正常情况下,POST过程进行得非常快,我们几乎无法感觉到这个过程。
本文转自 还不算晕 51CTO博客,原文链接: