Linux 內核是如何工作的? Linux內核剖析解釋

Linux 內核就像一座橋樑,可以實現應用程序和硬件之間的計算機通信並管理系統資源。 Linus Torvalds 使用 C 和 Assembly 開發了 Linux 內核,從而成功地創建了一個輕量級和可移植的內核,該內核作為開源發布給公眾。

您可以在許多不同的領域看到 Linux 內核,例如太空、計算機、智能手錶、手機、機器人和健康。 但是你有沒有想過 Linux 內核在底層是如何工作的?

在 Linux 中使用硬件

Linux 內核首先控制著當你打開電腦時,哪些硬件將以何種方式運行。 此外,編程接口使高端軟件控製成為可能。 舉一個這些控件的例子,您可能會看到有關安裝在主板插槽中的硬件的信息,並從這些詳細信息中受益。

此外,這個編程接口提供了一個抽象層。 例如,如果您想與朋友進行視頻聊天,您將需要一個網絡攝像頭。 抽象層使您使用的軟件可以使用此網絡攝像頭,無論其品牌和型號如何。 這裡的軟件只能使用Linux存在的接口。 Linux 內核將此接口的函數調用轉換為網絡攝像頭所需的實際硬件命令。

使用/proc/系統虛擬文件系統,Linux 內核可以導出有關它檢測到的硬件的詳細信息。 您可以在下面看到一些用於此目的的工具以及它們導出的設備和卡:

  • lspci: 用於 PCI 設備
  • : 適用於 USB 設備
  • 蚯蚓: 適用於 PCMCIA 卡

如您所見,上面屏幕截圖中的 Linux 發行版正在 VirtualBox 上運行。 但是,您有機會看到很多信息,例如 VGA、USB 驅動程序、橋接器和 SATA 驅動程序。

您還可以使用-v參數以獲得更詳細的信息。

在 Linux 內核中,應用程序通常通過存在於/發展目錄。 這些特殊文件代表磁盤驅動器和其他物理設備。 像這樣的文件/dev/hda,/dev/sdc,/dev/sdc3,/開發/輸入/鼠標0開發/snd/*是這些特殊文件的示例。

Linux文件系統管理

文件系統是 Linux 內核中最著名的組件之一。 Linux 文件系統是其最大的優勢之一。 Linux 系統上的所有文件都集中在一個分支中。 用戶可以使用此層次結構到達所需的位置。

此層次結構的起點是根目錄(/)。 其他子目錄在根目錄下。 最常用的子目錄/是他/家目錄。 該子目錄包含其他子目錄,每個目錄都有存儲實際數據的文件。

例如,您可以考慮桌面上的文本文件。 如果您創建一個名為helloworld.txt在您的桌面上,您可以將其稱為/home/muo/Desktop/helloworld.txt. 的例子/muo當然,這裡會有所不同。 因為這個子目錄的名字取決於你當前用戶的名字。 使用這個命名系統,Linux 內核可以在磁盤上存在的真實存儲和物理存儲之間進行轉換。

此外,Linux 內核可以集成來自多個磁盤的數據。 這就是安裝系統發揮作用的地方。 它使用根系統中的一個磁盤並將其他磁盤安裝到層次結構中的現有目錄。 然後將其他磁盤放置在安裝點下方。 這允許用戶存儲/家第二個硬盤驅動器上的目錄,該目錄還包含其他子目錄。

當您將磁盤掛載到/家目錄,您可以從正常位置訪問這些目錄。 所以路徑像/home/muo/Desktop/helloworld.txt繼續工作

您可以使用以下命令查看系統上文件之間的掛載點會發現領域。

對於許多文件系統格式,您可以將數據物理存儲在磁盤上。 Linux 中最著名的是分機2,分機3分機4文件系統格式。 但是,還有許多其他文件系統格式。 無論哪種情況,您都必須在掛載文件系統之前對其進行格式化。 您可以使用類似的命令mkfs.ext3(mkfs 代表 make 文件系統,而 ext3 是文件系統)為此。

這些命令接受您要格式化的設備文件的路徑作為參數。 這是一種破壞性操作,如果您不想刪除或恢復文件系統,則應謹慎使用。

除此之外,還有Linux內核使用的NFS等網絡文件系統。 NFS 是一種網絡文件系統,其中數據不存儲在本地驅動器上。 使用 NFS,數據通過網絡傳輸到存儲數據的服務器。 由於數據將在服務器上,用戶不必經常處理它。 他們也可以像往常一樣使用傳統的 Linux 分層文件系統。

共享功能操作

所有Linux系統軟件都有共同的功能。 這就是為什麼這些函數是 Linux 內核的核心。 例如,當打開一個文件時,您可以只用文件名打開它,而無需知道文件的物理存儲位置以及它將使用哪些功能和操作。 所有這些功能都已經存在於內核中。

您可以將文件存儲在硬盤驅動器上,將其拆分到多個硬盤驅動器上,甚至將其保存在遠程服務器上。 在這種情況下,共享文件通信功能很重要。 無論數據如何移動,應用程序都會交換數據。 共享通信功能用於執行這些數據交換。 這種移動可以通過無線網絡,甚至是固定電話線。

Linux 中的進程管理

對內存中的數據或信息進行操作的程序的活動實例稱為進程。 Linux 內核的工作是生成和跟踪這些內存區域。 內核為正在運行的程序分配內存,並將可執行代碼從文件系統加載到內存中。 緊接著,內核執行代碼。

Linux 內核支持多任務處理。 它能夠同時運行多個進程。 但是,在給定的時間段內只有一筆交易。 但是,Linux 內核將時間分成小塊,因此每個過程都是按順序執行的。

因為這些小時間片以毫秒為增量,所以它們只在特定時間處於活動狀態,其餘時間處於非活動狀態。 Linux 內核在這裡的工作是通過一次運行多個進程來最大化性能。

如果時間間隔太長,正在運行的應用程序可能不會像您希望的那樣響應。 如果截止日期太短,任務更改可能會出現問題。 根據進程的優先級,此處所需的時間間隔會有所不同。 您之前可能聽說過高優先級進程和低優先級進程。 這是 Linux 內核控制的功能之一。

這種解釋並不總是正確的。 真正的限制是每個處理器內核一次只能有一個工作進程。 多處理器系統允許多個進程並行運行。 一個基本系統幾乎總是有幾十個進程在運行。

Linux 上的訪問權限

與其他操作系統一樣,您可以在 Linux 系統上創建許多用戶。 在這種情況下,有一個支持單個用戶和組的權限管理系統。 這就是文件和用戶權限發揮作用的地方。

Linux 內核管理數據並檢查每個進程的必要權限。 例如,如果您嘗試打開一個文件,內核必鬚根據訪問權限檢查進程 ID。 如果內核檢查並看到您有權限,它將打開該文件。

Linux 內核控制一切

如您所見,Linux 內核監控從文件的安全性到創建用戶和從 Internet 下載文件的所有內容。 一切都按照一定的順序。 每個用戶都有權利。 Linux 內核管理進程和時隙以獲得最佳性能。

此外,文件系統是區分 Linux 內核與其他操作系統的最重要特徵之一,它非常重要。 Linux 不是一個隱藏的盒子。 相反,所有文件和源代碼都可以訪問。 為了更好地理解 Linux 內核的實用性和強大的特性,您可以檢查 Linux 目錄系統層次結構。

相關文章