Linux 一般有 3 個主要部分: 內(nèi)核(kernel)、命令解釋層(Shell 或其他操作系統(tǒng)環(huán)境)、實用工具。
1. Linux 內(nèi)核
內(nèi)核是系統(tǒng)的心臟,是運行程序和管理像磁盤和打印機等設(shè)備的核心程序。操作環(huán)境向用戶提供一個操作界面,它從用戶那里接受命令,并且把命令送給內(nèi)核去執(zhí)行。由于內(nèi)核提供都是操作系統(tǒng)最基本的功能,如果內(nèi)核發(fā)生問題,整個計算機系統(tǒng)就可能會崩潰。
Linux 內(nèi)核的源碼主要是用 C 語言編寫,只有部分與驅(qū)動相關(guān)的用匯編語言編寫。Linux內(nèi)核采用模塊化的結(jié)構(gòu),其主要模塊包括:存儲管理、CPU 和進程管理、文件系統(tǒng)管理、設(shè)備管理和驅(qū)動、網(wǎng)絡(luò)通信以及系統(tǒng)的引導、系統(tǒng)調(diào)用等。Linux 內(nèi)核的源代碼通常安裝在/usr/src目錄,可供用戶查看和修改。
當 Linux 安裝完畢之后,一個通用的內(nèi)核就被安裝到計算機中。這個通用內(nèi)核能滿足絕大多部分用戶的需求,但也正因為內(nèi)核這種普遍適用性使很多對具體的某一臺計算機來說可能并不需要的內(nèi)核程序(比如一些硬件驅(qū)動程序)將被安裝并運行。Linux 允許用戶根據(jù)主機機器的實際配置定制 Linux 的內(nèi)核,從而有效地簡化 Linux 內(nèi)核,提高系統(tǒng)啟動速度,并釋放更多的內(nèi)存資源。
在 Linus Torvalds 領(lǐng)導的內(nèi)核開發(fā)小組不屑努力下,Linux 內(nèi)核的更新速度非常快。用戶在安裝 Linux 后可以下載最新版本的 Linux 內(nèi)核,進行內(nèi)核編譯后升級計算機的內(nèi)核,就可以使用到內(nèi)核最新的功能。由于內(nèi)核定制和升級的成敗關(guān)系到整個計算機系統(tǒng)能否正常運行,因此用戶對此必須非常謹慎。
2. Linux Shell
Shell 是系統(tǒng)的用戶界面,提供了用戶與內(nèi)核進行交互操作的一種接口。它接收用戶輸入的命令,并且把它送入內(nèi)核去執(zhí)行。
操作環(huán)境在操作系統(tǒng)內(nèi)核與用戶之間提供操作界面,它可以描述為一個解釋器。操作系統(tǒng)對用戶輸入的命令進行解釋,再將其發(fā)送到內(nèi)核。Linux 存在幾種操作環(huán)境,分別為:桌面(desktop)、窗口管理器(window manager)和命令行 shell (command line shell)。Linux 系統(tǒng)中每個用戶都可以擁有自己的用戶操作界面,并根據(jù)自己的要求進行定制。
Shell 是一個命令解釋器,它解釋由用戶輸入的命令,并且把它們送到內(nèi)核。不僅如此,Shell 還有自己的編程語言用于對命令的編輯,它允許用戶編寫由 Shell 命令組成的程序。Shell 編程語言具有普通編程語言的很多特點,例如,它也有循環(huán)結(jié)構(gòu)和分支控制結(jié)構(gòu)等,用這種編程語言編寫的 Shell 程序與其他應用程序具有同樣的效果。
同 Linux 本身一樣,Shell 也有多種不同版本。目前主要有下列版本的 Shell。
- Bourne Shell:是貝爾實驗室開發(fā)版本。
- BASH:是 GNU 的 Bourne Again Shell,是 GNU 操作系統(tǒng)上默認的 Shell。
- Korn Shell:是對 Bourne Shell 的發(fā)展,在大部分情況下與 Bourne Shell兼容。
- C shell:是 Sun 公司的 Shell 的 BSD 版本。
Shell不僅是一種交互式命令解釋程序,而且還是一種程序設(shè)計語言,它跟 MS-DOS 中的批處理命令類似,但比批處理命令功能強大。在 Shell 腳本程序中可以定義和使用變量,進行參數(shù)傳遞、流程控制、函數(shù)調(diào)用等。
Shell 腳本程序是解釋型的,也就是說 Shell 腳本程序不需要進行編譯,就能直接逐條解釋,逐條執(zhí)行腳本程序的源語句。Shell 腳本程序的處理對象只能是文件、字符串或命令語句,而不像其他高級語言有豐富的數(shù)據(jù)結(jié)構(gòu)。
作為命令行操作界面的替代選擇,Linux 還提供了像 Microsoft Windows 那樣的可視化界面-----X-Windows 圖形用戶界面(GUI)。它提供了很多窗口管理器,其操作方法就像 Windows 一樣,所有的管理都可以通過界面控制。現(xiàn)在比較常用的窗口管理器是 KDE 和 GNOME(其中 GNOME 是 Red Hat Linux 默認使用的界面),兩種桌面都能夠免費獲得。