操做系統本質上是一個應用程序,他負責硬件資源調度,文件系統管理等最底層的工做。shell
而shell是系統中一種特別的應用程序。之因此特別,是由於用戶一切的操做都是經由shell來實現的。spa
和咱們直接進行交互的始終只有shell程序而已。他是一個命令行解析器,獲取用戶的輸入,而後執行相關操做。操作系統
用戶和shell的通訊除了直接在cli交互以外,另外一種方式就是shell腳本。命令行
前者比如直接談話的方式來佈置任務;後者比如發佈任務清單的方式來佈置任務。翻譯
自用戶被建立的那一刻起,系統就爲用戶配置了一個忠誠的「翻譯官」,他就是shell。unix
此後,咱們將本身的意圖告訴給shell,讓shell來負責其具體的實現。資源
系統調用也是一種程序,unix系統有不少個系統調用。他們就像內核的通信員,程序想和內核交流必須通過系統調用。io
也就是說,程序永遠無法直接和內核通訊,只能直接和系統調用通訊。cli