引导程序
在 POST 过程完成后 , 将引导程序(用于加载大型程序的小型程序)加载到内存中 。然后 , 引导程序将启动逻辑卷 (BLV) 加载到内存中 。加载了 BLV 后 , 内核将接管启动过程 。
启动逻辑卷和 bosboot 命令
BLV 是包含 AIX 可启动映像的位置 。通常 , 可以在服务器的本地磁盘上找到 BLV 。BLV 包含 AIX 内核、rc.boot 文件、启动过程所需的命令 , 以及精简版本的对象数据管理器 (ODM) 。
若要创建可启动映像 , 请使用 bosboot 命令 。使用 bosboot 命令可以从 RAM 磁盘、文件系统或内核创建启动文件(即可启动映像) 。可启动映像以及一些接口是通过服务器的启动只读存储器 (ROS) 和可擦可编程只读存储器 (EPROM) 创建的 。
下列示例演示如何在用于启动系统的本地固定磁盘上的缺省 BLV 上创建可启动映像:
bosboot -a
AIX 内核
存储在 BLV 中的 AIX 内核在内存中创建 / (root)、/usr 和 /var 文件系统 。请记住 , 在操作系统启动过程中 , 这些文件系统以及内核最初是存储在内存中的 。由于它们位于内存中 , 因此无法访问 BLV 以外的任何内容 。
文件系统加载到内存后 , 内核执行 init 进程 , 该进程现在接管启动过程 。
init 进程
AIX 内核为进程 init 分配进程标识符 (PID) 1 。该进程是 AIX 上运行的所有其他进程的父进程或根 进程 。加载 init 进程并运行了该根进程后 , init 调用 rc.boot 。
rc.boot 文件
在 AIX 引导过程中 , rc.boot 文件包括三个重要的执行阶段 。rc.boot 的第一阶段是初始化系统硬件 , 为启动操作系统做准备 。此时 , 使用配置管理器命令 cfgmgr 配置启动系统所需的有限数量的设备 。
在 rc.boot 的第二阶段 , 挂载文件系统 /、/usr 和 /var , 以及分页空间 。挂载这些文件系统后 , init 被替换为磁盘上的 init , PID 为 1 , 并清除内存 。
最后 , 在 rc.boot 的第三阶段 , 从磁盘执行实际的 init 进程 。在执行 init 时 , 读取 /etc/inittab 文件 , 并执行其中的每个项目 。在此期间 , 将 /tmp 文件系统挂载磁盘 。到了启动过程的最后阶段 , 在 rc.boot 的第一阶段未进行配置的其余设备上再次运行 cfgmgr 命令 。
/etc/inittab 文件
执行 init 进程后 , 接下来由 init 打开 /etc/inittab 并读取每个条目 。/etc/inittab 文件的目的是为 init 进程提供在引导和正常运行过程中启动的那些进程 。
/etc/inittab 文件的格式非常特别 , 各个字段通过冒号分隔 。/etc/inittab 的格式如下:
/etc/inittab 文件中定义的字段的说明如下:
ID:用于标识对象的唯一字符串 。
Run Level:在系统进入 init 级别时执行
0、1:保留用于将来的操作系统扩展
2:缺省运行级别
3 至 9:可由用户定义
a 至 c:专用级别(当 init 执行至运行级别 a、b 或 c 时 , 进程不会被终止 。那些处于这些运行级别并且未运行的进程将开始执行 , 但是处于之前运行级别的进程保持不变 。)
Q、q:通知 init 重新扫描 /etc/inittab 文件的快速方法
Action: action 字段通知 init 进程如何处理 inittab 文件的各个条目中的进程 。以下是 AIX 所使用的 action 字段的值: respawn:如果进程不存在 , 则启动进程 。不等待其终止 , 并继续扫描 inittab 文件 。如果进程终止 , 则重新启动进程 。
推荐阅读
- 在 UNIX 中安装和配置开发 Web 服务器
- UNIX 文件系统基本操作
- UNIX 新手指南,第 3 部分:正则表达式
- UNIX 新手指南,第 2 部分: vi 文本编辑器
- UNIX 新手指南: 一些很好的 Shell 诀窍
- 使用 UNIX System V IPC 机制共享应用程序数据
- 利用 UNIX 脚本来管理 DS4000 磁盘阵列系统
- 对话 UNIX,第 13 部分: 另外十种命令行组合
- UNIX 生产力技巧
- UNIX 新手指南,第 1 部分: 文件维护工具