SA 239 翻译 第九章 执行启动和关闭程序

这几天有空,看了前面几位老兄的翻译,觉得不错,可惜未翻完,等的我这个急啊,没办法,只好自己边翻边看了,刚翻完了一篇,拿出来给大伙看看,欢迎指正错误啊 。

第九章 执行启动和关闭程序

目标
完成这一章,你应该能够做以下事情:
确定运行级别的基本原理
确定启动进程的状态
控制启动进程
执行系统关闭程序

确定运行级别的基本原理
一个运行级别是一个系统状态,通过一个数字或字母来描述,用来定义用户当前可用的服务和资源 。系统总是运行于一个单一的运行级别
Solaris OE运行级别
0 关闭Solaris操作环境,显示boot PROM ok提示符,用于安全关闭系统电源
s或S Soaris OE单用户模式,所有临界文件系统被挂接,并且是可以访问的
1 系统运行于单用户管理状态,可以访问所有可用的文件系统
2 系统支持多用户操作,多个用户可以访问系统 。所有系统守护进程都被运行,除了NFS服务
3 系统支持多用户操作,并且NFS共享可用,这是系统/etc/inittab文件中指定的默认级别
4 这一级别当前没有启用
5 关闭Solaris OE并且关闭系统电源
6 关闭Solaris OE,系统重启到默认的运行级别
确定系统当前运行级别
# who –r
改变运行级别
你可以用init命令手工进行运行级别间的转换 。你也能够使用shutdown、halt、reboot和poweroff等命令来改变运行级别 。
辨别boot程序的阶段
一般的,当系统打开电源时,PROM监视器运行一个POST程序,检查系统硬件和内存 。如果没有发现错误,并且auto-boot?参数被设置为true,系统开始自动引导程序 。
整个导入程序被描述为四个明显的阶段:
boot PROM阶段
boot程序阶段
kernel初始化阶段
init阶段
下图显示了详细启动阶段:


boot PROM阶段
在启动过程的第一部分,boot PROM阶段执行下面这些步骤:
PROM运行POST
boot PROM固件运行POST,确认系统的硬件和内存,如果自检成功完成,开始它的顺序启动 。
PROM显示系统标识,模式类型、处理器类型和速度、键盘状态、PROM版本号、RAM数量、NVRAM系列号,以太网址和host ID 。
boot PROM确定启动设备,通过读取PROM参数boot-device
boot PROM读位于默认启动磁盘设备上的位于0扇区的磁盘卷标
boot PROM从PROM中获得默认启动设备的启动程序
boot PROM读取叫做bootblk的系统主引导程序(位于1-15扇区),它包括一个Unix文件系统读取器 。(在系统安装期间,bootblk程序被installboot程序放置在磁盘上)
Boot命令把bootblk程序从本地设备导入内存 。
boot程序阶段
接下来描述boot程序阶段:
bootblk从boot设备导入第二boot程序ufsboot到内存
到ufsboot的路径被记录在bootblk程序中,bootblk程序由Solaris OE指令installboot安装 。
Ufsboot程序本地化,并且导入适当的两部分kernel
Kernel的内核是两片叫做genunix和unix的静态代码,genunix是与平台无关的通用kernel文件,unix是指定平台的kernel文件 。
当usfboot把这两个文件导入到内存后,他们被组合成运行的kernel的形式 。
在运行于32位模式的系统上,这两部分kernel位于目录/platform/`uname –m`/kernel
在运行于64位模式的系统上,这两部分kernel位于目录/platform/`uname –m`/kernel/sparcv9

kernel初始阶段
下面描述kernen初始化阶段:
kernel读它的配置文件,调用/etc/system
kernel初始化自身,并且开始导入模块
kernel使用ufsboot命令导入文件 。当它为了挂接root文件系统已经导入足够多的模块的时候,它并不绘制ufsboot程序并且继续 。(?)
kernel启动/etc/init进程
注意:/etc/init和/sbin/init进程被链接到一起 。

推荐阅读