Linux系統結構


一、Linux系統結構

UNIX/Linux 系統可以粗糙地抽象為 3 個層次,底層是系統內核(Kernel);中間層是Shell層,即命令解釋層;高層則是應用層。

(1)內核層

內核層是 UNIX/Linux 系統的核心和基礎,它直接附着在硬件平台之上,控制和管理系統內各種資源(硬件資源和軟件資源),有效地組織進程的運行,從而擴展硬件的功能,提高資源的利用效率,為用戶提供方便、高效、安全、可靠的應用環境。

(2)Shell層

Shell 層是與用戶直接交互的界面。用戶可以在提示符下輸入命令行,由 Shell 解釋執行並輸出相應結果或者有關信息,所以我們也把 Shell 稱作命令解釋器,利用系統提供的豐富命令可以快捷而簡便地完成許多工作。

(3)應用層

應用層提供基於 X Window 協議的圖形環境。X Window 協議定義了一個系統所必須具備的功能。


二、深入探究Linux內核

Linux系統的核心是內核。內核控制着計算機系統上的所有硬件和軟件,在必要時分配硬件,並根據需要執行軟件。內核主要負責以下四種功能:

  • 系統內存管理
  • 軟件程序管理
  • 硬件設備管理
  • 文件系統管理

1. 系統內存管理

操作系統內核的主要功能之一就是內存管理。內核不僅管理服務器上的可用物理內存,還可以創建和管理虛擬內存(即實際並不存在的內存)。

內核通過硬盤上的存儲空間來實現虛擬內存,這塊區域稱為交換空間(swap space)。內核不斷地在交換空間和實際的物理內存之間反復交換虛擬內存中的內容。這使得系統以為它擁有比物理內存更多的可用內存。

內存存儲單元按組划分成很多塊,這些塊稱作頁面(page)。內核將每個內存頁面放在物理內存或交換空間。然后,內核會維護一個內存頁面表,指明哪些頁面位於物理內存內,哪些頁面被換到了磁盤上。


2. 軟件程序管理

Linux操作系統將運行中的程序稱為進程。進程可以在前台運行,將輸出顯示在屏幕上,也可以在后台運行,隱藏到幕后。內核控制着Linux系統如何管理運行在系統上的所有進程。

內核創建了第一個進程(稱為init進程)來啟動系統上所有其他進程。當內核啟動時,它會
將init進程加載到虛擬內存中。
內核在啟動任何其他進程時,都會在虛擬內存中給新進程分配一塊專有區域來存儲該進程用到的數據和代碼。

一些Linux發行版使用一個表來管理在系統開機時要自動啟動的進程。在Linux系統上,這個表通常位於專門文件/etc/inittab中。

另外一些系統(比如現在流行的Ubuntu Linux發行版)則采用/etc/init.d目錄,將開機時啟動
或停止某個應用的腳本放在這個目錄下。
這些腳本通過/etc/rcX.d目錄下的入口(entry)啟動,這里的X代表運行級(run level)。

Linux操作系統的init系統采用了運行級。運行級決定了init進程運行/etc/inittab文件或/etc/rcX.d目錄中定義好的某些特定類型的進程。 Linux操作系統有5個啟動運行級。

  • 運行級為1時,只啟動基本的系統進程以及一個控制台終端進程。我們稱之為單用戶模式。單用戶模式通常用來在系統有問題時進行緊急的文件系統維護。顯然,在這種模式下,僅有一個人(通常是系統管理員)能登錄到系統上操作數據。
  • 標准的啟動運行級是3。在這個運行級上,大多數應用軟件,比如網絡支持程序,都會啟動。另一個Linux中常見的運行級是5。在這個運行級上系統會啟動圖形化的X Window系統,允許用戶通過圖形化桌面窗口登錄系統。

可以使用ps命令查看當前運行在Linux系統上的進程。


3. 硬件設備管理

內核的另一職責是管理硬件設備。任何Linux系統需要與之通信的設備,都需要在內核代碼
中加入其驅動程序代碼。
驅動程序代碼相當於應用程序和硬件設備的中間人,允許內核與設備之間交換數據。在Linux內核中有兩種方法用於插入設備驅動代碼:

  • 編譯進內核的設備驅動代碼
  • 可插入內核的設備驅動模塊

以前,插入設備驅動代碼的唯一途徑是重新編譯內核。每次給系統添加新設備,都要重新編譯一遍內核代碼。隨着Linux內核支持的硬件設備越來越多,這個過程變得越來越低效。不過好在Linux開發人員設計出了一種更好的將驅動代碼插入運行中的內核的方法。

開發人員提出了內核模塊的概念。它允許將驅動代碼插入到運行中的內核而無需重新編譯內
核。同時,當設備不再使用時也可將內核模塊從內核中移走。
這種方式極大地簡化和擴展了硬件設備Linux上的使用。

Linux系統將硬件設備當成特殊的文件,稱為設備文件。設備文件有3種分類:

  • 字符型設備文件:指處理數據時每次只能處理一個字符的設備 ,比如大多數類型的調制解調器和
    終端 。
  • 塊設備文件: 指處理數據時每次能處理大塊數據的設備,比如硬盤。
  • 網絡設備文件:指采用數據包發送和接收數據的設備,包括各種網卡和一個特殊的回環設備。

4. 文件系統管理

不同於其他一些操作系統, Linux內核支持通過不同類型的文件系統從硬盤中讀寫數據。除
了自有的諸多文件系統外, Linux還支持從其他操作系統(比如Microsoft Windows)的文件
系統中讀寫數據。
內核必須在編譯時就加入對所有可能用到的文件系統的支持。下表列出了Linux系統用來讀寫數據的標准文件系統。

文件系統 描 述
ext Linux擴展文件系統,最早的Linux文件系統
ext2 第二擴展文件系統,在ext的基礎上提供了更多的功能
ext3 第三擴展文件系統,支持日志功能
ext4 第四擴展文件系統,支持高級日志功能
hpfs OS/2高性能文件系統
jfs IBM日志文件系統
iso9660 ISO 9660文件系統( CD-ROM)
nfs 網絡文件系統
ntfs 支持Microsoft NT文件系統
ufs BSD文件系統
vfat Windows 95文件系統( FAT32)

Linux服務器所訪問的所有硬盤都必須格式化成上表所列文件系統類型中的一種。



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM