JoeChenzzz

导航

linux系统启动的过程

1.BIOS

  BIOS(Basic Input/Output System),基本输入/输出系统,该系统存储于主板的ROM芯片上,计算机在开机时,会最先读取该系统,然后会有一个加电自检过程,这个过程其实就是检查CPU和内存,计算机最基本的组成单元(控制器、运算器和存储器),还会检查其他硬件,若没有异常就开始加载BIOS程序到内存当中。详细的BIOS功能,这边就不说了,BIOS主要的一个功能就是存储了磁盘的启动顺序,BIOS会按照启动顺序去查找位于磁盘头的MBR信息,并加载和执行MBR中的Bootloader程序,若第一个磁盘不存在MBR,则会继续查找第二个磁盘

2.MBR

  MBR(Master Boot Record),主引导记录,MBR存储于磁盘的头部用于存储BootLoader程序,64bytes用于存储分区表信息,最后2bytes用于MBR的有效性检查。

3.GRUB

  选择相应的操作系统

4.Kernel

  Kernel会以只读方式挂载根文件系统,当根文件系统被挂载后,开始装载第一个进程(用户空间的进程),执行/sbin/init,之后就将控制权交接给了init程序。

5.Init

  执行完后,根据配置的启动级别runlevel,执行对应目录底下的脚本(见下),启动指定runlevel的服务,最后执行/etc/rc.local这个脚本,至此,系统启动完成

6.Runlevel

  runlevel,运行级别,不同的级别会启动的服务不一样,init会根据定义的级别去执行相应目录下的脚本,Linux的启动级别分为以下几种

  0:关机

  1:维护模式

  2:不含网络功能的纯命令行模式

  3:含有网络功能的纯命令行模式

  4:系统保留功能

  5:图形界面模式

  6:重启

  在不同的运行级别下,/etc/rc.d/rc这个脚本会分别执行不同目录下的脚本

  • Run level 0 – /etc/rc.d/rc0.d/
  • Run level 1 – /etc/rc.d/rc1.d/
  • Run level 2 – /etc/rc.d/rc2.d/
  • Run level 3 – /etc/rc.d/rc3.d/
  • Run level 4 – /etc/rc.d/rc4.d/
  • Run level 5 – /etc/rc.d/rc5.d/
  • Run level 6 – /etc/rc.d/rc6.d/

  这些目录下的脚本只有K*和S*开头的文件,K开头的文件为开机需要执行关闭的服务,S开头的文件为开机需要执行开启的服务。

参考文献:

https://www.cnblogs.com/codecc/p/boot.html

posted on 2019-03-12 17:45  JoeChenzzz  阅读(162)  评论(0)    收藏  举报