在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中,采取了一种串行化的引导方式,就是依次执行init 1/2/3,直到默认运行级别,在每

个级别中的所有启动脚本都会被执行。所以在这里我以一种和传统Unix划分方式不同的说明方法,

把Solaris的启动级别称为: 1,单用户模式 2,网络工作站模式 3,网络服务器模式

下面是/etc中所有的启动运行脚本简要说明

===========================================================================

init inittab rc0 rc1 rc2 rc3 rc5 rc6 rcS init.d

init 系统启动超级进程

inittab 进程启动配置文件

rc0 - rc6 各启动级别的启动脚本

rcS 单用户模式启动脚本

init.d 启动脚本存放目录

rc0.d: eeprom OpenBoot状态,可以进入硬件维护模式,或关闭机器。

rc1.d: 单用户模式,可以对系统进行软件维护。

S01MOUNTFSYS +加载文件系统

S10lu =当运行live update后清理系统

rc2.d: 多用户模式,启动网络工作站服务。 (最后会启动dtlogin允许图形界面工作站)


S01MOUNTFSYS

S05RMTMPFILES + 清空/tmp文件系统

/tmp是系统缓存文件目录,和swap分区共享空间,如果分区满的话会

对系统性能造成很大影响

S10lu =

S20sysetup + 设置系统初始参数

设置hostname等

S21perf = 性能记账服务(无效)

开启accton记账服务,默认无效

S30sysid.net + 配置基本网络参数

设置系统ip地址等

S40llc2 + 启动Class II logical link control driver


逻辑链路控制程序驱动

S42ncakmod = 启动Solaris Network Cache and Accelerator (NCA)


NCA网络缓存加速驱动,可以提高HTTP Server吞吐率

S47pppd - 启动拨号访问服务器进程

串行线拨号访问服务器

S69inet = 启动inetd进程

Internet服务超级进程,配置文件/etc/inetd.conf,启动一系列

服务,如telnet/ftp等

s70uucp - 启动uucp

uucp服务,无用

S71rpc + 启动rpcbind服务

rpcbind (RPC Portmap服务),如果需要CDE的话,这个进程是必需的

S71sysid.sys + 配置一些系统参数

S71ldap.client - 启动LDAP客户端

S72directory - 启动目录服务

S72inetsvc + 启动inet server,包含named/nis

启动名字解析服务,包含named和nis两部分

s72slpd - 启动slpd

打印服务系统的一部分

S72autoinstall = 启动自动安装守护进程

当放入sun兼容的媒体介质时,会自动启动安装脚本

S73cachefs.daemon - 启动cachefsd

NFS缓存服务,可以提高NFS吞吐率

S73nfs.client = 启动nfs客户端

NFS客户端程序

S74syslog + 启动syslog

系统日志守护进程,必需

s74autofs - 启动auto mount fsd

当使用NFS时,这个进程会自动加载或卸载无用的用户网络文件系统

配置文件/etc/auto_home和auto_master

但是当没有使用nfs时,这个进程会对系统管理造成一些负面影响

s74xntpd - 启动网络时间同步服务

S75cron + 启动crontab服务

系统任务自动调度守护进程

S75savecore +

S76nscd + 启动nscd,名字服务缓存

DNS名字缓存服务

S80kdmconfig = 启动kdmconfig

如果系统启动时X-Window配置文件丢失,这个进程会启动X-Window配置

S80spc - 启动lpd打印守护进程

打印服务系统的一部分

s80lp - 启动lpd打印调度守护进程

打印服务系统的一部分

S85lmgrd + 启动flexlm license服务器

Solaris License管理服务器

S85power + 启动电源守护进程

S88utmpd + 启动utmpd

s88sendmail - 启动sendmail

S89PRESERVE =

保留,无效

S90wbem = 启动wbem,基于web的管理界面

WBEM,Solaris系统管理界面服务器,可以使用/usr/sadm/bin/smc

启动客户端程序连接管理

S93cacheos.finish -

S94ncalogd = 启动Solaris Network Cache and Accelerator LOGd


NCA进程日志

S95IIim + 启动输入法守护进程

