Unix系统具有很长的、不断发展变化的历史,从20世纪70年代初AT&T创造了Unix开始,System V版本的诞生、AT&T与Sun的合作、OSF/1(HP、Digital Equipment Corporation、IBM等厂家组成的开放软件基金会)组织的加入、源于BSD的Mach的成熟,再加上Linux的诞生,Sun Solaris一直都在Unix领域处于市场的领先地位。特有的Sparc版和X86版的支持,到现在Solaris 10的发布和开源,Sun Solaris一直在不断地改进和发展!
下面我们共同探讨一下Solaris 2.x的启动和关机。Solaris 2.x采用了基于Unix系统System V Release 4.0标准的灵活的启动过程,这就使得可以很容易地产生和定制在各个主机和系统上都通用的启动和关机过程,这与Solaris 1.x所用的简单的BSD风格的启动过程形成了鲜明的对比,后者缺少针对不同的系统状态启动脚本的不同组织形式。 谈到启动,首先要介绍一下Sun Sparc平台下的EEPROM OpenBoot固件监视系统,它类似于PC BIOS的芯片程序,其职责在于识别分区,文件系统和加载内核。在Solaris系统中,默认的内核文件存放在/platform/arch/kernel/unix位置,根据版本的不同可能略有差别。arch指令是指明系统的硬件结构体系,例如sun4u (sun ultrasparc)、i86pc(intel IA32)等。由于PC厂商有不同的BIOS系统,Sun Solaris X86版很难做到在其系统中有OpenBoot固件监控系统,只是提供了一个模拟EEPROM引导程序来负责内核的定位和加载。下面谈到的 OpenBoot固件监视系统功能都是针对Sparc硬件平台而言。 EEPROM OpenBoot固件监视系统(简称OBP),主要功能如下。 调整启动设备和启动参数 通过对命令对boot-device参数的设置,确定启动的设备及启动设备顺序的调整。Sun SDS对根盘进行镜像后的设置和Vertias VxVm等卷管理软件对根盘进行封装之后都需要在OBP进行设置。参数设置如下所示:
检测硬件故障 OBP中提供了简单的硬件检测命令和模式。例如,检测SCSI总线的终结状态,或者执行称为“上电自检”的POST(Power-On Self Test,POST)检测。OBP中提供了一些诊断工具以便测试系统中所安装的硬件,ok help diag命令可以查看可用的test命令,部分命令如下所示:
编写启动程序 和许多Linux版本自带的LILO Linux 、GRUB linux等加载器不一样,OpenBoot不仅仅是一个简单的操作系统加载器,它还允许在启动进程开始前写入、加载和运行使用基于堆栈的Forth编程语言编写的程序。当为一个大企业定制服务器时,通常要求在启动时显示公司的标志而不是缺省的Sun标志,这时,OpenBoot的这一特性就非常有用了。可以生成一个用合适的像素构成的Forth数组,然后运行oem-logo命令。另外,在单用户和多用户init状态中,也可以在启动后对变量的值进行设定,这可以通过以超级用户的身份运行eeprom命令实现。 OBP用户界面(熟称OK态) 可通过如下方式进入OBP界面:
OBP中提供了几个命令来显示系统的信息,通过这些命令就可以大概了解系统的配置信息,如下所示:
设备树与设备别名 设备树的命名规则与Solaris设备的物理命名方式相同。显示设备树所用的命令如下所示:
在日常应用中,设备名的格式(/sbus@1f,0/esp@0,40000/sd@3,0:a)导致其在使用上很不方便,而使用设备别名却是解决方法之一,如下所示的命令可以对设备别名进行操作:
OBP启动顺序
获取在线帮助 在ok提示符下可以使用下面的命令获取帮助:
从OpenBoot启动后,Solaris有几个不同的操作模式,称为“运行等级”或“init状态”。对于大多数系统来说,缺省的运行等级是init 3,它允许多个用户登录,并可运行各种程序,包括NFS。然而,要从OpenBoot转入这个状态,需要经过一系列预先规定的init状态转移,从单用户(1,S)到多用户 (2 , 3)运行状态。 Solaris软件环境提供了一系列详细的运行控制脚本,来控制运行等级的转换,每一个运行等级都在/sbin目录下有一个相关的rc脚本,它们也分别链接到/etc目录: rc0, rc1, rc2, rc3, rc5, rc6, rcS。
下面是/etc中所有的启动运行脚本简要说明: rc0.d: eeprom OpenBoot状态,可以进入硬件维护模式或关闭机器。 rc1.d: 单用户模式,可以对系统进行软件维护。 S01MOUNTFSYS +加载文件系统。 S10lu =当运行live update后清理系统。 rc2.d: 多用户模式,启动网络工作站服务(最后会启动dtlogin允许图形界面工作站)。 S01MOUNTFSYS S05RMTMPFILES + 清空/tmp文件系统。 /tmp是系统缓存文件目录,和swap分区共享空间,如果分区满的话会对系统性能造成很大影响。 S10lu = S20sysetup + 设置系统初始参数。 设置hostname等 S30sysid.net + 配置基本网络参数 S40llc2 + 启动Class II logical link control driver S42ncakmod = 启动Solaris Network Cache and Accelerator (NCA) S47pppd - 启动拨号访问服务器进程 S69inet = 启动inetd进程 s70uucp - 启动uucp S71rpc + 启动rpcbind服务 S71ldap.client - 启动LDAP客户端 S72directory - 启动目录服务 S72inetsvc + 启动inet server s72slpd - 启动slpd S72autoinstall = 启动自动安装守护进程 S73cachefs.daemon - 启动cachefsd S73nfs.client = 启动nfs客户端 S74syslog + 启动syslog s74autofs - 启动auto mount fsd s74xntpd - 启动网络时间同步服务 S75cron + 启动crontab服务 S75savecore + S76nscd + 启动nscd,名字服务缓存 S80kdmconfig = 启动kdmconfig S80spc - 启动lpd打印守护进程 s80lp - 启动lpd打印调度守护进程 S85lmgrd + 启动flexlm license服务器 Solaris License管理服务器 S85power + 启动电源守护进程 S88utmpd + 启动utmpd s88sendmail - 启动sendmail S89PRESERVE =“保留,无效” S90wbem = 启动wbem S93cacheos.finish - S94ncalogd = 启动Solaris Network Cache and Accelerator LOGd S95IIim + 启动输入法守护进程 S95svm.sync + 启动 devfsadm ,devfs同步进程。 S99audit + 启动BSM审计进程 Solaris Base Securiey Modula,启动Solaris C2安全审计(默认未启动)。 S99dtlogin = 启动CDE登录进程 rc3.d: 多用户模式,启动网络服务器模式 S13kdc.master - 启动Kerberos服务器 S16boot.server - 启动bootp服务器 S34dhcp = 启动dhcp S50apache - 启动apache服务器 S76snmpdx - 启动snmp服务器 S77dmi - 启动snmp - dmi服务 S89sshd + 启动sshd服务器 S80mipagent - 启动Mobile IP 代理 S90samba - 启动samba服务器
|
|