Linux(四)——引导流程

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

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

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


    下面详细介绍每一步:

 

    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 定义了初始化的操作。 

               inittab文件内容:


      

    命令主要格式是: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,不可将默认设置为06,否则无法启动.

 

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


        由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目录下的服务启动脚本如图



 

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


    看下该目录下的内容:


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

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

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


    看一下具体细节:


 


    

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

    

    最后需要说明的是,LINUX的引导流程的思想大致相同,但细节因为版本的问题,在配置文件的名字或者是位置都不尽相同,此次我用的是CentOS版本,Ubuntu版本是没有inittab文件和grup.conf文件的,所以如果有兴趣,大家可以按照这种思路去探索探索. 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值