Solaris国际化支持的一部分,启动东亚语言输入法

S95svm.sync + 启动 devfsadm ,devfs同步进程


监控系统硬件,使/dev与/devices设备文件同步

S99audit + 启动BSM审计进程

Solaris Base Securiey Modula,启动Solaris C2安全审计

默认未启动

S99dtlogin = 启动CDE登录进程

Solaris CDE图形界面启动进程

rc3.d: 多用户模式,启动网络服务器模式

S15nfs.server - 启动nfs服务器

NFS网络文件服务器

S13kdc.master - 启动Kerberos服务器

S14kdc - 启动Kerberos服务器

Kerberos认证服务器

S16boot.server - 启动bootp服务器

boot网络启动服务

S34dhcp = 启动dhcp

DHCP服务器

S50apache - 启动apache服务器

S76snmpdx - 启动snmp服务器

启动SNMP服务,允许远程网络管理

S77dmi - 启动snmp - dmi服务

SNMP子服务

S89sshd + 启动sshd服务器

SSH服务器

S80mipagent - 启动Mobile IP 代理

S90samba - 启动samba服务器

Samba CIFS网络文件服务器

*在上面的启动脚本说明中,第二个域说明服务的必要性,个人的经验总结。

+代表必须服务,系统正常运行必须

=代表可选服务,由用户环境决定

-代表无效,不必要,或不安全的服务

<3>进程

下面是系统启动后的默认进程情况,因为Solaris是一个系统环境相对较稳定的系统,所以每次启动

之后,系统的基本进程和服务情况应该都差不多的,下面是常见的进程和服务说明。

===========================================================================

# ps -el

F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD

19 T 0 0 0 0 0 SY fec287cc 0 ? 0:01 + sched

*系统进程调度

8 S 0 1 0 0 40 20 de7a9808 319 de95ce16 ? 0:00 + init

*init进程

19 S 0 2 0 0 0 SY de7a9108 0 fec4d4b8 ? 0:00 + pageout

*内存换页进程

19 S 0 3 0 2 0 SY de7a8a08 0 fecea0bc ? 0:06 + fsflush

*文件系统同步进程

8 S 0 372 1 0 40 20 de7a8308 448 de955d68 ? 0:00 + sac

*sac监控进程,和ttymon一起提供终端登陆功能

8 S 0 381 355 0 40 20 de7a7c08 1581 de9c80a8 ? 0:01 = dtlogin

*CDE登陆进程

8 S 0 187 1 0 40 20 de7a7508 649 de955ee8 ? 0:00 + cron

*crontab任务调度守护进程

8 S 0 63 1 0 40 20 de7a6e08 680 de95c456 ? 0:00 + sysevent

*??

8 S 0 77 1 0 40 20 de7a6708 730 deb1ccb6 ? 0:02 = picld

*??

8 S 0 129 1 0 40 20 de7a6008 542 de5f083a ? 0:00 + rpcbind

*rpc监控总进程,= portmat

8 S 0 178 1 0 40 20 de7a1810 930 deb1c496 ? 0:00 + syslogd

*syslog系统日志守护进程

8 S 0 152 1 0 40 20 de7a1110 489 de5f077a ? 0:00 = inetd

*internet服务超级守护进程

8 S 0 195 1 0 40 20 de7a0a10 673 debedcd6 ? 0:00 = nscd

*名字服务缓存进程

8 S 1 161 1 0 40 20 de7a0310 613 de5f097a ? 0:00 - statd

*rpc.statd,NFS文件服务状态同步子进程

8 S 0 231 1 0 40 20 de79fc10 338 de79fc7c ? 0:00 = htt

*httd,输入法进程

8 S 0 163 1 0 40 20 de79f510 540 de5f067a ? 0:00 - lockd

*rpc.lockd,NFS文件服务锁状态子进程

8 S 0 208 1 0 40 20 de79ee10 339 debd34d6 ? 0:00 + powerd

*电源管理服务,类似PC的APM

8 S 0 225 224 0 40 20 de79e710 434 de5f05fa ? 0:00 - smcboot

*??MobileIP服务?

8 S 0 215 1 0 40 20 de79e010 275 de5f04ba ? 0:00 + utmpd

