简要描述linux系统从开机到登陆界面的启动过程

开机过程:

1、加载 BIOS
系统固件加载 BIOS(基本输入输出系统),然后进行开机自检(POST),并开始初始化部分硬 件;

BIOS:basic input output system,它是一套程序,写死到主 板上的一个内存芯片中,这个内存芯片在没有通电的情况下也能将数 据记录下来(ROM,非挥发性)。

2、读取 MBR系统固件搜索磁盘上的主启动记录(MBR)

由于我们的系统软件大多放置在硬盘中,所以 BIOS 会指定启动 的设备,好让我们可以读取磁盘中的操作系统内核文件,这时候就需要 一个引导装载程序来处理内核文件加载(LOAD)的问题,这个引导装 载程序就被称为 BootLoader。

那这个 BootLoader 放在哪里呢?
就放在我们系统上第一个硬盘上的第一个扇区里面。也就是我们 说的 MBR:master boot record。

3、启动加载器(grub2)
系统固件从磁盘中读取启动加载器(Boot Loader),然后将系统
控制权交给启动加载器。在 7 中,我们的 BootLoader 是通过一个 grub 程序来实现的。
现在是 grub2.0,前一版本是 grub0.97。

grub2 的主要功能:1、提供菜单:选择不同的启动选项;
2、加载内核文件:直接指向可启动的程序区段来开始 OS;
3、转交其他 Loader(多系统时)。
4、显示菜单
启动加载器从我们的磁盘中加载其配置,然后向用户显示用于启 动的可能配置的菜单,这就是我们在开机的时候会看到的让你上下选 择什么什么版本啊,什么什么东西的那个界面。

我们可通过以下方式进行配置:/etc/grub.d/
/etc/default/grub
/boot/grub2/grub.cfg(非手动)

5、加载内核
在用户做出选择(超时)后,启动加载器会从磁盘中加载配置的
内核及 initramfs,并将其置于内存中;
initramfs 是一个归档文件,里面包含了启动时所需要的必要硬 件的内核模块、初始化脚本等等。在 RHEL7 中,initramfs 得到了加 强,包含自身可用的整个系统。

6、系统内部传递信息
这时候我们的启动加载器又将系统控制权交给内核,从而传递启 动加载器的内核命令行中指定的任何选项,以及 initramfs 在内核中 的位置。
7、初始化内核这时候会在 initramfs 中找到驱动程序的所有硬件,并且初
始化它,然后作为 PID1 从 initramfs 中执行/sbin/init。

PID1 就是systemd,代表的是系统启动的第一个用户级 进程,是所有其他进程的父进程。

8、执行单元初始化完成后,我们的 systemd 会执行 initrd.target 目标 的所有文件,这些所有的东西都包括在/sysroot 上挂载实际的 root 文件系统中。
9、系统回归接下来内核 root 文件系统会回到之前挂载于/sysroot 上的系统 root 文件系统,然后就是我们 systemd 的事情了,它会使用系统中 安装的 systemd 副本来自行重新执行。

10、开机界面
我们们熟悉的输入账号密码的界面了


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沐思博客

打赏的人并不是任性,他们可能是

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值