CentOS 6 启动流程详细介绍
centos 6 启动流程详细介绍
1、 post(power on selt test) 上电自检:
按下电源键首先要检测硬件设备是否能正常运行,如:cpu、内存、硬盘等硬件设备。当然post不是由硬件去检测(硬件也不会啊!),而是依靠一个软件来完成的,这个软件就是bios(basic input output system)基本输入输出系统,它安装在cmos芯片上,上电就是给cmos加电,然后启动bios程序,bios会根据cmos上记录的硬件信息去读取硬件并检测是否能正常运行,之后初始化硬件设备。
2、 mbr(master boot record)主引导分区:
bios初始化硬件后会通过硬件的int13中断功能实现读取mbr,读取mbr中的boot loader,boot loader是一个软件,它具有提供菜单功能,直接加载内核信息及相关控制权转换,mbr只有512bytes,其中前446bytes存储的是boot loader,46bytes存储分区表信息,2bytes为分区标志位。446bytes不足以安装boot loader,事实上mbr前446bytes只是安装了boot loader的最小主程序,即stage1,因为boot loader 分为stage1、stage1.5、stage2三个阶段来执行的,stage1.5存放在mbr随后的扇区中,主要用于和stage2所在分区的文件系统交互,stage2加载硬盘分区/boot目录下所有文件、配置文件与环境参数信息。
3、 kernel、initrd/initramfs:
/boot目录下包含vmlinuz,initramfs等内核相关的文件,boot loader读取/boot目录下所有文件、配置文件与环境参数信息后,会把内核解压加载到内存中,根据内核提供的功能开始检测,加载各个设备,此次检测与bios自检不同,执行到此,后续工作都由内核来完成(因为boot loader已把vmlinuz,initramfs加载到内存中),此时内核还没有加载磁盘,因为还没有磁盘驱动程序,内核通过/boot目录下的虚拟文件系统,也就是initramfs,模拟一个rootfs(根文件系统),加载启动过程中所需要的核心模块,加载后释放rootfs(根文件系统),且以只读方式挂载真实的根文件系统,开始正常的启动过程。
4、 init:
用户空间第一个执行程序,在内核,硬件及驱动加载完成后,内核会执行用户空间的第一个执行程序/sbin/init,init 程序主要功能为准备软件运行环境,包括系统主机名称,网络配置,文件系统格式等其他服务配置。
init的配置文件:
centos 6:采用upstart的方式,其特点是守护进程间的通信依赖于d-bus进行,因此,可基本实现类似并行启动,配置文件:/etc/inittab、/etc/init/*.conf
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持,如有疑问可以留言或者到本站社区讨论交流,共同进步!