linux开机流程详解

开机流程概述

  1. 加载 BIOS 的硬件信息并进行自我测试,并依据讴定取得第一个可开机的装置;
  2. 读取并执行第一个开机装置内 MBR 的 boot Loader (亦即是 grub, spfdisk 等程序);
  3. 依据 boot loader 的设定加载 Kernel ,Kernel 会开始侦测硬件与加载驱动程序;
  4. 在硬件驱动成功后,Kernel 会主动呼叫 init 程序,而 init 会取得 run-level 信息;
  5. init 执行 /etc/rc.d/rc.sysinit 档案来准备软件执行的作业环境 (如网络、时区等);
  6. init 执行 run-level 的各个服务之启动 (script 方式);
  7. init 执行 /etc/rc.d/rc.local 档案;
  8. init 执行终端机仿真程序 mingetty 来启动 login 程序,最后就等待用户登入啦;

开机管理程序(Boot Loader)

用来管理内核档案的加载。这个装置装在开机装置的第一扇区,也即是MBR(Master Boot Record, 主要启动记录区)
问题
(1)必须要使用自己的 loader 才能够加载属亍自己的操作系统核心
(2)系统的 MBR 叧有一个,那你怎么会有办法同时在一部主机上面安装 Windows 不 Linux 呢

其实每个文件系统 (filesystem, 或者是 partition) 都会保留一块启动扇区 (boot sector) 提供操作系统安装 boot loader , 而通常操作系统默认都会安装一份loader 到他根目录所在的文件系统的 boot sector 上。如果我们在一部主机上面安装 Windows 不 Linux 后,该 boot sector, boot loader 与 MBR 的相关性会有点像下图:
这里写图片描述
在 Linux 系统安装时,你可以选择将 boot loader 安装到 MBR 去,也可以选择不安装。 如果选择安装到 MBR 的话,那理讳上你在 MBR 与 boot sector 都会保有一份 boot loader 程序的。 至于 Windows 安装时,他预设会主动的将 MBR 不 boot sector 都装上一份 boot loader!所以, 你会发现安装多重操作系统时,你的 MBR 常常会被不同的操作系统的 boot loader 所覆盖。
boot loader 主要的功能如下
1. 提供选单:用户可以选择丌同的开机项目,这也是多重引导的重要功能!
2. 载入核心档案:直接指向可开机的程序区段来开始操作系统;
3. 转交其他 loader:将开机管理功能转交给其他 loader 负责。
而由于具有控制权转交的功能,因此我们可以加载其他 boot sector 内的 loader !不过 Windows 的 loader 预设不具有控制权转交的功能,因此你不能使用 Windows 的 loader 来加载 Linux 的 loader !这也是为什么 MBR 多重引导时,会特别强调先装 Windows 再装 Linux 的缘故。
这里写图片描述

initrd虚拟文件系统档案

虚拟文件系统 (Initial RAM Disk) 一般使用的档名为 /boot/initrd ,这个档案的特色是,他也能够透过 boot loader 来加载到内存中, 然后这个档案会被解压缩并且在内存当中仿真成一个根目录, 且此仿真在内存当中的文件系统能够提供一支可执行的程序,透过该程序来加载开机过程中所最需要的核心模块, 通常这些模块就是 USB, RAID, LVM, SCSI 等文件系统与磁盘接口的驱动程序!等载入完成后, 会帮核心重新呼叫 /sbin/init 来开始后续的正常开机流程。
这里写图片描述
如上图所示,boot loader 可以加载 kernel 不 initrd ,然后在内存中让 initrd 解压缩成为根目录, kernel 就能够借此加载适当的驱动程序,最终释放虚拟文件系统,并挂载实际的根目录文件系统, 就能够开始后续的正常开机流程。

init及其配置文件/etc/inittab(除ubuntu)与runlevel

主机硬件准备就绪后,核心会主动呼叫第一支程序init

runlevel的7个等级:

  • 0 - halt (系统直接关机)
  • 1 - single user mode (单人维护模式,用在系统出问题时的维护)
  • 2 - Multi-user, without NFS (类似底下的 runlevel 3,但无 NFS 服务)
  • 3 - Full multi-user mode (完整含有网络功能的纯文本模式)
  • 4 - unused (系统保留功能)
  • 5 - X11 (不 runlevel 3 类似,但加载使用 X Window)
  • 6 - reboot (重新启动)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值