centos7系统开机大致流程

大致过程

是不是使用linux系统的计算机过程中一直有一种想法,就是计算机究竟是怎么开启的?在学校学的早已抛诸脑后,一起回忆下吧,搬运了网上同仁们的理解,如有侵权请告知,必删。
先后顺序如下:

BIOS

BIOS(Basic Input/Output System),基本输入输出系统,开机先读取,进行加电自检,主要检查控制器、运算器、存储器等,无异常则加载
BIOS程序到内存,主要功能是存储了磁盘的启动顺序(可在BIOS界面修改),BIOS会按照启动顺序去查找第一个磁盘头的MBR信息,并加载和执行MBR中的Bootloader程序,若不存在则找下一个磁盘。

MBR

MBR(Master Boot Record),主引导记录,MBR存储于磁盘的头部,大小为512bytes,其中,446bytes用于存储BootLoader程序,64bytes用于存储分区表信息,最后2bytes用于MBR的有效性检查。接管控制权,加载GRUB。

GRUB

GRUB(Grand Unified Bootloader),多系统启动程序,其执行过程可分为三个步骤:
1.查找并加载第二段Bootloader程序(但系统在没启动时,MBR根本找不到文件系统)。
2.识别文件系统。
3.GRUB程序会根据/boot/grub/grub.conf文件查找Kernel的信息,然后开始加载Kernel程序,当Kernel程序被检测并在加载到内存中,GRUB就将控制权交接给了Kernel程序。

要点:实际上这个步骤/boot还没被挂载,GRUB直接识别grub所在磁盘的文件系统,所以实际上应该是/grub/grub.conf文件。

Kernel

Kernel,内核,Kernel是Linux系统最主要的程序,实际上,Kernel的文件很小,只保留了最基本的模块,并以压缩的文件形式存储在硬盘中,当GRUB将Kernel读进内存,内存开始解压缩内核文件。

通过挂载临时根目录initramfs加载核心模块(驱动程序…),然后卸载临时根目录,挂载真正的根目录。

启动systemd程序。

使用default.target进入开启流程(假设是multi-user.target)
执行sysinit.target初始化系统(检测硬件,载入所需的核心模组)、basic.target准备系统(载入硬件驱动和防火墙相关任务)
执行multi-user.target下面的服务(如果启动了/etc/rc.d/rc.local,则需要启动里面的命令)
执行multi-user.target下的/etc/rc.d/rc.local
启动tty
如果运行级别是graphical.target则会启动图形桌面

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值