Centos开机过程

CentOS的启动流程总体顺序如下(以CentOS6为例):
POST –> Boot Sequence –> bootloader(MBR) –> kernel –> 加载rootfs –> switchroot –> /sbin/init –> (配置文件:/etc/inittab,/etc/init/*.conf) –>根据init配置文件设置默认运行级别 –> 运行系统初始化脚本/etc/rc.d/rc.sysinit,完成系统初始化 –> 开启或关闭用户选定的对应级别下所对应的服务 –> 启动终端,打印登陆提示符。
这里写图片描述
1。POST加电自检
主要实现的功能是检测各个外围硬件设备是否存在而且能够正常运行起来,实现这一自检功能的是固化在主板上的ROM(主要代表是CMOS)芯片上的BIOS程序;
2。Boot Sequence(选择启动设备以加载MBR)
主要实现的功能是选择要启动的硬件设备,选择了之后就可读取这个设备上位于MBR里头的bootloader了。这一步的实现是这样的:根据BIOS中对启动顺序的设定,BIOS自己会依次扫描各个引导设备,然后第一个被扫描到的具有引导加载程序(bootloader)的设备就被定位要启动的引导设备。
3。加载bootloader(位于MBR中)
bootloader要实现的功能就是提供一个菜单给用户,让用户选择要启动的系统或不同的内核版本,然后把用户选择的内核版本加载到RAM中的特定空间,接着在RAM中解压,展开,而后把系统控制权移交给内核,即完成把内核加载到内存空间中。grub是bootloader中的一种。
4。Kernel自身初始化
kernel在得到系统的控制权后,首先要进行自身初始化。分为四步:

第一:探测可识别的所有硬件设备
第二:加载硬件驱动程序(有可能会借助于randisk加载驱动)
第三:以只读方式挂载根文件系统
第四:运行用户空间的第一个应用程序:/sbin/init

注意:ramdisk和内核一起由bootloader一同加载到内存当中的,这个文件是在第一次安装完系统后,根据各个不同的硬件接口的驱动组装打包起来的。为什么要加载这个伪文件系统呢?是因为在系统进行初始化第二步,加载的驱动文件在/boot/中,由于根还没有挂载,所以是访问不了的。因此就出现了ramdisk,提供一个伪文件系统,这个文件系统中就包括了各驱动程序。
5。init管理用户空间服务进程
init可以理解为是内核派来管理用户空间的使者。init这个初始化程序会跟据其配置文件执行一系列操作。虽然CentOS5,6,7的init配置文件各不相同,但总体的启动流程是不变的。
/sbin/init –>根据init配置文件设置默认运行级别 –> 运行系统初始化脚本/etc/rc.d/rc/sysinit,完成系统初始化 –> 关闭或启动用户选定的默认运行级别所对应的服务 –> 启动终端,打印登陆提示符
摘自:https://www.linuxidc.com/Linux/2017-03/141966.htm
https://www.cnblogs.com/swordxia/p/5476551.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值