Solaris 启动过程详解 <1>;引导 在Sparc 平台下,Solaris 系统中有一个类似PC BIOS 的芯片程序(EEPROM OpenBoot)负责识别分区、文 件系统和加载内核,在Solaris 2.6 之后的版本中,默认的内核文件存放在/platform/`arch`/kernel/unix 位置,`arch`指令是指明系统的硬件体系,目前一般是 i86pc(Intel IA32)或 sun4u(Sun UntraSparc)。 在Intel 体系中,因为没有eeprom firmware,所以系统提供了一个模拟 eeprom 的引导程序,来负责 内核的定位和加载,这个程序是工作在实模式下的,系统必须要给他提供一个fat12/16 格式的boot分区, 在系统引导完成之后可以在/boot/solaris 下找到他的配置文件。(Solaris IA 使用默认内核/kernel/unix) 整个系统启动过程如下: =========================================================================== init 0 openboot 模式 ->; (引导内核,加载硬件驱动) 可以选择从 cdrom 引导进入维护模式 | V init 1 单用户模式 ->; (加载/分区) 登陆进入维护模式,或按 Ctrl+D 进入多用户模式 | V init 2 网络工作站模式 ->; (连接网络,运行网络工作站服务) 运行/etc/rc2 脚本连接网络 | | | ->;->; 启动S69inet 服务,运行部分inetd 网络服务 V init 3 网络服务器模式 ->; (运行各种网络服务) 运行/etc/rc3 脚本启动网络服务器 <2>;启动 Solaris 的启动进程是按照 SYS V 格式控制的,启动过程分为若干个运行级别(S,1-6),当系统内核 运行完毕,加载好所有的驱动之后,就会把控制权移交给/sbin/init 进程(PID:1),也就是所有进 程的父进程,然后由 init 读取/etc/inittab,依次执行/etc/rc1(2,3)启动脚本,最终到达 inittab 中指定的默认运行级别。rc 脚本会读取/etc/rc*.d 中的启动脚本,启动脚本以大写字母 S 开头,在rc 运行期间就会被执行,S 后面的两位数字域决定启动顺序,因为启动进程之间有一定的依赖关系 (以 K 开头意味着进入这个级别时,服务将会被杀掉,其余字母开头的被忽略)。 虽然同属于 SYSV 系统引导方式,但是 Solaris 的引导过程和我们常见的Linux 却有很大差别,并且和 传统Unix 的init 级别也略有不同。在Linux 中,系统运行级别是并行式的,也就是系统加载完内核和 mount /文件系统之后,就会直接跳转到相应的默认运行级别,而不依次执行各个级别的启动脚本。但 在Solaris 中,采...