根據學習Unix操作系統很久的積累,今天我要給大家講解一下Unix操作系統的幾個主要系統進程的知識。系統進程(Syetem Process ,又叫Daemon Process),不依賴於終端或用戶的進程。用ps命令查詢時,在TTY字段處顯示為“?”。這些知識對我們來說是很重要的。希望大家能夠好好學習。
一、Unix操作系統最先啟動的幾個系統進程為:
1. sched:PID=0
?; Unix操作系統核心創建的第一個進程
?; 系統啟動時創建其他系統進程
?; 負責進程在swap和memory之間的切換(進程調度)
2. init:PID=1
?; 初始化boot和login進程
?; 所有用戶進程的“祖先”(ancestor)
?; 所有非sched創建的系統進程的“祖先”(ancestor)
3. vhand:PID=2
?; 將memory中較少使用的頁移入swap 區。
4. dbflush:PID=3
?; 在一定的時間間隔將“buffer cache”中的內容刷新至硬盤。
5. kmdaemon:PID=4
?; 管理保留內存池,以備服務進程中斷時取用
6. htepi_daemon:PID=5
?; 處理“ht filesystem driver ” 的異步日志文件的修改
二、Unix操作系統中的init進程的說明:
init首先完成/etc/default/boot,然後再執行/etc/inittab中的指令。在從/etc/inittab中取得運行模式前,它首先派生一個shell完成下列工作:
- /etc/bcheckrc 檢查根文件系統
- /etc/ifor_pmd 執行注冊管理程序(許可證管理)
- /etc/smmck 檢查TCB(Trusted Computing Base database) /etc/auth,/tcb
若選擇了Unix操作系統多用戶模式,init繼續派生一個shell執行下列工作:
/etc/asktimerc,/etc/authchkrc(作用同smmck,只是smmck運行於單用戶)
這樣,我們就對Unix操作系統最先啟動的幾個系統進程進行了大概的了解。