技术员联盟提供win764位系统下载,win10,win7,xp,装机纯净版,64位旗舰版,绿色软件,免费软件下载基地!

当前位置:主页 > 教程 > 服务器类 >

解析Linux系统启动的引导流程

来源:技术员联盟┆发布时间:2018-01-14 00:48┆点击:

  LINUX是自由开源软件,在LINUX里一切都是文件,不管是命令,操作等等都是以文件形式保存,这篇博客来记录LINUX启动时的引导流程是通过哪写文件来完成的.

  使用的LINUX版本是CentOS5,CentOS和Ubuntu都是自己联系使用时的较理想版本.

  下面以CentOS5.5版本为例,介绍LINUX的引导流程,具体流程如下:

2016216120312292.png (500×367)

  下面详细介绍每一步:

  1)第一步firmware固件自检,主要是进行CMOS/BIOS对硬件进行POST加电自检,在物理层次上对硬件进行检测是否正常。例如检查硬盘是否插好等。

  2)第二步读取硬盘中MBR的BootLoader,自启动程序,Linux下常用的自启动程序是GRUB。这一步主要的功能是载入内核。内核存放在/boot目录下

  3)第三步就是载入的内核Kernel的过程,

  主要功能是:1、驱动硬件,Kernel中含有大量驱动程序。2、启动init进程。

  4)init进程,主要是读取/etc/inittab文件,执行缺省运行级别,从而继续引导。需要注意的是init京城的PID恒为1,是所有进程的父进程,而init进程的负景程是0,为内核调度器Kernel scheduler。

  5)/etc/inittab 定义了初始化的操作。

2016216120335483.png (538×238)

  命令主要格式是:id: runlevels : action : process

  其中,如上图红框中所示

  1、run-levels运行级别有7个,0—6分别如下:

  0 —— halt 关机

  1 —— Single user mode 单用户模式

  2 —— Multiuser,withoutNFS 多用户模式但不带网络(text模式)

  3 —— Full multiuser mode 完整功能的多用户模式(text模式)

  4 —— unused 预留

  5 —— X11 图形化多用户模式

  6 —— reboot 重启

  可以根据这7个运行级别来进行切换

  命令为:查看当前运行级别 #runlevel、 切换运行级别 #init[0 |1 |2 |3 |4 |5 |6]

  2、而acion中也有几个比较重要的取值:

  1 initdefault:指定系统缺省启动的运行级别,如上图中标出,通常用于修复,比如我们要进入单用户模式,则可以将其设置为1,不可将默认设置为0或6,否则无法启动.

  2sysinit:系统启动执行process中指定的命令

2016216120358904.png (316×35)

  由inittab文件内容可以看出,没有设置运行级别,即为无论是哪个运行级别,都会执行/etc/rc.d/rc.sysinit

  6)initdefault,如第五步所说到的,主要是读取/etc/inittab中的信息,判断缺省的运行级别是什么。

  7)/etc/rc.d/rc.sysinit

  在inittab文件中运行到第21行,变是启动这个脚本。完成系统服务程序的启动,如系统环境变量的设置、设置系统时钟、加载字体、检查加载文件系统、生成系统启动信息日志文件等。由于是基础服务,因为其run-level设置为空::即任何级别,action设置为sysinit。即该脚本在任何运行级别下都要启动,以完成基础服务的启动

  8)基础服务启动后,会执行/etc/rc.d/rc这个脚本

  加载完基础服务后,就要根据不同的运行级别去启动相对应的下的目录,它的工作原理是先去判断系统的默认运行级别即第6步中的东西,然后再执行相应的rcN.d目录下的服务启动脚本如图

2016216120419054.png (341×144)

  9)执行/etc/rc.d/rcN.d目录下的服务启动脚本

  看下该目录下的内容:

2016216120437630.png (671×247)

  其中S表示要启动的脚本,K表示要关闭的脚本

  数字表示启动顺序,数值小的优先.主要是对一些服务的管理

  在这一步里,需要说明一下/etc/rc.d/init.d这个目录,这个目录里放的脚本是真正的脚本,而rcN.d里放置的都是init.d目录里的软连接,也就是说所有rcN.d里的文件最终都需要来init.d里找真正的脚本

  看一下具体细节:

2016216120456913.png (613×180)

2016216120516144.png (474×272)

  执行到这一步,界面就会提示输入用户名和密码了,也就是说系统已经起来了,输入用户名和密码的过程后面再说,这次的引导流程就结束了