*utmp登陆用户监控进程

8 S 0 364 1 0 40 20 de79ca18 945 dee6aea6 ? 0:00 - snmpXdmi

*snmp服务子进程

8 S 0 234 231 0 40 20 de79c318 805 decce876 ? 0:00 = htt_serv

*输入法服务器

8 S 0 362 1 0 40 20 de79bc18 815 dedb0f82 ? 0:00 - dmispd

*??

8 S 0 334 1 0 40 20 de79b518 538 fed1e2de ? 0:00 + auditd

*BSM审计守护进程

8 S 0 400 398 0 40 20 ded93a38 73 ded93aa4 pts/2 0:01 sh

*sh...

8 S 0 397 381 1 40 20 ded93338 2502 dedb0b42 ? 0:02 dtgreet

*CDE服务子进程

8 R 0 398 379 1 50 20 ded92c38 1409 ? 0:02 + sshd

*ssh服务器

8 S 0 382 355 0 40 20 ded92538 583 dedb0e42 ?? 0:00 + fbconsol

*framebuffer显示输出驱动

8 S 0 378 372 0 40 20 ded91738 447 ded62216 ? 0:00 + ttymon

*tty监控服务,和sac一起提供终端登陆功能,类似于其他Unix中的getty

8 S 0 376 352 0 40 20 ded91038 649 deeecbce ? 0:01 - mibiisa

*snmp服务子进程

8 S 0 377 355 1 40 20 ded90840 4467 dedb0d42 ? 0:12 = Xsun

*Solaris X服务器

8 S 0 380 1 0 40 20 ded90140 786 ded62bd6 ? 0:01 + devfsadm

*/dev (devfs)同步进程

8 S 0 355 1 0 40 20 ded8fa40 1245 dedb0cc2 ? 0:00 = dtlogin

*CDE登录守护进程

<4>inetd

inetd进程启动了一系列的系统服务,而在Solaris中因为有很多RPC服务也在inetd中启动,因此

inetd显得特别复杂,而其中的服务大多数都是不必要的 (全部都可以关闭)

===========================================================================

#systat stream tcp nowait root /usr/bin/ps ps -ef

#系统进程监控服务,允许远程察看进程

#netstat stream tcp nowait root /usr/bin/netstat netstat -f inet


#网络状态监控服务,允许远程察看网络状态

#time stream tcp6 nowait root internal


#time dgram udp6 wait root internal

#网络时间服务,允许远程察看系统时间

#echo stream tcp6 nowait root internal


#echo dgram udp6 wait root internal

#网络测试服务,回显字符串

#discard stream tcp6 nowait root internal


#discard dgram udp6 wait root internal

#网络测试服务,丢弃输入

#daytime stream tcp6 nowait root internal


#daytime dgram udp6 wait root internal

#网络测试服务,显示时间

#chargen stream tcp6 nowait root internal


#chargen dgram udp6 wait root internal

#网络测试服务,回应随机字符串

#RPC类服务

#

#100232/10 tli rpc/udp wait root /usr/sbin/sadmind sadmind

#远程系统管理服务

#100083/1 tli rpc/tcp wait root /usr/dt/bin/rpc.ttdbserverd rpc.ttdbserverd


#CDE tooltalk服务

#100221/1 tli rpc/tcp wait root /usr/openwin/bin/kcms_server kcms_server


#Sun KCMS Profile服务

#fs stream tcp wait nobody /usr/openwin/lib/fs.auto fs


#X-Window字体服务器

#100235/1 tli rpc/ticotsord wait root /usr/lib/fs/cachefs/cachefsd cachefsd


#NFS缓存服务

#dtspc stream tcp nowait root /usr/dt/bin/dtspcd /usr/dt/bin/dtspcd


#CDE dtspc服务

#100068/2-5 dgram rpc/udp wait root /usr/dt/bin/rpc.cmsd rpc.cmsd


#CDE cmsd服务

#100229/1 tli rpc/tcp wait root /usr/sbin/rpc.metad rpc.metad


#100230/1 tli rpc/tcp wait root /usr/sbin/rpc.metamhd rpc.metamhd

