Linux学习笔记---RHEL系统启动过程

 简单描述一下Linux启动的过程,在这里抛砖引玉,如有错漏之处,望各位网友给予指正,谢谢!

 

Linux的启动过程,主要包括四个阶段:

阶段一:BIOS

阶段二:引导加载程序Boot Loader

阶段三:内核Kernel

阶段四:/sbin/init和运行级别

============================================================================

一、BIOS

1.系统上电开机后,主板上的BIOS运行POST加电自检,检测系统上的关键设备。

2.BIOS根据主板的引导设备配置信息,选择正确的引导设备。(一般是硬盘)

3.BIOS读取引导设备第一个扇区上的信息(也就是MBR,512Bytes),把它装入内存,并将系统引导控制权移交给MBR中的Boot Loader。

 

二、引导加载程序Boot Loader

引导加载程序被设计为两个阶段

1.stage1:定位、装载并把引导控制权传递给stage2。

2.stage2:第二阶段通常就是引导程序本身,stage2执行GRUB引导程序。

3.GRUB解压并装载内核镜像,装载initrd初始化虚拟磁盘到内存。

4.GRUB把引导控制权传递给内核。

 

三、内核Kernel

1.初始化系统设备。

2.挂载根分区为ro状态。

3.运行/sbin/init程序,/sbin/init是内核启动的第一个进程,也是今后系统所有进程的父进程,其PID=1。


四、/sbin/init和运行级别

4./sbin/init读取/etc/inittab文件。

5./sbin/init根据/etc/inittab配置信息执行/etc/rc.d/rc.sysinit脚本。

6./etc/rc.d/rc.sysinit对系统进行初始化工作,如图所示

包括设置hostname、启动LVM逻辑卷管理、重新挂载根文件系统为rw状态、挂载其他文件系统……

7./etc/rc.d/rc.sysinit执行完初始化工作退出脚本,/sbin/init进程继续读取/etc/inittab的内容,从而从相应的run level启动系统。

8.从上图知,INIT进程读取到run level 5,执行/etc/rc.d/rc5.d目录下的脚本。下图为/etc/rc.d/rc5.d目录内容

rc5.d目录里面存放着run level-5需要启动的服务的脚本文件,都是以K或S开头。K表示关闭的服务,S表示启动的服务。

值得注意的是,/etc/rc.d/rcX.d目录里面的脚本文件都是符号链接文件,全部指向/etc/rc.d/init.d目录下的脚本文件

9.init按照rc5.d目录里面脚本的位置顺序逐一启动相应的服务,如图

10.init进程会执行最后一个脚本文件/etc/rc.d/rc.local(有必要时),这个脚本文件是让用户自定义系统启动后需要执行的工作。

11.系统启动虚拟终端/sbin/mingetty、运行run level-5上的X服务(X Window)

12.至此,Linux系统顺利启动完毕!

你可能感兴趣的:(linux,职场,启动过程,休闲,linux知识)