1.简介
linux开机启动的过程可以大致分为两个部分
1.引导过程2.启动过程
引导过程开始于上电开始结束于内核初始化完成以及systemd进程启动完成
启动过程则是接管剩余的工作,直至操作系统启动完成进入可操作状态。
2.引导过程
引导过程可以分为
BIOS上电自检
引导初始化程序
内核初始化
启动systemd
1.BIOS上电自检(POST)
就是Basic I/O system的Power On Self Test。
这部分其实系统什么都没有做,都是由硬件来完成的。当电脑接通电源开始执行,如果post失败,则电脑不能时候,引导失败。
2.引导初始化程序
磁盘上第一个扇区为MBR(master boot record)即主引导记录。大小为512个字节,里面存储了预启动信息,分区表信息。
BIOS上电自检完成之后会产生一个中断,指向MBR,然后将MBR中的boot loader程序复制到0x7c00的物理内存中去,然后执行
bootloader程序。该程序会初始化硬件设别、监理内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,为调用操作
系统内核做好准备。
3.内核初始化
内核镜像core.img位于MBR和63扇区之间的62个512字节之间。
bootloader程序会定位并加载内核镜像,将解压缩完成的内核加载到内存中。
4.启动systemd
当解压缩完的内核加载到内存中后,systemd程序运行,控制权在systemd程序中。
3.启动过程
systemd进程是所有进程的父进程。它负责将主机带到一个用户可执行的状态。
关于systemd的启动过程在此不赘述
详细的请看https://linux.cn/article-5457-1.html#3_905