linux系統提供給使用者的最重要的系統程式是shell命令語言解釋程式。它不屬於核心部分,而是在核心之外,以使用者態方式執行。其基本功能是解釋並執行使用者打入的各種命令,實現使用者與linux核心的介面。系統初啟後,核心為每個終端使用者建立乙個程序去執行shell解釋程式。它的執行過程基本上按如下步驟:
(1)讀取使用者由鍵盤輸入的命令列。
(2)分析命令,以命令名作為檔名,並將其它引數改造為系統呼叫execve( )內部處理所要求的形式。
(3)終端程序呼叫fork( )建立乙個子程序。
(4)終端程序本身用系統呼叫wait4( )來等待子程序完成(如果是後台命令,則不等待)。當子程序執行時呼叫execve( ),子程序根據檔名(即命令名)到目錄中查詢有關檔案(這是命令解釋程式構成的檔案),將它調入記憶體,執行這個程式(解釋這條命令)。
(5)如果命令末尾有&號(後台命令符號),則終端程序不用系統呼叫wait4( )等待,立即發提示符,讓使用者輸入下乙個命令,轉⑴。如果命令末尾沒有&號,則終端程序要一直等待,當子程序(即執行命令的程序)完成處理後終止,向父程序(終端程序)報告,此時終端程序醒來,在做必要的判別等工作後,終端程序發提示符,讓使用者輸入新的命令,重複上述處理過程。
shell基本執行過程及父子程序之間的關係如圖所示。
Shell 基本工作原理
shell 基本工作原理 shell 基本工作原理 linux系統提供給使用者的最重要的系統程式是shell命令語言解釋程式。它不屬於核心部分,而是在核心之外,以使用者態方式執行。其基本功能是解釋並執行使用者打入的各種命令,實現使用者與linux核心的介面。系統初啟後,核心為每個終端使用者建立乙個程...
Shell 基本工作原理
shell 基本工作原理 linux系統提供給使用者的最重要的系統程式是shell命令語言解釋程式。它不屬於核心部分,而是在核心之外,以使用者態方式執行。其基本功能是解釋並執行使用者打入的各種命令,實現使用者與linux核心的介面。系統初啟後,核心為每個終端使用者建立乙個程序去執行shell解釋程式...
Shell 基本工作原理
linux系統提供給使用者的最重要的系統程式是shell命令語言解釋程式。它不屬於核心部分,而是在核心之外,以使用者態方式執行。其基本功能是解釋並執行使用者打入的各種命令,實現使用者與linux核心的介面。系統初啟後,核心為每個終端使用者建立乙個程序去執行shell解釋程式。它的執行過程基本上按如下...