9.1. 概述

引导 Linux 系统需要完成若干任务。引导过程必须挂载虚拟和真实文件系统、初始化设备、检查文件系统完整性、挂载并启用所有交换分区或文件、设定系统时钟、启用网络、启动系统需要的守护进程,并完成用户自定义的其他工作。引导过程必须被组织好,以保证这些任务以正确顺序进行,并以尽量快的速度完成。

9.1.1. System V

System V 是自 1983 年以来就在 Unix 和 Linux 等类 Unix 系统中被广泛应用的经典引导过程。它包含一个小程序 init,该程序设定 login (通过 getty) 等基本进程,并运行一个脚本。该脚本一般被命名为 rc,控制一组附加脚本的运行,这些附加脚本完成初始化系统需要的各项工作。

init 程序受到 /etc/inittab 文件的控制,被组织为用户可以选择的系统运行级别。在 LFS 中,运行级别定义为:

0 — 停止运行
1 — 单用户模式
2 — 用户自定义模式
3 — 完整的多用户模式
4 — 用户自定义模式
5 — 拥有显示管理器的完整多用户模式
6 — 重启系统

通常的默认运行级别是 3 或 5。

优点

  • 完备的,已经被详细理解的系统。

  • 容易定制。

缺点

  • 引导速度较慢。一个中等速度的基本 LFS 系统从第一个内核消息开始,到出现登录提示符为止,需要 8-12 秒的引导时间,之后还需要约 2 秒启动网络连接。

  • 串行执行引导任务。这与前一项缺点相关。引导过程中的延迟 (如文件系统检查) 会拖延整个引导过程。

  • 不支持控制组 (cgroups) 和每用户公平共享调度等高级特性。

  • 添加脚本时,需要手动决定它在引导过程中的次序。