Linux 的开机启动流程分析

几个名词
  1. CMOS

CMOS的主要功能为记录主板上面的重要参数, 包括系统时间、CPU 电压与频率、各项设备的 I/O 地址与 IRQ 等,因为这些数据的记录要花费电力,所以主板上面才有电池。 BIOS 为写入到主板上某一块 flash 或EEPROM 的程序,他能够在开机的时候执行,以加载 CMOS 当中的参数, 并尝试调用储存装置中的开机程序,进一步进入操做系统当中。BIOS 程序也能够修改 CMOS中的数据,每种主板调用BIOS设定程序的按键都不一样,通常桌面计算机常见的是使用[del]按键进入 BIOS 设定画面。测试

  1. BIOS类型:Legacy/UEFI

是系统引导的两种方式,开机检测程序,读取在MBR或者GPT中的bootloader程序(grub)操作系统

  • 加载CMOS信息
  • 开机检测(POST):硬件初始化
  • 读取开机管理程序(bootloader)
  1. MBR/GPT > MBR/GPT 是两种分区格式
  • MBR

早期的 Linux 系统为了兼容于 Windows 的磁盘,所以使用的是支持 Windows 的 MBR(Master Boot Record, 主要开机纪录区) 的方式来处理开机管理程序与分区表!而开机管理程序纪录区与分区表则 统统放在磁盘的第一个扇区,这个扇区一般是 512bytes 的大小 (旧的磁盘扇区都是 512bytes 喔!), 因此说,第一个扇区 512bytes 会有这两个数据:.net

  1. 主要启动记录区(Master Boot Record, MBR):能够安装开机管理程序的地方,有 446 bytes
  2. 分区表(partition table):记录整颗硬盘分区的状态,有 64 bytes 因为分区表所在区块仅有 64 bytes 容量,所以最多仅能有四组记录区,每组记录区记录了该区段的启 始与结束的磁柱号码。
  • GPT
  1. 扇区大小为4K
  2. 没有了主分区大小不超过4个的限制
  3. 对扇区直接进行分区操做
启动过程
  1. BIOS
  • 加载CMOS内设定值去的主机的各项硬件配置
  • 开机自我测试(POST):硬件检测并初始化,指定开机装置
  • BootLoader程序启动:在磁盘中的第一个扇区即在MBR,识别操做系统的文件格式并加载内核到主存储器中执行(BootLoader的功能以下)
  • BootLoader的功能(内核加载,硬件检测,驱动加载)
  • 提供选单:用户能够选择不一样的开机项目,这也是多重引导的重要功能!
  • 载入核心文件:直接指向可开机的程序区段来开始操做系统;
  • 转交其余 loader:将开机管理功能转交给其余 loader 负责
  1. systemd 程序
  • /etc/systemd/system/ 包括下面5项,和以前的SystemV兼容
相关文章
相关标签/搜索