豆豆系统win7安装教程 (豆豆系统win7系统)

一直以来只知道,按了power键后会启动centos系统,至于究竟如何进入的系统一直都没有很明白。对于一个使用centos系统做开发的人来说,了解linux的启动过程将有助于对于系统启动问题的解决。

Centos 7启动流程

1 BIOS开机自检

2 BIOS根据启动顺序找到启动程序

3 bootloader 根据配置读取 vmlinuz 电脑内核文件,解压缩initramfs镜像文件

4 内核从解压的initramfs中读取硬件驱动模块

5 内核启动systemd进程,systemd启动其他进程,操作系统开机


1.BIOS开机自检

主要是对硬件进行检查,如果硬件出现问题,主板会发出不同含义的蜂鸣,启动中止。如果没有问题,屏幕就会显示出CPU、内存、硬盘等信息。

开机自检

2.BIOS根据启动顺序找到启动程序

如果以硬盘启动,则找到硬盘的MBR并读取其中的bootloader(通过INT 13 中断功能来读取 MBR )

MBR物理位置位于硬盘的第一个扇区,其大小为512个字节。其中包含bootloader,分区表,结束标志


电脑电脑

MBR构成


3. bootloader 根据配置读取 vmlinuz 内核文件,解压缩initramfs镜像文件


在装机时,grub2会自动安装其文件

grub2将boot.img转换后的内容安装到MBR的bootloader处

grub2将core.img转化后的内容安装到开机扇区

grub2的配置文件在/boot/grub2/grub.cfg

grub2

以grub2为例,说一下其启动过程

1 BIOS开机硬件检测

2 BIOS根据开机顺序读取MBR中的bootloader区域的boot.img

3 boot.img读取开机扇区中的core.img,core.img读取 vmlinuz 内核文件,在内存中解压缩initramfs镜像文件并挂载为根目录

4 内核从解压的initramfs中读取硬件驱动模块

5 内核启动systemd进程

6 systemd启动其他进程

电脑

启动流程


4 内核从解压的initramfs中读取硬件驱动模块

这里的驱动模块,主要是与磁盘驱动相关的模块如 SCSI、virtio、RAID模块


5 内核启动systemd进程,systemd启动其他进程,操作系统开机

1 systemd 读取 /etc/systemd/system/default.target

2 载入核心模块,启动网络,挂载本机的fstab,启动防火墙等

3 启动用户自定义的程序



参考: 1.https://wizardforcel.gitbooks.io/vbird-linux-basic-4e/content/166.html

2.https://www.cnblogs.com/f-ck-need-u/p/7094693.html#auto_id_10


电脑