- 論壇徽章:
- 0
|
引導(dǎo)
在Sparc平臺下,Solaris系統(tǒng)中有一個類似PC BIOS的芯片程序(EEPROM OpenBoot)負(fù)責(zé)識別分區(qū)、文
件系統(tǒng)和加載內(nèi)核,在Solaris 2.6之后的版本中,默認(rèn)的內(nèi)核文件存放在/platform/`arch`/kernel/unix
位置,`arch`指令是指明系統(tǒng)的硬件體系,目前一般是i86pc(Intel IA32)或sun4u(Sun UntraSparc)。
在Intel體系中,因?yàn)闆]有eeprom firmware,所以系統(tǒng)提供了一個模擬eeprom的引導(dǎo)程序,來負(fù)責(zé)
內(nèi)核的定位和加載,這個程序是工作在實(shí)模式下的,系統(tǒng)必須要給他提供一個fat12/16格式的boot分區(qū),
在系統(tǒng)引導(dǎo)完成之后可以在/boot/solaris下找到他的配置文件。(Solaris IA使用默認(rèn)內(nèi)核/kernel/unix)
整個系統(tǒng)啟動過程如下:
===========================================================================
init 0 openboot模式 -> (引導(dǎo)內(nèi)核,加載硬件驅(qū)動) 可以選擇從cdrom引導(dǎo)進(jìn)入維護(hù)模式
|
V
init 1 單用戶模式 -> (加載/分區(qū)) 登陸進(jìn)入維護(hù)模式,或按Ctrl+D進(jìn)入多用戶模式
|
V
init 2 網(wǎng)絡(luò)工作站模式 -> (連接網(wǎng)絡(luò),運(yùn)行網(wǎng)絡(luò)工作站服務(wù)) 運(yùn)行/etc/rc2腳本連接網(wǎng)絡(luò)
| |
| ->-> 啟動S69inet服務(wù),運(yùn)行部分inetd網(wǎng)絡(luò)服務(wù)
V
init 3 網(wǎng)絡(luò)服務(wù)器模式 -> (運(yùn)行各種網(wǎng)絡(luò)服務(wù)) 運(yùn)行/etc/rc3腳本啟動網(wǎng)絡(luò)服務(wù)器
啟動
Solaris的啟動進(jìn)程是按照SYS V格式控制的,啟動過程分為若干個運(yùn)行級別(S,1-6),當(dāng)系統(tǒng)內(nèi)核
運(yùn)行完畢,加載好所有的驅(qū)動之后,就會把控制權(quán)移交給/sbin/init進(jìn)程(PID:1),也就是所有進(jìn)
程的父進(jìn)程,然后由init讀取/etc/inittab,依次執(zhí)行/etc/rc1(2,3)啟動腳本,最終到達(dá)inittab
中指定的默認(rèn)運(yùn)行級別。rc腳本會讀取/etc/rc*.d中的啟動腳本,啟動腳本以大寫字母S開頭,在rc
運(yùn)行期間就會被執(zhí)行,S后面的兩位數(shù)字域決定啟動順序,因?yàn)閱舆M(jìn)程之間有一定的依賴關(guān)系 (以K
開頭意味著進(jìn)入這個級別時,服務(wù)將會被殺掉,其余字母開頭的被忽略)。
雖然同屬于SYSV系統(tǒng)引導(dǎo)方式,但是Solaris的引導(dǎo)過程和我們常見的Linux卻有很大差別,并且和
傳統(tǒng)Unix的init級別也略有不同。在Linux中,系統(tǒng)運(yùn)行級別是并行式的,也就是系統(tǒng)加載完內(nèi)核和
mount /文件系統(tǒng)之后,就會直接跳轉(zhuǎn)到相應(yīng)的默認(rèn)運(yùn)行級別,而不依次執(zhí)行各個級別的啟動腳本。但
在Solaris中,采取了一種串行化的引導(dǎo)方式,就是依次執(zhí)行init 1/2/3,直到默認(rèn)運(yùn)行級別,在每
個級別中的所有啟動腳本都會被執(zhí)行。所以在這里我以一種和傳統(tǒng)Unix劃分方式不同的說明方法,
把Solaris的啟動級別稱為: 1,單用戶模式 2,網(wǎng)絡(luò)工作站模式 3,網(wǎng)絡(luò)服務(wù)器模式
下面是/etc中所有的啟動運(yùn)行腳本簡要說明
===========================================================================
init inittab rc0 rc1 rc2 rc3 rc5 rc6 rcS init.d
init 系統(tǒng)啟動超級進(jìn)程
inittab 進(jìn)程啟動配置文件
rc0 - rc6 各啟動級別的啟動腳本
rcS 單用戶模式啟動腳本
init.d 啟動腳本存放目錄
rc0.d: eeprom OpenBoot狀態(tài),可以進(jìn)入硬件維護(hù)模式,或關(guān)閉機(jī)器。
rc1.d: 單用戶模式,可以對系統(tǒng)進(jìn)行軟件維護(hù)。
S01MOUNTFSYS +加載文件系統(tǒng)
S10lu =當(dāng)運(yùn)行l(wèi)ive update后清理系統(tǒng)
rc2.d: 多用戶模式,啟動網(wǎng)絡(luò)工作站服務(wù)。 (最后會啟動dtlogin允許圖形界面工作站)
S01MOUNTFSYS
S05RMTMPFILES + 清空/tmp文件系統(tǒng)
/tmp是系統(tǒng)緩存文件目錄,和swap分區(qū)共享空間,如果分區(qū)滿的話會
對系統(tǒng)性能造成很大影響
S10lu =
S20sysetup + 設(shè)置系統(tǒng)初始參數(shù)
設(shè)置hostname等
S21perf = 性能記賬服務(wù)(無效)
開啟accton記賬服務(wù),默認(rèn)無效
S30sysid.net + 配置基本網(wǎng)絡(luò)參數(shù)
設(shè)置系統(tǒng)ip地址等
S40llc2 + 啟動Class II logical link control driver
邏輯鏈路控制程序驅(qū)動
S42ncakmod = 啟動Solaris Network Cache and Accelerator (NCA)
NCA網(wǎng)絡(luò)緩存加速驅(qū)動,可以提高HTTP Server吞吐率
S47pppd - 啟動撥號訪問服務(wù)器進(jìn)程
串行線撥號訪問服務(wù)器
S69inet = 啟動inetd進(jìn)程
Internet服務(wù)超級進(jìn)程,配置文件/etc/inetd.conf,啟動一系列
服務(wù),如telnet/ftp等
s70uucp - 啟動uucp
uucp服務(wù),無用
S71rpc + 啟動rpcbind服務(wù)
rpcbind (RPC Portmap服務(wù)),如果需要CDE的話,這個進(jìn)程是必需的
S71sysid.sys + 配置一些系統(tǒng)參數(shù)
S71ldap.client - 啟動LDAP客戶端
S72directory - 啟動目錄服務(wù)
S72inetsvc + 啟動inet server,包含named/nis
啟動名字解析服務(wù),包含named和nis兩部分
s72slpd - 啟動slpd
打印服務(wù)系統(tǒng)的一部分
S72autoinstall = 啟動自動安裝守護(hù)進(jìn)程
當(dāng)放入sun兼容的媒體介質(zhì)時,會自動啟動安裝腳本
S73cachefs.daemon - 啟動cachefsd
NFS緩存服務(wù),可以提高NFS吞吐率
S73nfs.client = 啟動nfs客戶端
NFS客戶端程序
S74syslog + 啟動syslog
系統(tǒng)日志守護(hù)進(jìn)程,必需
s74autofs - 啟動auto mount fsd
當(dāng)使用NFS時,這個進(jìn)程會自動加載或卸載無用的用戶網(wǎng)絡(luò)文件系統(tǒng)
配置文件/etc/auto_home和auto_master
但是當(dāng)沒有使用nfs時,這個進(jìn)程會對系統(tǒng)管理造成一些負(fù)面影響
s74xntpd - 啟動網(wǎng)絡(luò)時間同步服務(wù)
S75cron + 啟動crontab服務(wù)
系統(tǒng)任務(wù)自動調(diào)度守護(hù)進(jìn)程
S75savecore +
S76nscd + 啟動nscd,名字服務(wù)緩存
DNS名字緩存服務(wù)
S80kdmconfig = 啟動kdmconfig
如果系統(tǒng)啟動時X-Window配置文件丟失,這個進(jìn)程會啟動X-Window配置
S80spc - 啟動lpd打印守護(hù)進(jìn)程
打印服務(wù)系統(tǒng)的一部分
s80lp - 啟動lpd打印調(diào)度守護(hù)進(jìn)程
打印服務(wù)系統(tǒng)的一部分
S85lmgrd + 啟動flexlm license服務(wù)器
Solaris License管理服務(wù)器
S85power + 啟動電源守護(hù)進(jìn)程
S88utmpd + 啟動utmpd
s88sendmail - 啟動sendmail
S89PRESERVE =
保留,無效
S90wbem = 啟動wbem,基于web的管理界面
WBEM,Solaris系統(tǒng)管理界面服務(wù)器,可以使用/usr/sadm/bin/smc
啟動客戶端程序連接管理
S93cacheos.finish -
S94ncalogd = 啟動Solaris Network Cache and Accelerator LOGd
NCA進(jìn)程日志
S95IIim + 啟動輸入法守護(hù)進(jìn)程
Solaris國際化支持的一部分,啟動?xùn)|亞語言輸入法
S95svm.sync + 啟動 devfsadm ,devfs同步進(jìn)程
監(jiān)控系統(tǒng)硬件,使/dev與/devices設(shè)備文件同步
S99audit + 啟動BSM審計(jì)進(jìn)程
Solaris Base Securiey Modula,啟動Solaris C2安全審計(jì)
默認(rèn)未啟動
S99dtlogin = 啟動CDE登錄進(jìn)程
Solaris CDE圖形界面啟動進(jìn)程
rc3.d: 多用戶模式,啟動網(wǎng)絡(luò)服務(wù)器模式
S15nfs.server - 啟動nfs服務(wù)器
NFS網(wǎng)絡(luò)文件服務(wù)器
S13kdc.master - 啟動Kerberos服務(wù)器
S14kdc - 啟動Kerberos服務(wù)器
Kerberos認(rèn)證服務(wù)器
S16boot.server - 啟動bootp服務(wù)器
boot網(wǎng)絡(luò)啟動服務(wù)
S34dhcp = 啟動dhcp
DHCP服務(wù)器
S50apache - 啟動apache服務(wù)器
S76snmpdx - 啟動snmp服務(wù)器
啟動SNMP服務(wù),允許遠(yuǎn)程網(wǎng)絡(luò)管理
S77dmi - 啟動snmp - dmi服務(wù)
SNMP子服務(wù)
S89sshd + 啟動sshd服務(wù)器
SSH服務(wù)器
S80mipagent - 啟動Mobile IP 代理
S90samba - 啟動samba服務(wù)器
Samba CIFS網(wǎng)絡(luò)文件服務(wù)器
*在上面的啟動腳本說明中,第二個域說明服務(wù)的必要性,個人的經(jīng)驗(yàn)總結(jié)。
+代表必須服務(wù),系統(tǒng)正常運(yùn)行必須
=代表可選服務(wù),由用戶環(huán)境決定
-代表無效,不必要,或不安全的服務(wù)
進(jìn)程
下面是系統(tǒng)啟動后的默認(rèn)進(jìn)程情況,因?yàn)镾olaris是一個系統(tǒng)環(huán)境相對較穩(wěn)定的系統(tǒng),所以每次啟動
之后,系統(tǒng)的基本進(jìn)程和服務(wù)情況應(yīng)該都差不多的,下面是常見的進(jìn)程和服務(wù)說明。
===========================================================================
# 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
*系統(tǒng)進(jìn)程調(diào)度
8 S 0 1 0 0 40 20 de7a9808 319 de95ce16 ? 0:00 + init
*init進(jìn)程
19 S 0 2 0 0 0 SY de7a9108 0 fec4d4b8 ? 0:00 + pageout
*內(nèi)存換頁進(jìn)程
19 S 0 3 0 2 0 SY de7a8a08 0 fecea0bc ? 0:06 + fsflush
*文件系統(tǒng)同步進(jìn)程
8 S 0 372 1 0 40 20 de7a8308 448 de955d68 ? 0:00 + sac
*sac監(jiān)控進(jìn)程,和ttymon一起提供終端登陸功能
8 S 0 381 355 0 40 20 de7a7c08 1581 de9c80a8 ? 0:01 = dtlogin
*CDE登陸進(jìn)程
8 S 0 187 1 0 40 20 de7a7508 649 de955ee8 ? 0:00 + cron
*crontab任務(wù)調(diào)度守護(hù)進(jìn)程
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監(jiān)控總進(jìn)程,= portmat
8 S 0 178 1 0 40 20 de7a1810 930 deb1c496 ? 0:00 + syslogd
*syslog系統(tǒng)日志守護(hù)進(jìn)程
8 S 0 152 1 0 40 20 de7a1110 489 de5f077a ? 0:00 = inetd
*internet服務(wù)超級守護(hù)進(jìn)程
8 S 0 195 1 0 40 20 de7a0a10 673 debedcd6 ? 0:00 = nscd
*名字服務(wù)緩存進(jìn)程
8 S 1 161 1 0 40 20 de7a0310 613 de5f097a ? 0:00 - statd
*rpc.statd,NFS文件服務(wù)狀態(tài)同步子進(jìn)程
8 S 0 231 1 0 40 20 de79fc10 338 de79fc7c ? 0:00 = htt
*httd,輸入法進(jìn)程
8 S 0 163 1 0 40 20 de79f510 540 de5f067a ? 0:00 - lockd
*rpc.lockd,NFS文件服務(wù)鎖狀態(tài)子進(jìn)程
8 S 0 208 1 0 40 20 de79ee10 339 debd34d6 ? 0:00 + powerd
*電源管理服務(wù),類似PC的APM
8 S 0 225 224 0 40 20 de79e710 434 de5f05fa ? 0:00 - smcboot
*??MobileIP服務(wù)?
8 S 0 215 1 0 40 20 de79e010 275 de5f04ba ? 0:00 + utmpd
*utmp登陸用戶監(jiān)控進(jìn)程
8 S 0 364 1 0 40 20 de79ca18 945 dee6aea6 ? 0:00 - snmpXdmi
*snmp服務(wù)子進(jìn)程
8 S 0 234 231 0 40 20 de79c318 805 decce876 ? 0:00 = htt_serv
*輸入法服務(wù)器
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審計(jì)守護(hù)進(jìn)程
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服務(wù)子進(jìn)程
8 R 0 398 379 1 50 20 ded92c38 1409 ? 0:02 + sshd
*ssh服務(wù)器
8 S 0 382 355 0 40 20 ded92538 583 dedb0e42 ?? 0:00 + fbconsol
*framebuffer顯示輸出驅(qū)動
8 S 0 378 372 0 40 20 ded91738 447 ded62216 ? 0:00 + ttymon
*tty監(jiān)控服務(wù),和sac一起提供終端登陸功能,類似于其他Unix中的getty
8 S 0 376 352 0 40 20 ded91038 649 deeecbce ? 0:01 - mibiisa
*snmp服務(wù)子進(jìn)程
8 S 0 377 355 1 40 20 ded90840 4467 dedb0d42 ? 0:12 = Xsun
*Solaris X服務(wù)器
8 S 0 380 1 0 40 20 ded90140 786 ded62bd6 ? 0:01 + devfsadm
*/dev (devfs)同步進(jìn)程
8 S 0 355 1 0 40 20 ded8fa40 1245 dedb0cc2 ? 0:00 = dtlogin
*CDE登錄守護(hù)進(jìn)程
inetd
inetd進(jìn)程啟動了一系列的系統(tǒng)服務(wù),而在Solaris中因?yàn)橛泻芏郣PC服務(wù)也在inetd中啟動,因此
inetd顯得特別復(fù)雜,而其中的服務(wù)大多數(shù)都是不必要的 (全部都可以關(guān)閉)
===========================================================================
#systat stream tcp nowait root /usr/bin/ps ps -ef
#系統(tǒng)進(jìn)程監(jiān)控服務(wù),允許遠(yuǎn)程察看進(jìn)程
#netstat stream tcp nowait root /usr/bin/netstat netstat -f inet
#網(wǎng)絡(luò)狀態(tài)監(jiān)控服務(wù),允許遠(yuǎn)程察看網(wǎng)絡(luò)狀態(tài)
#time stream tcp6 nowait root internal
#time dgram udp6 wait root internal
#網(wǎng)絡(luò)時間服務(wù),允許遠(yuǎn)程察看系統(tǒng)時間
#echo stream tcp6 nowait root internal
#echo dgram udp6 wait root internal
#網(wǎng)絡(luò)測試服務(wù),回顯字符串
#discard stream tcp6 nowait root internal
#discard dgram udp6 wait root internal
#網(wǎng)絡(luò)測試服務(wù),丟棄輸入
#daytime stream tcp6 nowait root internal
#daytime dgram udp6 wait root internal
#網(wǎng)絡(luò)測試服務(wù),顯示時間
#chargen stream tcp6 nowait root internal
#chargen dgram udp6 wait root internal
#網(wǎng)絡(luò)測試服務(wù),回應(yīng)隨機(jī)字符串
#RPC類服務(wù)
#
#100232/10 tli rpc/udp wait root /usr/sbin/sadmind sadmind
#遠(yuǎn)程系統(tǒng)管理服務(wù)
#100083/1 tli rpc/tcp wait root /usr/dt/bin/rpc.ttdbserverd rpc.ttdbserverd
#CDE tooltalk服務(wù)
#100221/1 tli rpc/tcp wait root /usr/openwin/bin/kcms_server kcms_server
#Sun KCMS Profile服務(wù)
#fs stream tcp wait nobody /usr/openwin/lib/fs.auto fs
#X-Window字體服務(wù)器
#100235/1 tli rpc/ticotsord wait root /usr/lib/fs/cachefs/cachefsd cachefsd
#NFS緩存服務(wù)
#dtspc stream tcp nowait root /usr/dt/bin/dtspcd /usr/dt/bin/dtspcd
#CDE dtspc服務(wù)
#100068/2-5 dgram rpc/udp wait root /usr/dt/bin/rpc.cmsd rpc.cmsd
#CDE cmsd服務(wù)
#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系列服務(wù),無用
#printer stream tcp6 nowait root /usr/lib/print/in.lpd in.lpd
#打印機(jī)守護(hù)進(jìn)程
#shell stream tcp nowait root /usr/sbin/in.rshd in.rshd
#shell stream tcp6 nowait root /usr/sbin/in.rshd in.rshd
#R遠(yuǎn)程登錄系列服務(wù),rsh
#login stream tcp6 nowait root /usr/sbin/in.rlogind in.rlogind
#R遠(yuǎn)程登錄系列服務(wù),rlogin
#exec stream tcp nowait root /usr/sbin/in.rexecd in.rexecd
#exec stream tcp6 nowait root /usr/sbin/in.rexecd in.rexecd
#R遠(yuǎn)程登錄系列服務(wù),rexec
#comsat dgram udp wait root /usr/sbin/in.comsat in.comsat
#郵件通知服務(wù)
#talk dgram udp wait root /usr/sbin/in.talkd in.talkd
#本地通訊服務(wù)進(jìn)程,talk
#finger stream tcp6 nowait nobody /usr/sbin/in.fingerd in.fingerd
#finger守護(hù)進(jìn)程,允許遠(yuǎn)程查詢登陸用戶信息
#rstatd/2-4 tli rpc/datagram_v wait root /usr/lib/netsvc/rstat/rpc.rstatd rpc.rstatd
#rpc遠(yuǎn)程狀態(tài)查詢
#rusersd/2-3 tli rpc/datagram_v,circuit_v wait root /usr/lib/netsvc/rusers/rpc.rusersd rpc.rusersd
#rpc遠(yuǎn)程用戶查詢,類似rusers和finger
#walld/1 tli rpc/datagram_v wait root /usr/lib/netsvc/rwall/rpc.rwalld rpc.rwalld
#rpc廣播發(fā)送,類似wall
#sprayd/1 tli rpc/datagram_v wait root /usr/lib/netsvc/spray/rpc.sprayd rpc.sprayd
#rpc網(wǎng)絡(luò)吞吐量測試程序
#100234/1 tli rpc/ticotsord wait root /usr/lib/gss/gssd gssd
#GSS聲音服務(wù)守護(hù)進(jìn)程
#tftp dgram udp6 wait root /usr/sbin/in.tftpd in.tftpd -s /tftpboot
#tftp服務(wù)器
#name dgram udp wait root /usr/sbin/in.tnamed in.tnamed
#named,DNS服務(wù)器
#telnet stream tcp6 nowait root /usr/sbin/in.telnetd in.telnetd
#telnet服務(wù)器
#100155/1 tli rpc/ticotsord wait root /usr/lib/smedia/rpc.smserverd rpc.smserverd
#smedia服務(wù)器
#ftp stream tcp6 nowait root /usr/sbin/in.ftpd in.ftpd -a
#ftp服務(wù)器
#rexd/1 tli rpc/tcp wait root /usr/sbin/rpc.rexd rpc.rexd
#rpc.rexd ,rpc遠(yuǎn)程命令執(zhí)行服務(wù),類似rexec
#100134/1 tli rpc/ticotsord wait root /usr/lib/krb5/ktkt_warnd ktkt_warnd
#Kerberos消息服務(wù)
#rquotad/1 tli rpc/datagram_v wait root /usr/lib/nfs/rquotad rquotad
#nfs 磁盤限額服務(wù)
#100150/1 tli rpc/ticotsord wait root /usr/sbin/ocfserv ocfserv
#OCF智能卡守護(hù)進(jìn)程
#uucp stream tcp nowait root /usr/sbin/in.uucpd in.uucpd
#uucp服務(wù)器
#krb5_prop stream tcp nowait root /usr/lib/krb5/kpropd kpropd
#Kerberos數(shù)據(jù)庫同步進(jìn)程
本文來自ChinaUnix博客,如果查看原文請點(diǎn):http://blog.chinaunix.net/u/13053/showart_685777.html |
|