Linux启动流程

Linux的启动流程可以分为以下几个步骤

  1. firmware    固件里面执行的POST(power on self test)加电自检

  2. BootLoader  引导程序,引导程序是放在第一个启动设备的MBR(Master Boot Record)里面。MBR是该设备的第一个分区,大小为446bytes

  3. kernel    引导程序最重要的就是载入内核

  4. init      在内核载入的时候,内核主要所两件事,其一是驱动硬件,其二是启动init进程,init进程是Linux里面一个很特别的进程,它的PID恒为1.

  5. /etc/inittab  启动init进程的实质是执行/etc/inittab这个文件,该文件是init进程的配置文件,对于该配置文件的产看可以有两种方法

    (1)通过grep -v "^#" /etc/inittab |more 命令查看配置文件中没有注释的配置

    (2)也可以通过man /etc/inittab 来查看,在此需要说明的是,man不仅可以查看命令也可以查看配置文件

    无论用那种方式得到的主要信息都是如下所示:

    id:3:initdefault:


    si: : sysinit:/etc/rc.d/rc.sysinit


    10:0:wait:/etc/rc.d/rc 0

    11:1:wait:/etc/rc.d/rc 1

    12:2:wait:/etc/rc.d/rc 2

    13:3:wait:/etc/rc.d/rc 3

    14:4:wait:/etc/rc.d/rc 4

    15:5:wait:/etc/rc.d/rc 5

    16:6:wait:/etc/rc.d/rc 6


    ca::ctrlaltdel:/sbin/shutdown -t3 -r now

     

    在真实的环境中,会显示出比现在多的信息,在这里写出的这些信息就能够理解大概了,通过对/etc/inittab这个配置文件的查看,能够看到在该配置文件中都是以

    id:runlevels:action:progress

    这样的命令格式规范的,id 是一个标识号,runlevels表示系统的运行级别,在Linux里面系统的运行级别从0-6一共有六个,action 指定运行状态,progress是执行的命令,一般是一些脚本命令。

    通过查看配置文件,才能知道Linux在启动了init进程的时候,会做些什么,首先Linux会使用语句

    id:3:initdefault:   

    initdefault是一个重要的action,指定了系统在启动时候的运行级别,在该语句中runlevel是3,所以系统启动的运行级别是3

    接下来系统会执行

    si: : sysinit:/etc/rc.d/rc.sysinit

    该语句没有写runlevel,表示无论系统在哪个运行级别该语句都会执行,那么该语句执行的就是/etc/rc.d/rc.sysinit 这个脚本,该脚本是系统初始化的脚本,sysinit这个action表示的是系统在初始化的时候执行。

    系统初始化完成之后,会想到,第一个执行语句所显示的系统级别,然后根据已经读到的运行级别找到对应级别的语句

    13:3:wait:/etc/rc.d/rc 3

    该语句只有在运行运行级别是3的时候执行,执行的是/etc/rc.d/rc3.d这个文档,wait表示的是,执行progress中的命令,并等待其结果再运行其他命令。

    在运行完这个脚本程序之后,Linux系统就可以启动起来了





    

你可能感兴趣的:(linux,配置文件,power,bootloader,firmware)