linux的启动过程

      1、当电源开关按下时,电源开始向主板和其他设备供电,此时电压并不稳定,于是,当主板认为电压并没有达到 CMOS 中记录的 CPU 的主频所要求的电压时,就会向 CPU 发出 RESET 信号(即复位,不让 CPU 进一步运行),不过仅一瞬间不稳定的电压就能达到符合要求的稳定值,此时复位信号撤销,CPU 马上从基本内存的 BIOS 段读取一条跳转指令,跳转到 BIOS 的真正启动代码处,如此,系统 BIOS 启动,此后的过程都由系统 BIOS 控制。

      2、系统 BIOS 启动后会进行加电自检 POST(Power On Self Rest)。不过这个过程进行得很快,它主要是检测关键设备(如电源、CPU 芯片、BIOS 芯片、基本内存,显卡等电路是否存在以及供电情况是否良好。如果自检出现了问题,系统喇叭会发出警报声(根据警报声的长短和次数可以知道到底出现了什么问题)。

      3、如果自检通过,系统 BIOS 会查找显卡 BIOS,找到后会调用显卡 BIOS 的初始化代码来初始化显卡,此时显示器就开始显示了(这就是为什么自检失败只能靠发声进行提醒了)。显卡 BIOS 会在屏幕上显示显卡的相关信息(不过现在的笔记本似乎并不显示这个)。

      4、显卡检测成功后系统BIOS会接着找其他设备的BIOS,找到后同样调用这些BIOS内部的初始化代码来初始化相关设备,通过后系统 BIOS 重新执行自己的代码,并显示自己的启动画面,将自己的相关信息显示在屏幕上,而后会进行内存测试(这些在现在的计算机上也看不到了),仅仅是短暂出现系统 BIOS 设置页面,此时就可以对系统 BIOS 进行需要的设置了,完成后会重新启动。

      5、此后 BIOS 会检测系统的标准硬件(如硬盘、软驱(虽然现在很多计算机已没有软驱了)、串行和并行接口等),检测完成后会接着检测即插即用设备,如果有的话就为该设备分配中断、DMA 通道和 I/O 端口等资源,到了这里,所有的设备都已经检测完成了,老机会进行一次清屏并显示一个系统配置表,如果和上次启动相比出现了硬件变动,BIOS 还会更新 ESCD,即“Extended System Configuration Data”(扩展系统配置数据),它是系统 BIOS 用来与操作系统交换硬件配置信息的数据,这些数据被存放在 CMOS 中。现在的机器则不再显示这些了。

      6、当上面的所有步骤都顺利进行以后,BIOS 将执行最后一项任务:按照用户指定的启动顺序进行启动(即我们经常需要用到的设置系统从哪里启动,一般默认是硬盘,如果需要安装系统,还会设置为光驱或 USB 设备),注意,这里是指的启动顺序,如果设置为从光驱启动,而光驱中又没有光盘的话,系统还是会接着从硬盘启动的。

      7、读取第一个启动设备的MBR(主引导记录),加载MBR中的BootLoader(启动引导程序,最为常见的是GRUB)。

      8、依据Boot Loader的设置加载内核,内核会再进行一遍系统检测。系统一般会采用内核检测硬件的信息,而不一定采用BIOS的自检信息。内核在检测硬件的同时,还会通过加载动态模块的形式加载硬件的驱动。

      9、内核启动系统的第一个进程,就是/sbin/init。由/sbin/init进程调用/etc/init/rcS.conf配置文件,通过这个配置文件调用/etc/rc.d/rc.sysinit配置文件。

      10、而/etc/rc.d/rc.sysinit配置文件是用来进行系统初始化的,主要配置计算机的初始环境。还是通过/etc/init/rcS.conf配置文件,调用/etc/inittab配置文件。通过/etc/inittab配置文件来确定系统的默认运行级别。

      11、确定默认运行级别后,调用/etc/init/rc.conf配置文件。通过/etc/init/rc.conf配置文件调用并执行/etc/rc.d/rc脚本,并传入运行级别参数。

      12、/etc/rc.d/rc确定传入的运行级别,然后运行相应的运行级别目录/etc/rc[0-6].d/中的脚本。/etc/rc[0-6].d/目录中的脚本依据设定好的优先级依次启动和关闭。

      13、最后执行/etc/rc.d/rc.local中的程序。如果是字符界面启动,就可以看到登陆界面了。如果是图形界面启动,就会调用相应的X-Window接口。





















你可能感兴趣的:(linux,记录,power,显示器,电源)