#100242/1 tli rpc/tcp wait root /usr/sbin/rpc.metamedd rpc.metamedd

#SLVM Mediator系列服务,无用

#printer stream tcp6 nowait root /usr/lib/print/in.lpd in.lpd


#打印机守护进程

#shell stream tcp nowait root /usr/sbin/in.rshd in.rshd


#shell stream tcp6 nowait root /usr/sbin/in.rshd in.rshd

#R远程登录系列服务,rsh

#login stream tcp6 nowait root /usr/sbin/in.rlogind in.rlogind

#R远程登录系列服务,rlogin

#exec stream tcp nowait root /usr/sbin/in.rexecd in.rexecd

#exec stream tcp6 nowait root /usr/sbin/in.rexecd in.rexecd

#R远程登录系列服务,rexec

#comsat dgram udp wait root /usr/sbin/in.comsat in.comsat


#邮件通知服务

#talk dgram udp wait root /usr/sbin/in.talkd in.talkd

#本地通讯服务进程,talk

#finger stream tcp6 nowait nobody /usr/sbin/in.fingerd in.fingerd

#finger守护进程,允许远程查询登陆用户信息

#rstatd/2-4 tli rpc/datagram_v wait root /usr/lib/netsvc/rstat/rpc.rstatd rpc.rstatd


#rpc远程状态查询

#rusersd/2-3 tli rpc/datagram_v,circuit_v wait root /usr/lib/netsvc/rusers/rpc.rusersd rpc.rusersd


#rpc远程用户查询,类似rusers和finger

#walld/1 tli rpc/datagram_v wait root /usr/lib/netsvc/rwall/rpc.rwalld rpc.rwalld


#rpc广播发送,类似wall

#sprayd/1 tli rpc/datagram_v wait root /usr/lib/netsvc/spray/rpc.sprayd rpc.sprayd


#rpc网络吞吐量测试程序

#100234/1 tli rpc/ticotsord wait root /usr/lib/gss/gssd gssd


#GSS声音服务守护进程

#tftp dgram udp6 wait root /usr/sbin/in.tftpd in.tftpd -s /tftpboot


#tftp服务器

#name dgram udp wait root /usr/sbin/in.tnamed in.tnamed


#named,DNS服务器

#telnet stream tcp6 nowait root /usr/sbin/in.telnetd in.telnetd


#telnet服务器

#100155/1 tli rpc/ticotsord wait root /usr/lib/smedia/rpc.smserverd rpc.smserverd


#smedia服务器

#ftp stream tcp6 nowait root /usr/sbin/in.ftpd in.ftpd -a


#ftp服务器

#rexd/1 tli rpc/tcp wait root /usr/sbin/rpc.rexd rpc.rexd


#rpc.rexd ,rpc远程命令执行服务,类似rexec

#100134/1 tli rpc/ticotsord wait root /usr/lib/krb5/ktkt_warnd ktkt_warnd


#Kerberos消息服务

#rquotad/1 tli rpc/datagram_v wait root /usr/lib/nfs/rquotad rquotad


#nfs 磁盘限额服务

#100150/1 tli rpc/ticotsord wait root /usr/sbin/ocfserv ocfserv


#OCF智能卡守护进程

#uucp stream tcp nowait root /usr/sbin/in.uucpd in.uucpd


#uucp服务器

#krb5_prop stream tcp nowait root /usr/lib/krb5/kpropd kpropd


#Kerberos数据库同步进程

