Linux的启动过程
-
接通电源后BIOS开机自检,对硬件进行检测
-
加载MBR(主动引导记录),从磁盘调入boot独立程序, boot把自身复制到高位地址的内存,从而为操作系统释放低位地址的内存。
MBR包括三部分内容:引导程序,分区表和分隔表示,最多512字节,引导程序最多446字节 -
boot程序读取启动设备的跟目录,boot要理解文件系统和目录格式,然后boot被调入内核,控制权交给内核
-
内核启动,创建内核堆栈,识别CPU类型,计算内存,禁用中断,启动内存管理单元
-
分配一个消息缓冲区来存放调试出现的问题
-
操作系统进行自动配置,加载配置文件,检测设备,设备如果没有响应就忽略,响应则添加到已连接设备表中
-
配置完硬件后,创建进程0,设置堆栈并运行,执行初始化、配置时钟,挂载文件系统, 创建init(进程1)进程和守护进程(进程2)
-
init进程会读取/etc/inittab文件读取Linux运行级别。
0:关机模式
1:单用户模式
2:无网络支持的多用户模式
3:字符界面多用户模式
4:保留,未使用模式
5:图像界面多用户模式
6:重新引导系统,重启模式
9.读取完运行级别后执行第一个用户层文件/etc/rc.d/rc.sysinit,设置PATH运行变量,网络配置,启动swap分区,设定/proc、系统函数、配置SeLinux -
读取/etc/modules.conf文件及/etc/modules.d目录下的文件来加载系统内核模块,该模块文件可以后期添加或者修改及删除。
11.根据读取的运行级别执行rc.0到rc.6的相应脚本程序,完成初始化。
- 读取执行/etc/rc.d/rc.local文件,将需要开机启到的任务添加到文件末尾,系铁会逐行去执行并启动相应命令。rc.local是初始化工作后,个性化的部分,可以设置要启动的东西。
13.执行bin/login程序