Centos系统启动流程

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Centos系统启动流程相关的知识,希望对你有一定的参考价值。


Centos系统启动流程


  启动流程: POST --> BootSequence(Bios) --> Bootloader (MBR) ->kernel (ramdisk) --> rootfs (switch_root) --> /sbin/init (/etc/inittab,/etc/init/*.conf, /usr/lib/systemd/system/)--> 默认运行级别、系统初始化、关闭及启动服务、启动终端(图形终端)


图解:

技术分享(1)POST

第一步首先加电自检,计算机本身不会执行程序,由此它会载入一段程序,它会在开机时自动实现将某个RAM中的程序映射到cpu可以寻址的地址空间中去,并且可以让cpu可以执行其中的指令,而这些指令是完成系统检测的,检测完成之后,当所有的硬件或基本的核心硬件没有问题的话就进行BIOS。

(2)BIOS

根据BIOS中所设定的程序启动流程去找与其对应设备上的MBR,按照引导次序执行(Boot Sequence),根据引导次序逐个查找对应的存储设备上的MBR,若MBR存在,则读取MBR上的BootLoader,BootLoader是一段程序,早期的MBR总共512字节,但它留给BootLoader空间大小是446字节,在BootLoader当中配置了所有引导的操作系统的内核的位置,因此BIOS在载入内存以后,当它实现将控制流程或控制权限转交给BootLoader以后,BootLoader就接收了整个系统的控制权限,而后根据用户的选择,去读取相应操作系统的内核。

 技术分享

grub: GRand Unified Bootloader

grub 0.x: grub legacy

grub 1.x: grub2 grub legacy:

stage1: mbr

stage1_5: mbr之后的扇区,让stage1中的bootloader能识别stage2所在的分区上的文件系统;

stage2:磁盘分区(/boot/grub/)配置文件:/boot/grub/grub.conf <-- /etc/grub.confstage2及内核等通常放置于一个基本磁盘分区;

/boot/grub/grub.conf:

技术分享

(3)第三步:将内核装载进内核中合适的位置,解压缩并完成内核初始化,BootLoader会把控制权限转交给内核。

技术分享

(4)第四步:如果内核访问根文件系统的设备需要用到某个驱动程序,而内核中也没有,就需要到根文件中去找这个驱动程序,但这文件系统本身又没有挂载,因此要想访问根文件系统得先找到驱动,要访问驱动得先找到根文件系统,这就出现了一个难题,这时就要借助于initrd,为内核提供访问真正的根文件系统所需要的基本驱动程序。因此initrd是一个辅助性的、过渡性的中间层。它能够实现将kernel与真正的根文件系统连接起来,当连接完成之后它就没有任何意义了。

Linux Kernel:

        CentOS启动流程:POST--> Bootloader(BIOS, MBR) --> Kernel(initrd) --> rootfs -->switch_root --> /sbin/init

内核设计体系:单内核、微内核

Linux:单内核设计,但充分借鉴了微内核体系的设计的优点;为内核引入了模块化机制;

内核的组成部分:

kernel:内核核心,一般为bzImage,通常位于/boot目录,名称为vmlinuz-VERSION-release

kernel object:内核对象,即内核模块,一般放置于/lib/modules/VERSION-release/

技术分享

 (5)第五步:执行init进程,而init程序本身的配置文件是/etc/inittab(而在Centos 6上init不在是传统的init,而是upstart,而upstart的配置文件在/etc/inittab和/etc/init/.*conf下的所有文件

1.  根据boot loader的设置加载Kernel 会主动调用init进程,而init会取得run-level信息

2.  init执行/etc/rc.d/rc.sysinit文件来准备软件执行的操作环境(如网络、时区等)

3.  init执行run-level的各个服务的启动(script方式)

4.  init执行/etc/rc.d/rc.local文件

5.  init执行终端机模拟程序mingetty来启动login进程,最后就等待用户登录


技术分享


字符界面:


技术分享


图形界面:


技术分享

 

 

 


以上是关于Centos系统启动流程的主要内容,如果未能解决你的问题,请参考以下文章

Centos系统启动流程

13.1 CentOS系统启动流程介绍

CentOS系统启动流程

CentOS 6系统启动流程

CentOS系统启动流程

CentOS系统启动流程