Linux 系统的启动,从计算机开机通电自检开始,一直到登陆系统,需要经历多个过程。了解 Linux操作系统的启动过程,对Linux操作系统更深入认识和日常的运维工作非常有帮助,感兴趣的朋友可以了解一下。
今天主要介绍一下CentOS 6.x操作系统的启动过程, CentOS 6.x系统启动使用 Upstart 启动服务取代了之前版本采用的 System V init 启动服务。使用Upstart 启动服务的效率更高,启动速度更快。
CentOS 6.x操作系统的启动流程经历以下几步:
1、服务器加电,加载 BIOS 信息,然后BIOS 进行系统检测。依照 BIOS 设定,找到第一块可以启动的设备(一般是硬盘);
2、接着读取第一个启动设备的 MBR (主引导记录),加载 MBR 中的 Boot Loader(启动引导程序,最多的是 GRUB)。
3、然后依据 Boot Loader 的设置加载操作系统内核,此时内核会再进行一遍系统检测。系统一般会采用内核检测硬件的信息,而不一定采用 Bios 的自检信息。内核在检测硬件的同时,还会通过加载动态模块的形式加载硬件的驱动。
4、接着内核启动系统的首个进程,也就是 /sbin/init。
5、然后由 /sbin/init 进程调用 /etc/init/rcS.conf 配置文件,通过这个配置文件调用 /etc/rc.d/rc.sysinit 配置文件。而 /etc/rc.d/rc.sysinit 配置文件是用来进行操作系统初始化的,主要用于配置计算机的初始环境。
6、然后通过 /etc/init/rcS.conf 配置文件调用 /etc/inittab 配置文件。通过 /etc/inittab 配置文件来确定操作系统的默认运行级别。
7、确定默认运行级别后,调用 /etc/init/rc.conf 配置文件。
8、接着通过 /etc/init/rc.conf 配置文件调用并执行 /etc/rc.d/rc 脚本,并传入运行级别参数。
9、/etc/rc.d/rc 确定传入的运行级别,然后运行相应的运行级别目录 /etc/rc[0-6].d/ 中的脚本。
10、/etc/rc[0-6].d/ 目录中的脚本依据设定好的优先级顺序依次启动和关闭。
11、最后执行 /etc/rc.d/rc.local 中的程序。
12、如果是命令行界面启动,就可以看到登录界面了。如果是图形界面启动,就会调用相应的 X Window 接口。
总结:BIOS自检 -> 启动 GRUB -> 加载内核 -> 执行第一个进程 -> 配置系统初始环境。