Linux操作系统启动流程
序号 | 子流程 | 描述 |
1 | 加载BIOS | BIOS:basic input output system, 基本输入输出系统。包含设备启动顺序信息、硬盘信息、内存信息、时钟信息、即插即用(plug and play, PNP)特性等 |
2 | 读取MBR | 读取完BIOS信息,计算机会查找BIOS指定的硬盘MBR引导扇区,将其内容复制到0x7c00地址所在的物理地址中。被复制到物理内存的内容是bootloader,然后进行引导 |
3 | GRUB引导 | 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终端 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~