linux系统启动经历的过程

来源:互联网 发布:blink内核源码下载 编辑:程序博客网 时间:2024/05/02 05:02

当我们点击开机按钮后到进入页面,这个过程发生了什么呢?总体的过程如下:
开机—BIOS系统—主引导记录—操作系统,linux和windows真正出现分歧的是在MBR之后。现在先讲一下linux。
在这个过程中,总结一下三个部分的主要工作。
BIOS系统:硬件检测,查找加载磁盘的MBR。
主引导系统:MBR会将控制权转交给系统启动程序引导系统启动。
操作系统:内核启动。
1.BIOS系统
简单而言,这一步是分两小步,第一小步,加电自检(POST),第二小步,查找BootLoader。
1.1 加电自检POST(power-on self test ),主要检测系统外围关键设备,也可以理解为一堆的硬件,是够运转正常。
1.2 加电自检没问题后,会把硬件信息加载到内存中,而BIOS存储了磁盘的启动顺序,当然也可以在BIOS中进行更改顺序。BIOS会按照启动顺序,去查找第一个磁盘头的MBR信息,看是否有BootLoader(主引导程序),假如没有,就继续往下找,直到存在,然后就把主动权给BootLoader。
2.主引导记录( MBR)
这步主要内容是grub启动,grub我们知道是多系统启动程序,用来引导系统。
2.1 在前一步是找到MBR,现在加载MBR。
2.2 识别系统文件。
2.3 通过系统文件找到kenel信息,加载kernel信息到内存中,现在系统就把控制权转给了kernel。kernel是没有硬件的驱动,此时加载硬件的驱动文件,initrd(Initial RAM Disk)。
3.操作系统
在操作系统这步呢,又分成3步,kernel,init。
3.1 kernel
内核(kernel)是有内核文件的,为了内核的精简,内核文件是压缩在磁盘中,现在开始加压内核文件。内核会以只读的方式挂载根文件系统,挂载完毕,开始加载第一个程序(/sbin/init),之后控制权就交给给init。
3.2 init
初始化操作系统,也就是根据系统的配置对系统做一些操作,完成这步之后,系统启动完成。

原创粉丝点击