iamyourdad

记录一下研究linux操作系统的过程
https://baike.baidu.com/item/bios/91424?fr=aladdin
BIOS介绍
计算机硬件出厂时会在主板的CMOS芯片内烧录BIOS(basic input output system)或者UEFI(unified extensible firmware interface) BIOS。BIOS相当于文本界面,朴实无华; UEFI BIOS类似简单的图形界面,比较酷炫,还能使用鼠标;姑且统一叫做BIOS。计算机开机会加载ROM芯片内的BIOS进内存,然后读取CMOS芯片的BIOS设定,进行硬件开机自检。
BIOS可以选择不同的形式如硬盘、USB、光盘等介质作为启动项,一般在系统安装时会选择USB或光盘介质作为启动项。

系统安装流程
系统安装时,BIOS会通过INT13进入MBR,会将文件系统的bootloader程序(开机管理程序,有uboot、grub2等,常用grub2,主要用于选择vmlinuz内核和initrd虚拟根文件系统)加载到硬盘的MBR区域(计算机开机必须要在硬盘读取的第一个扇区叫MBR),然后启动grub2搜索vmlinuz和initrd.img。当使用iso安装系统时,先挂载iso,然后iso下的目录就成为了类似根目录如下图1。在这里插入图片描述
图1

将grub2加载到MBR后,控制权交给grub2。grub2会根据grub.cfg文件的配置来执行,主要从相应目录搜索vmlinuz内核和initrd.img虚拟根文件系统。如下图2.
在这里插入图片描述
图2
grub2将vmlinuz内核加载进内存,将控制权交给内核,内核进行硬件如CPU、硬盘、内存、总线等检测,然后将initrd.img虚拟根文件系统加载进内存,使得具备基础的硬件驱动如硬盘、内存、USB等外设驱动,initrd.img可通过如下命令解开查看,目录结构如下图3:
#mkdir images/pxeboot/tmp
#xz images/pxeboot/initrd.img | cpio -ivd -D images/pxeboot/tmp
在这里插入图片描述
图3

initrd.img虚拟根文件系统加载进内存后,initrd.img虚拟根文件系统中的systemd接管控制权,会挂载真正的根文件系统rootfs.img到initrd.mig中的sysroot中,通过chroot(一个切换根的命令)切换到真正的根文件系统,然后卸载initrd.img虚拟根文件系统,真正的根文件系统rootfs.img中也有systemd,最终由他来接管系统,并执行一些systemd文件系统挂载,设备节点挂载,网络等服务,最后启动ananconda安装器,由ananconda来接管系统的安装过程选择,如下图4。
在这里插入图片描述
接下来,就是选择语言、时区、安装环境等选择和配置,然后就等待安装完成后重启,系统即安装完成。

相关文章: