Linux程序的層次關係

2021-06-06 13:18:41 字數 1085 閱讀 6404

當開啟linux系統,lilo(linux loader)找到linux核心把它載入到記憶體。它初始化各種硬體,包括磁碟控制器。然後轉到保護模式,載入作業系統,執行初始化各種核心資料結構的**,例如inode和檔案表。此程序的pid為0。它啟動初試程序(init程序,pid為1)完成引導過程的其餘工作。init程序啟動守護程序kflushd、kupdate、kpiod和kswapd,其pid分別為2、3、4、5。init程序然後初始化檔案系統,安裝根檔案系統。接下來試著執行/sbin/init程式,在每乙個啟用的終端上執行minegetty程序(經常被稱為getty程序)。getty程序設定終端屬性,如波特率,這些屬性在/etc/termcap檔案中都有定義。它顯示login:提示符,等待使用者登入。

在login:提示符下,輸入登入名並按回車鍵,getty程序產生乙個子程序。它轉變為以登入名為引數的登入程序。登入程序提示輸入密碼,並檢查輸入名和密碼的有效性。如果兩者均正確,登入程序產生乙個子程序,它將轉變為登入shell。如果登入程序沒有在/etc/passwd檔案中找到登入名或者輸入的密碼與/etc/passwd檔案中(或者/etc/shadow檔案)存放的密碼不匹配,他將顯示錯誤提示資訊然後終止。控制權又回到getty程序,重新顯示login:提示符。一旦進入登入shell,就可以完成自己的工作,還可以按鍵終止當前shell。如果這樣做了,shell程序會終止,控制權又回到getty程序,再次顯示login:提示符,又開始迴圈。

就是說,當登入到linux系統,系統產生第乙個程序,稱為登入程序,它又建立登入shell。登入shell為所輸入的命令建立程序,用以解釋/執行命令。

ps -ef 命令或者pstree命令可以用圖的形式顯示當前系統中執行程序的程序樹,勾勒出程序間的父子關係。pstree命令顯示的圖比ps -ef命令更簡潔。pstree顯示的結果,前有「+」的是當前的後台程序,而前面的有「-」的是後續後台程序。pstree命令使用-h引數,輸出用粗體(加亮)顯示當前程序。使用「-a」選項,pstree顯示帶引數的命令。如「pstree 402 -a」可以顯示pid為402的程序的那個的層次關係。

bash shell可以使用ulimit顯示使用者可以同時執行的最大程序個數。tc shell下為limit。兩個命令都可以用來顯示硬體和作業系統資源的使用限制。

Linux程序關係

linux的程序相互之間有一定的關係。比如說,在linux程序基礎中,我們看到,每個程序都有父程序,而所有的程序以init程序為根,形成乙個樹狀結構。我們在這裡講解程序組和會話,以便以更加豐富的方式了管理程序。每個程序都會屬於乙個程序組 process group 每個程序組中可以包含多個程序。程序...

Linux程序關係

linux的程序相互之間有一定的關係。比如說,在linux程序基礎中,我們看到,每個程序都有父程序,而所有的程序以init程序為根,形成乙個樹狀結構。我們在這裡講解程序組和會話,以便以更加豐富的方式了管理程序。每個程序都會屬於乙個程序組 process group 每個程序組中可以包含多個程序。程序...

Linux程序關係

linux的程序相互之間有一定的關係。比如說,在linux程序基礎中,我們看到,每個程序都有父程序,而所有的程序以init程序為根,形成乙個樹狀結構。我們在這裡講解程序組和會話,以便以更加豐富的方式了管理程序。每個程序都會屬於乙個程序組 process group 每個程序組中可以包含多個程序。程序...