Linux真小白入門教程第一集——什麼是LINUX?
Linux是一款作業系統:
包含以下四個模組:
-
模組一:
Linux核心:是Linux系統的核心,控制著計算機系統上的所有硬體和軟體,負責硬體的分配和軟體的執行
又分為四個細分功能:
- 系統記憶體管理:
核心不僅可以管理伺服器上的實體記憶體,還可以建立和管理虛擬記憶體。
核心是通過硬碟上的儲存空間來實現的虛擬記憶體,這塊區域被稱為交換空間。核心不斷地在交換空間和實際的實體記憶體之間反覆交換虛擬記憶體中的內容,使得作業系統認為它有比實體記憶體更多的實際可用記憶體,使得我們可以建立更多的程序。
核心會維護一個記憶體頁面表,指明哪些頁面(儲存單元按塊劃分的基本單元)存在於實體記憶體,那些被交換到了磁碟上。
在實際使用中,需要使用到各種頁面置換演算法來滿足使用需求。
- 軟體程式管理:
核心控制Linux系統如何管理執行在系統上的所有程序
Linux將執行中的程式稱為程序,程序可以在後臺執行,也可以在前臺執行(顯示在螢幕上)。
核心建立的第一個程序(稱為init程序)來啟動系統上的所有其他程序。當核心啟動時,它會將init程序載入到虛擬記憶體中,之後再核心啟動其他程序時,都會給新程序分配一塊專屬區域來儲存程序用到的資料和程式碼。
(一些Linux發行版本使用一個表來管理在系統開機時要自動啟動的程序,一般位於/etc/inittab目錄下。)
Linux的init系統採用執行級(程序啟動系統),有5個啟動執行級:
執行級為1,只啟動基本的系統程序以及一個控制檯終端程序(單使用者模式),在系統出現問題時進行緊急的檔案系統保護。
執行級為3(標準啟動級別),大多數應用軟體,比如網路支援程式,都會啟動。
執行級為5,會啟動圖形化的X windows系統,允許系統通過圖形化桌面視窗登入系統。
ps命令被用來檢視執行在Linux上的程序
- 硬體裝置管理:
核心可以對硬體裝置進行管理,此時就需要驅動程式程式碼進行系統與硬體裝置之間的通訊(交換資料)。
在Linux核心中有兩種方法用於插入裝置驅動程式碼:
編譯進核心的裝置驅動程式碼(每次插入新裝置就需要重新編譯核心,非常低效)
可插入核心的裝置驅動程式碼(隨時增加隨時減去,極大地簡化和擴充套件了硬體裝置在Linux上的使用)
Linux系統將硬體裝置當成特殊的檔案(稱之為裝置檔案)
字元型裝置檔案:處理資料時每次只能處理一個字元的裝置(調變解調器、終端)
塊裝置檔案:每次能處理大塊裝置的裝置(硬碟)
網路裝置檔案:資料包傳送和接受的裝置(網絡卡、迴環裝置)(使用典型的網路程式設計協議進行通訊)
Linux為系統上的每一個裝置都建立一種稱為“節點“的特殊檔案。與裝置的通訊都需要經過裝置節點來完成,每個節點都有唯一的數值供Linux核心識別(主裝置號+次裝置號)(類似的裝置會被劃分到同樣的主裝置號之下)
- 檔案系統管理
Linux核心通過不同型別的檔案系統從硬碟讀寫資料,除了自身的多種檔案系統之外,Linux還支援從其他作業系統採用的檔案系統讀寫資料(核心在編譯期間就需要對所有可能用到的檔案系統進行支援)。
Linux核心採用虛擬檔案系統(VFS)作為和每個檔案系統互動的介面(相當於一個標準介面),當每個檔案系統被掛載和使用時,VFS會將資訊快取在記憶體中。
-
模組二:
GNU工具(GNU‘s not Unix):這是一些標準的系統工具執行一些標準功能,比如控制檔案和程式。它是由GNU組織開發的。
供Linux使用的這組工具被稱為CoreUtils軟體包
操作文字、處理檔案、管理程序
shell是一種特殊的互動式工具,可以用來啟動程式、管理檔案等,shell的核心是命令列提示符:輸入文字,解釋命令,在核心中執行。(還有複製檔案、移動檔案、顯示正在執行的程式等等)
還可以將多個shell命令放入檔案中作為程式執行,被稱之為shell指令碼。
在一個Linux系統中,通常有多種Linux shell可以使用,分別有不同的便利:有的更利於建立指令碼,有的更利於管理程序。(預設的版本都是bash shell)(它是標準的Unix Shell的替代品——Bourne shell)
ash shell 執行在記憶體受限環境中簡單的輕量級shell
korn shell支援關聯陣列和浮點運算的一些高階特性的程式設計特性
-
模組三:
圖形化桌面環境
X Windows / KDE / GNOME / Unity(Ubuntu) /等等
-
模組四:
應用軟體