|
|
|
<!-- write by trotter 廣告鏈接 --><!--write by trotter 廣告鏈接 -->
Linux系統(tǒng)提供給用戶的最重要的系統(tǒng)程序是Shell命令語言解釋程序。它不屬于內(nèi)核部分,而是在核心之外,以用戶態(tài)方式運(yùn)行。其基本功能是解釋并執(zhí)行用戶打入的各種命令,實(shí)現(xiàn)用戶與Linux核心的接口。系統(tǒng)初啟后,核心為每個(gè)終端用戶建立一個(gè)進(jìn)程去執(zhí)行Shell解釋程序。它的執(zhí)行過程基本上按如下步驟: (1)讀取用戶由鍵盤輸入的命令行。 (2)分析命令,以命令名作為文件名,并將其它參數(shù)改造為系統(tǒng)調(diào)用execve( )內(nèi)部處理所要求的形式。 (3)終端進(jìn)程調(diào)用fork( )建立一個(gè)子進(jìn)程。 (4)終端進(jìn)程本身用系統(tǒng)調(diào)用wait4( )來等待子進(jìn)程完成(如果是后臺(tái)命令,則不等待)。當(dāng)子進(jìn)程運(yùn)行時(shí)調(diào)用execve( ),子進(jìn)程根據(jù)文件名(即命令名)到目錄中查找有關(guān)文件(這是命令解釋程序構(gòu)成的文件),將它調(diào)入內(nèi)存,執(zhí)行這個(gè)程序(解釋這條命令)。 (5)如果命令末尾有&號(hào)(后臺(tái)命令符號(hào)),則終端進(jìn)程不用系統(tǒng)調(diào)用wait4( )等待,立即發(fā)提示符,讓用戶輸入下一個(gè)命令,轉(zhuǎn)⑴。如果命令末尾沒有&號(hào),則終端進(jìn)程要一直等待,當(dāng)子進(jìn)程(即運(yùn)行命令的進(jìn)程)完成處理后終止,向父進(jìn)程(終端進(jìn)程)報(bào)告,此時(shí)終端進(jìn)程醒來,在做必要的判別等工作后,終端進(jìn)程發(fā)提示符,讓用戶輸入新的命令,重復(fù)上述處理過程。 |
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元

