jasmine214--love

          只有當你的內(nèi)心總是充滿快樂、美好的愿望和寧靜時,你才能擁有強壯的體魄和明朗、快樂或者寧靜的面容。
          posts - 731, comments - 60, trackbacks - 0, articles - 0

          shell基本工作原理

          Posted on 2010-12-10 10:18 幻海藍夢 閱讀(227) 評論(0)  編輯  收藏 所屬分類: Linux
          Linux系統(tǒng)提供給用戶的最重要的系統(tǒng)程序是Shell命令語言解釋程序。它不屬于內(nèi)核部分,而是在核心之外,以用戶態(tài)方式運行。其基本功能是解 釋并執(zhí)行用戶打入的各種命令,實現(xiàn)用戶與Linux核心的接口。系統(tǒng)初啟后,核心為每個終端用戶建立一個進程去執(zhí)行Shell解釋程序。它的執(zhí)行過程基本 上按如下步驟:

          (1)讀取用戶由鍵盤輸入的命令行。

          (2)分析命令,以命令名作為文件名,并將其它參數(shù)改造為系統(tǒng)調(diào)用execve( )內(nèi)部處理所要求的形式。

          (3)終端進程調(diào)用fork( )建立一個子進程。

          (4)終端進程本身用系統(tǒng)調(diào)用wait4( )來等待子進程完成(如果是后臺命令,則不等待)。當子進程運行時調(diào)用execve( ),子進程根據(jù)文件名(即命令名)到目錄中查找有關(guān)文件(這是命令解釋程序構(gòu)成的文件),將它調(diào)入內(nèi)存,執(zhí)行這個程序(解釋這條命令)。

          (5)如果命令末尾有&號(后臺命令符號),則終端進程不用系統(tǒng)調(diào)用wait4( )等待,立即發(fā)提示符,讓用戶輸入下一個命令,轉(zhuǎn)⑴。如果命令末尾沒有&號,則終端進程要一直等待,當子進程(即運行命令的進程)完成處理后終 止,向父進程(終端進程)報告,此時終端進程醒來,在做必要的判別等工作后,終端進程發(fā)提示符,讓用戶輸入新的命令,重復上述處理過程。

            Shell基本執(zhí)行過程及父子進程之間的關(guān)系如圖所示。

          原文: http://blog.csdn.net/yjz0065/archive/2006/09/07/1190879.aspx

          主站蜘蛛池模板: 大港区| 柏乡县| 娱乐| 汾阳市| 安平县| 德格县| 左云县| 武平县| 凤凰县| 武穴市| 建始县| 桓台县| 尚志市| 徐汇区| 长子县| 疏勒县| 涿鹿县| 海原县| 潜江市| 靖宇县| 临沧市| 大田县| 双江| 邵阳市| 新密市| 河北区| 诸城市| 白朗县| 灵石县| 资溪县| 西林县| 定襄县| 德兴市| 新蔡县| 岑巩县| 广安市| 大方县| 德昌县| 武宣县| 垫江县| 通城县|