Linux一般有四個(gè)主要部分:內(nèi)核、Shell、文件結(jié)構(gòu)和實(shí)用工具。
1. Linux內(nèi)核
內(nèi)核是系統(tǒng)的心臟,是運(yùn)行程序和管理像磁盤和打印機(jī)等硬件設(shè)備的核心程序。它從用戶那里接受命令并把命令送給內(nèi)核去執(zhí)行。
2. Linux Shell
Shell是系統(tǒng)的用戶界面,提供了用戶與內(nèi)核進(jìn)行交互操作的一種接口。它接收用戶輸入的命令并把它送入內(nèi)核去執(zhí)行。
實(shí)際上Shell是一個(gè)命令解釋器,它解釋由用戶輸入的命令并且把它們送到內(nèi)核。不僅如此,Shell有自己的編程語(yǔ)言用于對(duì)命令的編輯,它允許用戶編寫由shell命令組成的程序。Shell編程語(yǔ)言具有普通編程語(yǔ)言的很多特點(diǎn),比如它也有循環(huán)結(jié)構(gòu)和分支控制結(jié)構(gòu)等,用這種編程語(yǔ)言編寫的Shell程序與其他應(yīng)用程序具有同樣的效果。
Linux提供了像Microsoft Windows那樣的可視的命令輸入界面--X Window的圖形用戶界面(GUI)。它提供了很多窗口管理器,其操作就象Windows一樣,有窗口、圖標(biāo)和菜單,所有的管理都是通過鼠標(biāo)控制?,F(xiàn)在比較流行的窗口管理器是KDE和GNOME。
每個(gè)Linux系統(tǒng)的用戶可以擁有他自己的用戶界面或Shell,用以滿足他們自己專門的Shell需要。
同Linux本身一樣,Shell也有多種不同的版本。目前主要有下列版本的Shell:
Bourne Shell:是貝爾實(shí)驗(yàn)室開發(fā)的。
BASH:是GNU的Bourne Again Shell,是GNU操作系統(tǒng)上默認(rèn)的shell。
Korn Shell:是對(duì)Bourne SHell的發(fā)展,在大部分內(nèi)容上與Bourne Shell兼容。
C Shell:是SUN公司Shell的BSD版本。
3. Linux文件結(jié)構(gòu)
文件結(jié)構(gòu)是文件存放在磁盤等存儲(chǔ)設(shè)備上的組織方法。主要體現(xiàn)在對(duì)文件和目錄的組織上。目錄提供了管理文件的一個(gè)方便而有效的途徑。我們能夠從一個(gè)目錄切換到另一個(gè)目錄,而且可以設(shè)置目錄和文件的權(quán)限,設(shè)置文件的共享程度。
使用Linux,用戶可以設(shè)置目錄和文件的權(quán)限,以便允許或拒絕其他人對(duì)其進(jìn)行訪問。Linux目錄采用多級(jí)樹形結(jié)構(gòu),圖1.1表示了這種樹形等級(jí)結(jié)構(gòu)。用戶可以瀏覽整個(gè)系統(tǒng),可以進(jìn)入任何一個(gè)已授權(quán)進(jìn)入的目錄,訪問那里的文件。
文件結(jié)構(gòu)的相互關(guān)聯(lián)性使共享數(shù)據(jù)變得容易,幾個(gè)用戶可以訪問同一個(gè)文件。Linux是一個(gè)多用戶系統(tǒng),操作系統(tǒng)本身的駐留程序存放在以根目錄開始的專用目錄中,有時(shí)被指定為系統(tǒng)目錄。圖1.1中那些根目錄下的目錄就是系統(tǒng)目錄。
內(nèi)核,Shell和文件結(jié)構(gòu)一起形成了基本的操作系統(tǒng)結(jié)構(gòu)。它們使得用戶可以運(yùn)行程序,管理文件以及使用系統(tǒng)。此外,Linux操作系統(tǒng)還有許多被稱為實(shí)用工具的程序,輔助用戶完成一些特定的任務(wù)。
4. Linux實(shí)用工具
標(biāo)準(zhǔn)的Linux系統(tǒng)都有一套叫做實(shí)用工具的程序,它們是專門的程序,例如編輯器、執(zhí)行標(biāo)準(zhǔn)的計(jì)算操作等。用戶也可以產(chǎn)生自己的工具。
實(shí)用工具可分三類:
編輯器:用于編輯文件。
過濾器:用于接收數(shù)據(jù)并過濾數(shù)據(jù)。
交互程序:允許用戶發(fā)送信息或接收來自其他用戶的信息。Linux的編輯器主要有:Ed、Ex、Vi和Emacs。Ed和Ex是行編輯器,Vi和Emacs是全屏幕編輯器。
Linux的過濾器(Filter)讀取從用戶文件或其他地方的輸入,檢查和處理數(shù)據(jù),然后輸出結(jié)果。從這個(gè)意義上說,它們過濾了經(jīng)過它們的數(shù)據(jù)。Linux有不同類型的過濾器,一些過濾器用行編輯命令輸出一個(gè)被編輯的文件。另外一些過濾器是按模式尋找文件并以這種模式輸出部分?jǐn)?shù)據(jù)。還有一些執(zhí)行字處理操作,檢測(cè)一個(gè)文件中的格式,輸出一個(gè)格式化的文件。 過濾器的輸入可以是一個(gè)文件,也可以是用戶從鍵盤鍵入的數(shù)據(jù),還可以是另一個(gè)過濾器的輸出。過濾器可以相互連接,因此,一個(gè)過濾器的輸出可能是另一個(gè)過濾器的輸入。在有些情況下,用戶可以編寫自己的過濾器程序。
交互程序是用戶與機(jī)器的信息接口。Linux是一個(gè)多用戶系統(tǒng),它必須和所有用戶保持聯(lián)系。信息可以由系統(tǒng)上的不同用戶發(fā)送或接收。信息的發(fā)送有兩種方式,一種方式是與其他用戶一對(duì)一地鏈接進(jìn)行對(duì)話,另一種是一個(gè)用戶對(duì)多個(gè)用戶同時(shí)鏈接進(jìn)行通訊,即所謂廣播式通訊。