|
論壇說明 |
歡迎您來到『史萊姆論壇』 ^___^ 您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的! 請點擊這裡:『註冊成為我們的一份子!』 |
|
主題工具 | 顯示模式 |
2003-12-16, 06:56 PM | #1 |
榮譽會員
|
Solaris啟動程序簡介
程式碼:--------------------------------------------------------------------------------
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中,採取了一種串行化的引導方式,就是依次執行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 快取 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相容的媒體CD片時,會自動啟動安裝指令碼 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 快取 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資料庫同步工作 |
送花文章: 3,
|