Linux操作系统启动流程

序号子流程描述
1加载BIOSBIOS:basic input output system, 基本输入输出系统。包含设备启动顺序信息、硬盘信息、内存信息、时钟信息、即插即用(plug and play, PNP)特性等
2读取MBR读取完BIOS信息,计算机会查找BIOS指定的硬盘MBR引导扇区,将其内容复制到0x7c00地址所在的物理地址中。被复制到物理内存的内容是bootloader,然后进行引导
3GRUB引导GRUB启动引导器是计算机启动过程中运行的第一个软件程序,计算机读取内存中的GRUB配置信息后,会根据其配置来启动硬盘中不同的操作系统
4加载kernel计算机读取内存映像,并进行解压缩操作。系统将解压后的内核放置在内存中,并调用start_kernel()函数启动一系列的初始化函数并初始化各种设备,完成Linux核心环境的建立
5设定inittab运行等级

内核加载完毕,会启动Linux操作系统第一个守护进程init,通过该进程读取/etc/inittab文件。/etc/inittab文件的作用是设定Linux的运行等级。常见的运行等级如下:

0 关机模式

1 单用户模式

2 无网络支持的多用户模式

3 字符界面多用户模式

4 保留,未使用模式

5 图像界面多用户模式

6 重新引导系统,重启模式

6加载rc.sysinit读取完运行等级,Linux系统执行第一个用户层文件 /etc/rc.d/rc.sysinit, 该文件设定path运行变量、设定网络配置、启动swap分区、设定/proc、系统函数、配置SELinux等
7加载内核模块读取/etc/modules.conf文件及/etc/modules.d目录下的文件来加载系统内核模块。该文件可以后期添加、修改、删除
8启动运行级别程序根据之前读取的运行等级,操作系统会运行/etc/rc.d/目录下rc0.d到rc6.d子目录中的脚本程序。其中S开头表示系统即将启动的程序,K开头表示停止该服务
9读取rc.local文件

操作系统启动完相应服务后,会读取执行/etc/rc.d/rc.local文件,可以将需要开机启动的任务加入该文件末尾。如:

/etc/init.d/httpd restart

/usr/local/nginx/sbin/nginx

10执行/bin/login程序执行/bin/login程序,启动系统登录界面。用户输入用户名和密码后进入shell终端

posted @   joechenyao  阅读(144)  评论(2编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示