Linux的結構和特性深入分析(轉)
Linux的結構和特性深入分析(轉)[@more@] 1. Linux核心
核心是系統的心臟,是執行程式和管理像磁碟和印表機等硬體裝置的核心程式。它從使用者那裡接受命令並把命令送給核心去執行。
2. Linux Shell
Shell是系統的使用者介面,提供了使用者與核心進行互動操作的一種介面。它接收使用者輸入的命令並把它送入核心去執行。
實際上Shell是一個命令直譯器,它解釋由使用者輸入的命令並且把它們送到核心。不僅如此,Shell有自己的程式語言用於對命令的編輯,它允許使用者編寫由shell命令組成的程式。Shell程式語言具有普通程式語言的很多特點,比如它也有迴圈結構和分支控制結構等,用這種程式語言編寫的Shell程式與其他應用程式具有同樣的效果。
Linux提供了像Microsoft Windows那樣的可視的命令輸入介面--X Window的圖形使用者介面(GUI)。它提供了很多視窗管理器,其操作就象Windows一樣,有視窗、圖示和選單,所有的管理都是透過滑鼠控制。現在比較流行的視窗管理器是KDE和GNOME。
每個Linux系統的使用者可以擁有他自己的使用者介面或Shell,用以滿足他們自己專門的Shell需要。
同Linux本身一樣,Shell也有多種不同的版本。目前主要有下列版本的Shell: Bourne Shell:是貝爾實驗室開發的。
BASH:是GNU的Bourne Again Shell,是GNU作業系統上預設的shell。
Korn Shell:是對Bourne SHell的發展,在大部分內容上與Bourne Shell相容。 C Shell:是SUN公司Shell的BSD版本。
3. Linux檔案結構
檔案結構是檔案存放在磁碟等儲存裝置上的組織方法。主要體現在對檔案和目錄的組織上。目錄提供了管理檔案的一個方便而有效的途徑。我們能夠從一個目錄切換到另一個目錄,而且可以設定目錄和檔案的許可權,設定檔案的共享程度。
使用Linux,使用者可以設定目錄和檔案的許可權,以便允許或拒絕其他人對其進行訪問。Linux目錄採用多級樹形結構,圖1.1表示了這種樹形等級結構。使用者可以瀏覽整個系統,可以進入任何一個已授權進入的目錄,訪問那裡的檔案。
檔案結構的相互關聯性使共享資料變得容易,幾個使用者可以訪問同一個檔案。Linux是一個多使用者系統,作業系統本身的駐留程式存放在以根目錄開始的專用目錄中,有時被指定為系統目錄。圖1.1中那些根目錄下的目錄就是系統目錄。
核心,Shell和檔案結構一起形成了基本的作業系統結構。它們使得使用者可以執行程式,管理檔案以及使用系統。此外,Linux作業系統還有許多被稱為實用工具的程式,輔助使用者完成一些特定的任務。
4. Linux實用工具
標準的Linux系統都有一套叫做實用工具的程式,它們是專門的程式,例如編輯器、執行標準的計算操作等。使用者也可以產生自己的工具。
實用工具可分三類:
編輯器:用於編輯檔案。
過濾器:用於接收資料並過濾資料。
互動程式:允許使用者傳送資訊或接收來自其他使用者的資訊。
Linux的編輯器主要有:Ed、Ex、Vi和Emacs。Ed和Ex是行編輯器,Vi和Emacs是全螢幕編輯器。
Linux的過濾器(Filter)讀取從使用者檔案或其他地方的輸入,檢查和處理資料,然後輸出結果。從這個意義上說,它們過濾了經過它們的資料。Linux有不同型別的過濾器,一些過濾器用行編輯命令輸出一個被編輯的檔案。另外一些過濾器是按模式尋找檔案並以這種模式輸出部分資料。還有一些執行字處理操作,檢測一個檔案中的格式,輸出一個格式化的檔案。 過濾器的輸入可以是一個檔案,也可以是使用者從鍵盤鍵入的資料,還可以是另一個過濾器的輸出。過濾器可以相互連線,因此,一個過濾器的輸出可能是另一個過濾器的輸入。在有些情況下,使用者可以編寫自己的過濾器程式。
互動程式是使用者與機器的資訊介面。Linux是一個多使用者系統,它必須和所有使用者保持聯絡。資訊可以由系統上的不同使用者傳送或接收。資訊的傳送有兩種方式,一種方式是與其他使用者一對一地連結進行對話,另一種是一個使用者對多個使用者同時連結進行通訊,即所謂廣播式通訊。
Linux作業系統在短短的幾年之內得到了非常迅猛的發展,這與Linux具有的良好特性是分不開的。Linux包含了Unix的全部功能和特性。簡單的說,Linux具有以下主要特性:
1 開放性
開放性是指系統遵循世界標準規範,特別是遵循開放系統互連(OSI)國際標準。凡遵循國際標準所開發的硬體和軟體,都能彼此相容,可方便地實現互連。
2 多使用者
多使用者是指系統資源可以被不同使用者各自擁有使用,即每個使用者對自己的資源(例如:檔案、裝置)有特定的許可權,互不影響。Linux和Unix都具有多使用者的特性。
3 多工
多工是現代計算機的最主要的一個特點。它是指計算機同時執行多個程式,而且各個程式的執行互相獨立。Linux系統排程每一個程式平等地訪問微處理器。由於CPU的處理速度非常快,其結果是,啟動的應用程式看起來好像在並行執行。事實上,從處理器執行一個應用程式中的一組指令到Linux排程微處理器再次執行這個程式之間只有很短的時間延遲,使用者是感覺不出來的。
4 良好的使用者介面
Linux向使用者提供了兩種介面:使用者介面和系統呼叫。Linux的傳統使用者介面是基於文字的命令列介面,即shell,它既可以聯機使用,又可存在檔案上離線使用。shell有很強的程式設計能力,使用者可方便地用它編制程式,從而為使用者擴充系統功能提供了更高階的手段。可程式設計Shell是指將多條命令組合在一起,形成一個Shell程式,這個程式可以單獨執行,也可以與其他程式同時執行。
系統呼叫給使用者提供程式設計時使用的介面。使用者可以在程式設計時直接使用系統提供的系統呼叫命令。系統透過這個介面為使用者程式提供低階、高效率的服務。
Linux還為使用者提供了圖形使用者介面。它利用滑鼠、選單、視窗、捲軸等設施,給使用者呈現一個直觀、易操作、互動性強的友好的圖形化介面。
5 裝置獨立性
裝置獨立性是指作業系統把所有外部裝置統一當作成檔案來看待,只要安裝它們的驅動程式,任何使用者都可以象使用檔案一樣,操縱、使用這些裝置,而不必知道它們的具體存在形式。
具有裝置獨立性的作業系統,透過把每一個外圍裝置看作一個獨立檔案來簡化增加新裝置的工作。當需要增加新裝置時、系統管理員就在核心中增加必要的連線。這種連線(也稱作裝置驅動程式)保證每次呼叫裝置提供服務時,核心以相同的方式來處理它們。當新的及更好的外設被開發並交付給使用者時,操作允許在這些裝置連線到核心後,就能不受限制地立即訪問它們。裝置獨立性的關鍵在於核心的適應能力。其他作業系統只允許一定數量或一定種類的外部裝置連線。而裝置獨立性的作業系統能夠容納任意種類及任意數量的裝置,因為每一個裝置都是透過其與核心的專用連線獨立進行訪問。
Linux是具有裝置獨立性的作業系統,它的核心具有高度適應能力,隨著更多的程式設計師加入Linux程式設計,會有更多硬體裝置加入到各種Linux核心和發行版本中。另外,由於使用者可以免費得到Linux的核心原始碼,因此,使用者可以修改核心原始碼,以便適應新增加的外部裝置。
6 供了豐富的網路功能
完善的內建網路是Linux的一大特點。 Linux在通訊和網路功能方面優於其他作業系統。其他作業系統不包含如此緊密地和核心結合在一起的連線網路的能力,也沒有內建這些聯網特性的靈活性。而Linux為使用者提供了完善的、強大的網路功能。
支援Internet是其網路功能之一。Linux免費提供了大量支援Internet的軟體,Internet是在Unix領域中建立並繁榮起來的,在這方面使用Linux是相當方便的,使用者能用Linux與世界上的其他人透過Internet網路進行通訊。
檔案傳輸是其網路功能之二。使用者能透過一些Linux命令完成內部資訊或檔案的傳輸。
遠端訪問是其網路功能之三。Linux不僅允許進行檔案和程式的傳輸,它還為系統管理員和技術人員提供了訪問其他系統的視窗。透過這種遠端訪問的功能,一位技術人員能夠有效地為多個系統服務,即使那些系統位於相距很遠的地方。
7 可靠的系統安全
Linux採取了許多安全技術措施,包括對讀、寫進行許可權控制、帶保護的子系統、審計跟蹤、核心授權等,這為網路多使用者環境中的使用者提供了必要的安全保障。
8 良好的可移植性
可移植性是指將作業系統從一個平臺轉移到另一個平臺使它仍然能按其自身的方式執行的能力。
Linux是一種可移植的作業系統,能夠在從微型計算機到大型計算機的任何環境中和任何平臺上執行。可移植性為執行Linux的不同計算機平臺與其他任何機器進行準確而有效的通訊提供了手段,不需要另外增加特殊的和昂貴的通訊介面。
核心是系統的心臟,是執行程式和管理像磁碟和印表機等硬體裝置的核心程式。它從使用者那裡接受命令並把命令送給核心去執行。
2. Linux Shell
Shell是系統的使用者介面,提供了使用者與核心進行互動操作的一種介面。它接收使用者輸入的命令並把它送入核心去執行。
實際上Shell是一個命令直譯器,它解釋由使用者輸入的命令並且把它們送到核心。不僅如此,Shell有自己的程式語言用於對命令的編輯,它允許使用者編寫由shell命令組成的程式。Shell程式語言具有普通程式語言的很多特點,比如它也有迴圈結構和分支控制結構等,用這種程式語言編寫的Shell程式與其他應用程式具有同樣的效果。
Linux提供了像Microsoft Windows那樣的可視的命令輸入介面--X Window的圖形使用者介面(GUI)。它提供了很多視窗管理器,其操作就象Windows一樣,有視窗、圖示和選單,所有的管理都是透過滑鼠控制。現在比較流行的視窗管理器是KDE和GNOME。
每個Linux系統的使用者可以擁有他自己的使用者介面或Shell,用以滿足他們自己專門的Shell需要。
同Linux本身一樣,Shell也有多種不同的版本。目前主要有下列版本的Shell: Bourne Shell:是貝爾實驗室開發的。
BASH:是GNU的Bourne Again Shell,是GNU作業系統上預設的shell。
Korn Shell:是對Bourne SHell的發展,在大部分內容上與Bourne Shell相容。 C Shell:是SUN公司Shell的BSD版本。
3. Linux檔案結構
檔案結構是檔案存放在磁碟等儲存裝置上的組織方法。主要體現在對檔案和目錄的組織上。目錄提供了管理檔案的一個方便而有效的途徑。我們能夠從一個目錄切換到另一個目錄,而且可以設定目錄和檔案的許可權,設定檔案的共享程度。
使用Linux,使用者可以設定目錄和檔案的許可權,以便允許或拒絕其他人對其進行訪問。Linux目錄採用多級樹形結構,圖1.1表示了這種樹形等級結構。使用者可以瀏覽整個系統,可以進入任何一個已授權進入的目錄,訪問那裡的檔案。
檔案結構的相互關聯性使共享資料變得容易,幾個使用者可以訪問同一個檔案。Linux是一個多使用者系統,作業系統本身的駐留程式存放在以根目錄開始的專用目錄中,有時被指定為系統目錄。圖1.1中那些根目錄下的目錄就是系統目錄。
核心,Shell和檔案結構一起形成了基本的作業系統結構。它們使得使用者可以執行程式,管理檔案以及使用系統。此外,Linux作業系統還有許多被稱為實用工具的程式,輔助使用者完成一些特定的任務。
4. Linux實用工具
標準的Linux系統都有一套叫做實用工具的程式,它們是專門的程式,例如編輯器、執行標準的計算操作等。使用者也可以產生自己的工具。
實用工具可分三類:
編輯器:用於編輯檔案。
過濾器:用於接收資料並過濾資料。
互動程式:允許使用者傳送資訊或接收來自其他使用者的資訊。
Linux的編輯器主要有:Ed、Ex、Vi和Emacs。Ed和Ex是行編輯器,Vi和Emacs是全螢幕編輯器。
Linux的過濾器(Filter)讀取從使用者檔案或其他地方的輸入,檢查和處理資料,然後輸出結果。從這個意義上說,它們過濾了經過它們的資料。Linux有不同型別的過濾器,一些過濾器用行編輯命令輸出一個被編輯的檔案。另外一些過濾器是按模式尋找檔案並以這種模式輸出部分資料。還有一些執行字處理操作,檢測一個檔案中的格式,輸出一個格式化的檔案。 過濾器的輸入可以是一個檔案,也可以是使用者從鍵盤鍵入的資料,還可以是另一個過濾器的輸出。過濾器可以相互連線,因此,一個過濾器的輸出可能是另一個過濾器的輸入。在有些情況下,使用者可以編寫自己的過濾器程式。
互動程式是使用者與機器的資訊介面。Linux是一個多使用者系統,它必須和所有使用者保持聯絡。資訊可以由系統上的不同使用者傳送或接收。資訊的傳送有兩種方式,一種方式是與其他使用者一對一地連結進行對話,另一種是一個使用者對多個使用者同時連結進行通訊,即所謂廣播式通訊。
Linux作業系統在短短的幾年之內得到了非常迅猛的發展,這與Linux具有的良好特性是分不開的。Linux包含了Unix的全部功能和特性。簡單的說,Linux具有以下主要特性:
1 開放性
開放性是指系統遵循世界標準規範,特別是遵循開放系統互連(OSI)國際標準。凡遵循國際標準所開發的硬體和軟體,都能彼此相容,可方便地實現互連。
2 多使用者
多使用者是指系統資源可以被不同使用者各自擁有使用,即每個使用者對自己的資源(例如:檔案、裝置)有特定的許可權,互不影響。Linux和Unix都具有多使用者的特性。
3 多工
多工是現代計算機的最主要的一個特點。它是指計算機同時執行多個程式,而且各個程式的執行互相獨立。Linux系統排程每一個程式平等地訪問微處理器。由於CPU的處理速度非常快,其結果是,啟動的應用程式看起來好像在並行執行。事實上,從處理器執行一個應用程式中的一組指令到Linux排程微處理器再次執行這個程式之間只有很短的時間延遲,使用者是感覺不出來的。
4 良好的使用者介面
Linux向使用者提供了兩種介面:使用者介面和系統呼叫。Linux的傳統使用者介面是基於文字的命令列介面,即shell,它既可以聯機使用,又可存在檔案上離線使用。shell有很強的程式設計能力,使用者可方便地用它編制程式,從而為使用者擴充系統功能提供了更高階的手段。可程式設計Shell是指將多條命令組合在一起,形成一個Shell程式,這個程式可以單獨執行,也可以與其他程式同時執行。
系統呼叫給使用者提供程式設計時使用的介面。使用者可以在程式設計時直接使用系統提供的系統呼叫命令。系統透過這個介面為使用者程式提供低階、高效率的服務。
Linux還為使用者提供了圖形使用者介面。它利用滑鼠、選單、視窗、捲軸等設施,給使用者呈現一個直觀、易操作、互動性強的友好的圖形化介面。
5 裝置獨立性
裝置獨立性是指作業系統把所有外部裝置統一當作成檔案來看待,只要安裝它們的驅動程式,任何使用者都可以象使用檔案一樣,操縱、使用這些裝置,而不必知道它們的具體存在形式。
具有裝置獨立性的作業系統,透過把每一個外圍裝置看作一個獨立檔案來簡化增加新裝置的工作。當需要增加新裝置時、系統管理員就在核心中增加必要的連線。這種連線(也稱作裝置驅動程式)保證每次呼叫裝置提供服務時,核心以相同的方式來處理它們。當新的及更好的外設被開發並交付給使用者時,操作允許在這些裝置連線到核心後,就能不受限制地立即訪問它們。裝置獨立性的關鍵在於核心的適應能力。其他作業系統只允許一定數量或一定種類的外部裝置連線。而裝置獨立性的作業系統能夠容納任意種類及任意數量的裝置,因為每一個裝置都是透過其與核心的專用連線獨立進行訪問。
Linux是具有裝置獨立性的作業系統,它的核心具有高度適應能力,隨著更多的程式設計師加入Linux程式設計,會有更多硬體裝置加入到各種Linux核心和發行版本中。另外,由於使用者可以免費得到Linux的核心原始碼,因此,使用者可以修改核心原始碼,以便適應新增加的外部裝置。
6 供了豐富的網路功能
完善的內建網路是Linux的一大特點。 Linux在通訊和網路功能方面優於其他作業系統。其他作業系統不包含如此緊密地和核心結合在一起的連線網路的能力,也沒有內建這些聯網特性的靈活性。而Linux為使用者提供了完善的、強大的網路功能。
支援Internet是其網路功能之一。Linux免費提供了大量支援Internet的軟體,Internet是在Unix領域中建立並繁榮起來的,在這方面使用Linux是相當方便的,使用者能用Linux與世界上的其他人透過Internet網路進行通訊。
檔案傳輸是其網路功能之二。使用者能透過一些Linux命令完成內部資訊或檔案的傳輸。
遠端訪問是其網路功能之三。Linux不僅允許進行檔案和程式的傳輸,它還為系統管理員和技術人員提供了訪問其他系統的視窗。透過這種遠端訪問的功能,一位技術人員能夠有效地為多個系統服務,即使那些系統位於相距很遠的地方。
7 可靠的系統安全
Linux採取了許多安全技術措施,包括對讀、寫進行許可權控制、帶保護的子系統、審計跟蹤、核心授權等,這為網路多使用者環境中的使用者提供了必要的安全保障。
8 良好的可移植性
可移植性是指將作業系統從一個平臺轉移到另一個平臺使它仍然能按其自身的方式執行的能力。
Linux是一種可移植的作業系統,能夠在從微型計算機到大型計算機的任何環境中和任何平臺上執行。可移植性為執行Linux的不同計算機平臺與其他任何機器進行準確而有效的通訊提供了手段,不需要另外增加特殊的和昂貴的通訊介面。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617542/viewspace-946605/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 深入分析 Linux作業系統的核心連結串列(轉)Linux作業系統
- 【React深入】深入分析虛擬DOM的渲染原理和特性React
- 深入分析LInux核心連結串列Linux
- 轉:linux io排程深入分析Linux
- Linux目錄結構-轉Linux
- swift物件導向特性——類和結構體Swift物件結構體
- ORACLE例項的程式結構和記憶體結構(轉)Oracle記憶體
- MySQL探祕(三):InnoDB的記憶體結構和特性MySql記憶體
- Oracle體系結構:記憶體結構和程式結構(轉)Oracle記憶體
- Linux核心資料結構(轉)Linux資料結構
- SQL Server Page資料庫結構深入分析SQLServer資料庫
- C++資料結構和pb資料結構的轉換C++資料結構
- Linux Data Structures(Linux資料結構)(轉)LinuxStruct資料結構
- Go高階特性 15 | 執行時反射:字串和結構體之間轉換Go反射字串結構體
- 深入分析Linux系統深度安全加固(轉)Linux
- linux文件和目錄結構Linux
- 轉抄:Oracle資料塊深入分析總結Oracle
- 深入 Linux PAM 體系結構(轉)Linux
- linux磁碟結構及分割槽(轉)Linux
- linux核心資料結構之kfifo【轉】Linux資料結構
- 談linux磁碟結構及分割槽(轉)Linux
- JavaScript中的程式結構和分支結構JavaScript
- CLASSPATH 以及包和目錄結構的關係 (轉)
- 教你玩轉Linux—系統目錄結構Linux
- Python中資料結構與特性Python資料結構
- ES6新特性:JavaScript中Set和WeakSet型別的資料結構JavaScript型別資料結構
- 簡述 Linux 檔案系統的目錄結構(轉)Linux
- linux的目錄結構Linux
- 六種 Linux 桌面的最佳特性和最差特性Linux
- [轉]XML檔案結構和基本語法XML
- TS基本概念和資料結構(轉資料結構
- Windows 98 部分特性和功能的使用(轉)Windows
- ES6新特性總結之解構賦值和字串模板賦值字串
- bbs的資料結構和儲存過程(二) (轉)資料結構儲存過程
- bbs的資料結構和儲存過程(一) (轉)資料結構儲存過程
- bbs的資料結構和儲存過程(三) (轉)資料結構儲存過程
- C#結構體和位元組陣列的轉換C#結構體陣列
- Linux系統目錄結構和ls命令Linux