solaris启动过程详解的更多相关文章

  1. Linux启动过程详解(inittab、rc.sysinit、rcX.d、rc.local)

    启动第一步--加载BIOS 当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它.这是因为BIOS中包含了CPU的相关信息.设备启动顺序信息.硬 ...

  2. Linux启动过程详解

    Linux启动过程详解 附上两张图,加深记忆 图1: 图2: 第一张图比较简洁明了,下面对第一张图的步骤进行详解: 加载BIOS 当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的 ...

  3. Android 核心分析 之八Android 启动过程详解

    Android 启动过程详解 Android从Linux系统启动有4个步骤: (1) init进程启动 (2) Native服务启动 (3) System Server,Android服务启动 (4) ...

  4. 【STM32H7教程】第13章 STM32H7启动过程详解

    完整教程下载地址:http://forum.armfly.com/forum.php?mod=viewthread&tid=86980 第13章       STM32H7启动过程详解 本章教 ...

  5. fabric网络环境启动过程详解

    这篇文章对fabric的网络环境启动过程进行讲解,也就是我们上节讲到的启动测试fabric网络环境时运行network_setup.sh这个文件的执行流程 fabric网络环境启动过程详解 上一节我们 ...

  6. (转)Linux 开机引导和启动过程详解

    Linux 开机引导和启动过程详解 编译自:https://opensource.com/article/17/2/linux-boot-and-startup作者: David Both 原创:LC ...

  7. linux 开机启动过程详解

    Linux开机执行内核后会启动init进程,该进程根据runlevel(如x)执行/etc/rcx.d/下的程序,其下的程序是符号链接,真正的程序放在/etc/init.d/下.开机启动的程序(服务等 ...

  8. 转-Linux启动过程详解(inittab、rc.sysinit、rcX.d、rc.local)

    http://blog.chinaunix.net/space.php?uid=10167808&do=blog&id=26042   1)BIOS自检2)启动Grub/Lilo3)加 ...

  9. [转载] Linux启动过程详解-《别怕Linux编程》之八

    本原创文章属于<Linux大棚>博客,博客地址为http://roclinux.cn.文章作者为rocrocket.为了防止某些网站的恶性转载,特在每篇文章前加入此信息,还望读者体谅. = ...

随机推荐

  1. 禁掉或启用firefox 的 javascript 脚本

    老版本的firefox可以直接在“选项”页设置启用或禁用javascript 脚本 新版的Firefox中,我找了半天,没有找到,看来是没法直接设置了 于是在 地址栏键入 about:config 搜 ...

  2. 使用JavaScript实现机器学习和神经学网络

    欢迎大家前往云+社区,获取更多腾讯海量技术实践干货哦~ 下载heaton-javascript-ml.zip - 45.1 KB 基本介绍 在本文中,你会对如何使用JavaScript实现机器学习这个 ...

  3. spring boot + vue + element-ui全栈开发入门——windows开发环境

     一.node.js开发环境 windows系统,去网站https://nodejs.org/en/download/,下载对应的安装程序,并安装Windows Installer (.msi) 接下 ...

  4. SpringMVC源码情操陶冶-DispatcherServlet简析(二)

    承接前文SpringMVC源码情操陶冶-DispatcherServlet类简析(一),主要讲述初始化的操作,本文将简单介绍springmvc如何处理请求 DispatcherServlet#doDi ...

  5. 分组密码的工作模式--wiki

    密码学中,块密码的工作模式允许使用同一个块密码密钥对多于一块的数据进行加密,并保证其安全性.[1][2] 块密码自身只能加密长度等于密码块长度的单块数据,若要加密变长数据,则数据必须先被划分为一些单独 ...

  6. vue2.0开发时导入组件时出错

    导入自定义组件时出现了如下错误 ERROR Failed to compile with 1 errors 12:35:41 This dependency was not found: * comp ...

  7. [转载]完全版线段树 by notonlysuccess大牛

    原文出处:http://www.notonlysuccess.com/ (好像现在这个博客已经挂掉了,在网上找到的全部都是转载) 今天在清北学堂听课,听到了一些很令人吃惊的消息.至于这消息具体是啥,等 ...

  8. BZOJ 3991: [SDOI2015]寻宝游戏 [虚树 树链的并 set]

    传送门 题意: $n$个点的树,$m$次变动使得某个点有宝物或没宝物,询问每次变动后集齐所有宝物并返回原点的最小距离 转化成有根树,求树链的并... 两两树链求并就可以,但我们按照$dfs$序来两两求 ...

  9. Getting the pixel coordinates of text or ticks in matplotlib

    The exact pixel coordinates of title, labels, legends or ticks are important information for the tra ...

  10. 通过 AJAX 加载的 JavaScript 脚本的调试

     //# sourceURL=  注意#后面有一个空格.