"系统启动过程-init-Solaris_SICT"
在 Solaris 操作系统中,系统启动过程的关键步骤涉及到了 `init` 和 `OpenBoot PROM`。`init` 是系统启动后第一个用户空间进程,它根据 `/etc/inittab` 配置文件来管理和服务其他进程。`OpenBoot PROM` 是系统硬件层面的引导程序,负责硬件初始化和系统加载。
`/etc/inittab` 文件是 `init` 进程的核心配置文件,它定义了系统的默认运行级别、进程的启动、监控以及进程异常退出后的重启动策略。文件中的每个条目由四个字段组成:id(标识符),rstate(运行级别),action(动作)和process(需要执行的进程)。例如,`ap::sysinit:/sbin/autopush -f /etc/iu.ap` 表示在系统启动过程中执行 `/sbin/autopush` 命令。
`initdefault` 行定义了系统默认的运行级别,例如 `is:3:initdefault:` 指出默认运行级别为3。`respawn` 动作表示如果进程终止,`init` 将重新启动它,`sysinit` 动作则是在访问控制台前启动进程并等待其完成,而 `wait` 则是在执行下一运行级别之前等待进程结束。
`OpenBoot PROM` 是 Sun 硬件的引导固件,它包含了 POST(加电自检)、驱动加载、用户接口和默认设置。在 OpenBoot 状态下,用户可以使用一系列命令进行操作,如 `banner` 显示系统信息,`show-devs` 查看设备,`boot` 引导系统,`printenv` 显示环境变量,`setenv` 修改环境变量等。`probe-scsi` 命令用于检测 SCSI 设备,而 `reset` 命令则重启系统。
系统启动流程中,OpenBoot PROM 执行 POST 和硬件诊断,然后加载 bootblock 程序,接着 bootblock 加载 ufsboot 引导程序,最终 ufsboot 加载内核。内核初始化后启动 `init` 进程,`init` 会依据 `/etc/inittab` 文件启动运行级别的控制脚本,完成系统的启动服务和用户登录环境的建立。在这一过程中,`set-defaults` 命令可以设置 PROM 的默认配置,而通过 `eeprom` 命令可以查看和修改 EEPROM 中的参数,如默认引导设备和自动启动设置。
Solaris 系统的启动是一个涉及硬件初始化、软件加载、系统服务启动的复杂过程,其中 `init` 和 OpenBoot PROM 起着至关重要的作用。理解这些概念有助于系统管理员更好地管理和维护 Solaris 系统。