linux6.x启动流程

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux6.x启动流程相关的知识,希望对你有一定的参考价值。

1.运行级别介绍
0 - halt (Do NOT set initdefault to this)系统直接关机
1 - Single user mode 单用户模式
2 - Multiuser, without NFS (The same as 3, if you do not have networking)类似3级别,但无NFS服务
3 - Full multiuser mode 含网路功能的纯文本模式
4 - unused 系统保留功能
5 - X11 加载使用xwindow
6 - reboot (Do NOT set initdefault to this) 重新启动

2.查看运行级别,runlevel命令
技术分享图片
N:表示从哪个运行级别到3级别的。由于我开机后直接进入到3级别,没有切换运行级别,所以显示NULL。
那我默认的开机级别是哪里设置的呢?
3./etc/inittab配置文件介绍
技术分享图片
从centos6.x后简化了inittab的功能,只有默认的运行级别的配置。其他的功能都在红色框内完成了。
4.先简单介绍下linux启动的流程
开机加载Bios硬件信息与进行自我测试,读取并执行第一个启动设备内MBR(主引导分区)的引导程序(boot loader)grub,此时如果是单系统的话会直接加载内核,如果是多系统的话会调用其他分区的启动程序已供选择再而加载内核,内核会解压缩到内存中,开始检测各个硬件,也就是此时内核开始接管BIOS的检测硬件工作了,并尝试挂载硬件的驱动程序,但是驱动程序放在根目录下了,问题是内核根本不认识SATA磁盘,需要加载磁盘的驱动程序,但程序又放在根下。这时需要虚拟文件系统了,centos5.x是initialRAM Disk,centos6.x是Initramfs。它可以通过boot loader加载到内核中解压缩并仿真成根目录,此时可以加载硬件的驱动了。加载完驱动后,挂载真正的根目录了。调用/sbin/init第一支程序,调用/etc/init/rcS.conf调用/etc/rc.d/rc.sysinit完成系统初始化。调用/etc/initab执行运行级别。调用/etc/rc.d/rc按照运行级别调用/etc/rc[0-6].d按照优先级启动和关闭相应脚本。启动或关闭脚本/etc/rc.d/rc.local.然后就是登录界面了。如下图
技术分享图片
4.接下来说下/etc/inittab文件中注释的红框部分

System initialization is started by /etc/init/rcS.conf

技术分享图片
这个文件包含2个部分,第1是准备系统软件执行的环境的脚本执行文件/etc/rc.d/rc.sysinit(取得网络环境与主机类型、测试与挂载内存设备/proc和USB设备、决定是否启动SElinux......)。第2是执行/etc/inittab执行运行级别
5.介绍下/etc/inittab配置文件中注释的第二部分/etc/init/rc.conf
技术分享图片

以上是关于linux6.x启动流程的主要内容,如果未能解决你的问题,请参考以下文章

Activity的启动流程

activity的启动流程(三)

Android 启动过程Android 应用启动流程 | Activity 启动流程

Spring启动流程(一)

流程办理操作说明

springboot启动流程 简单流程来了