Linux架構-簡單清晰

UNIX的一條哲學是讓每個程序儘量獨立的做好一個小的功能。而shell充當了這些小功能之間的"膠水",讓不同程序能夠以一個清晰的接口(文本流)協同工作,從而增強各個程序的功能。這也是Linux老鳥鼓勵新手多用shell,少用圖形化界面的原因之一。

(shell也有很多種,最常見的是bash, 另外還有sh, csh, tcsh, ksh。它們出現的年代不同,所支持的功能也有差異。)

Linux架構-簡單清晰

一個使用bash shell的終端

一個shell對應一個終端 (terminal)。曾經來說,終端是一個硬件設備,用來輸入並顯示輸出。如今,由於圖形化界面的普及,終端往往就像上圖一樣,是一個圖形化的窗口。你可以通過這個窗口輸入或者輸出文本。這個文本直接傳遞給shell進行分析解釋,然後執行。

最後,我們進入一般的應用。應用是一個程序,它可以

  1. 直接調用系統函數
  2. 調用庫函數
  3. 運行shell腳本

這些應用可以由多種語言開發。最常見的是C語言。

總結

Linux利用內核實現軟硬件的對話。

通過系統調用的這個接口,Linux將上層的應用與下層的內核分離,隱藏了底層的複雜性,也提高了上層應用的可移植性。

庫函數利用系統調用創造出模塊化的功能,

Shell則提供了一個用戶界面,並讓我們可以利用shell的語法編寫腳本,以整合程序。


分享到:


相關文章: