第13章系统启动过程
Solaris操作环境下的运行级
一个运行级用一个数字或者一个字母表现用户当前可用的资源或者服务状态的系统的定义。系统总是运行在一个运行级。
运行级有时使用init状态,因为init过程是用于在运行级之间传送的。用户可以使用init命令手动初始化运行级变化。
Solaris操作环境有8个运行级,下面进行了描述
0:关闭Solaris操作环境和显示boot PROM ok提示符用于安全的关闭系统电源。
S or s:运行所有文件系统都被装配和可理解的单用户模式
1:要求系统运行在单用户管理状态,并且所有文件系统都可用
2:要求系统运行多用户操作。多个用户可以访问系统。所有系统守护进程都运行,除了NFS服务器的守护进程
3:要求系统运行多用户操作,并且NFS资源共享可用。这是在/etc/inittab中指定的默认运行级
4:这一级别还没有起用
5:停掉Solaris操作环境,并且关闭系统电源
6:停掉系统到0运行级,然后重新启动多用户操作,或者在/etc/inittab中指定默认的运行级。
决定系统当前的运行级
要决定一个系统当前的运行级,使用命令:
# who –r
. run level 3 Jun 9 08:30 3 0 S
启动过程
在普通情况下,当一个系统被打开,PROM监视器运行一个快速自检程序来检测在系统上的硬件和内存。如果没有错误被找到,系统就开始自动启动过程
全部的启动过程包括下面描述的四个阶段:
。Boot PROM阶段
。启动程序阶段
。内核初始化阶段
。init阶段
书上有图,在13-6
Boot PROM阶段
下面描述了Boot PROM阶段
。PROM运行POST
boot PROM固件运行开机自检程序去检测系统的硬件和内存。
PROM显示系统识别标题,(比如模式类型,内存数量,PROM版本号,PROM序列号,网卡的mac地址和hostID)
。boot决定启动设备
。boot定位在启动设备上的bootblk上
。boot从位于启动设备上的bootblk读入内存
主要的boot程序,bootblk是装载在扇区1-15中一个boot设备
他的主要目的是读入位于在启动设备上的ufs文件系统第二个启动程序。
启动程序阶段
启动程序阶段的描述
。bootblk读入第二启动程序,ufsboot从启动设备进入内存
ufsboot是通过Solaris实用程序installboot安装记录在bootblk中的
。ufsboot定位和读入适当的两个部分的内核
内核是由两个片静态核心叫做genunix和unix组成的。Genunix是无约束平台的内核文件,而unix是指定指定平台的内核文件。
当ufsboot读入他们这两个文件到内存的时候,他们在正在运行的内核中是组合着的。
在32位系统上,两个部分的内核是位于目录/platform/’uname –m’/kernel中的
在64位系统上,两个部分的内核是位于目录/platform/’uname –m’/kernel/sparcv9中的
内核初始化阶段
内核初始化阶段的描述
。内核初始化自己并且开始读入模块
内核使用ufsboot去读文件。当他读入足够的模块去装配root文件系统,他不镜像ufsboot程序。并且继续
。内核读的设置文件叫做/etc/system
。内核启动/sbin/init进程
SunOS内核由小的,静态的core(genunix和unix)和许多动态可承载的内核模块组成。
模块可以由设备驱动,文件系统,流,也有其他类型的用于在系统中的指定任务。
包含内核代表性的内核模块位于目录/kernel和/usr/kernel。依赖于平台的模块则位于/platform/’uname –m’/kernel和/platform/’uname –I’/kernel目录
| 论坛热门帖子: | [lch203] 写得蛮好的linux学习笔记(10-21) [黑马制造] 学习java的30个目标(10-19) [笑傲股林] 做测试半年了,有点迷茫,应该再学些什么提高自己的测试水平和测试能力呢?(10-19) [udp8589] 大家用google的来吱一声? 用百度的~~也来报道下?(10-18) [沂偌掳兆] 本人总结的一些认为C++比较经典的书籍,希望对大家有用(10-18) |
| TAG标签: | 笔记 读书 系统 文件 运行 启动 脚本 进程 用户 内核 |
注册
个人空间
