在本文中,我將通俗地介紹 Linux 內核。這一切都始於年輕的 Linus Torvalds 將他的操作系統編程作為一種愛好。

他允許其他程序員和計算機極客嘗試代碼以提高質量和性能。經過幾個月的翻新 Linux 發射,發射。

Linus 設計的 Linux 內核 操作系統大腦內核最初包含數千行代碼,但最終在某些版本中達到了數百萬行。作為開源軟件,任何人都可以隨時在互聯網上訪問它。

什麼是 Linux 內核?

簡單地說,Linux 內核是用戶應用程序和底層硬件之間通信的橋樑。一般來說,有不同類型的內核。 Linux 內核是一個單片內核。也就是說,操作系統的幾乎所有工作都由內核自己處理。

單片內核

在上圖中,您可以看到單片內核管理應用程序和硬件之間的整個通信。 由於 Linux 內核是用 C 編程語言編寫的,因此 GCC(GNU Compiler Collection)是所有內核源代碼的默認編譯器。

Linux內核在哪裡?

由於 Linux 內核是代碼的一部分,它必須存儲在文件系統中的某個位置,以便每次系統重新啟動時內核都會加載到內存中。

在 Debian/Ubuntu 系統上,Linux 內核位於 /boot 目錄中。 要訪問 Linux 內核,您需要知道 Linux 內核的當前版本。您可以使用基本的 uname -r 命令訪問 Linux 內核版本。

Linux 內核究竟做了什麼?

Linux內核簡歷中不乏技能和職責。 管理 Linux 系統的所有功能。 Linux 內核完成從調度進程到為應用程序提供資源的所有工作。

讓我們快速瀏覽一下 Linux 內核的一些基本行為。

1、Linux內核是內存管理器

Linux 內核管理內存。分配和釋放物理內存是基本內核工作的一部分。我有一個用於存儲地址映射的三級頁表。頁是內存的基本單位,通常大小為 4096 字節。

大多數內核任務通過系統調用發生。例如,進行系統調用以獲取內存中的頁面大小。

#include<unistd.h>
#include<stdio.h>

int main(){

	// Performing a system call
	int size = getpagesize();

	// Printing the page size
	printf("%dn", size);
	return 1;
}

輸出:

4096

在上面的例子中 getpagesize() 預定義的系統調用。

內存管理單元負責分頁和交換虛擬內存中的頁面。分配給進程的虛擬內存是完全獨立的,並為惡意程序提供了一層保護。

您可以使用 htop 和 atop 等 Linux 命令來監控每個正在運行的進程的內存相關信息。

atop 命令的內存特定輸出

2.內核管理流程

系統上運行的所有程序都是進程。內核管理每個進程的創建、執行和刪除。系統調用如 fork() 什麼時候 exec() 多處理環境中的強大工具。

系統中的所有進程都必須由 CPU 運行。 進程調度器 這是流程管理的一個組成部分。有多種可以實現的調度算法。

Linux 內核還有另一個責任。 IPC(進程間通信)..諸如管道和信號量之類的機制由內核調整以用於進程之間的通信。

您可以運行以下命令來快速查看所有正在運行的進程和屬性,例如調度優先級和 CPU 利用率。 htop 終端命令。

Linux內核進程Htophtop 命令的進程相關輸出。

有關 Linux 內核的更多信息,請參閱 David A. Rustling 的書。

安裝特定的 Linux 內核

這聽起來可能很可疑,但用戶可以用更新或舊版本替換內核。執行此任務的步驟過於復雜,無法涵蓋本文中的所有內容。因此,它提供了在您的系統上安裝特定內核的快速指南。

第一個任務是下載內核文件。 您可以從官方網站下載 Linux 內核文件。下載完成後,需要解壓並配置文件。

文件結構如下: make 命令。通過運行 make menuconfig, 顯示可用於選擇新內核模塊和功能的窗口。這個壓倒性過程的捷徑是將當前配置文件複製到從正在運行的內核中提取的目錄中。

cp /boot/config-$(uname -r) .config

筆記: 將正在運行的命令提升為 root 訪問權限。某些命令可能不適用於用戶級訪問。可以使用 sudo -ssudo su 完成任務。

上面的命令基本上是將存在於內核運行的引導目錄中的配置文件複製到一個新的配置文件中。 .config..

下一步是安裝特定的工具和編譯器來編譯內核文件。 Debian / Ubuntu 用戶可以這樣做:

sudo apt install build-essential libncurses-dev bison flex libssl-dev libelf-dev

使用內核映像 make 該命令位於包含新內核文件的目錄中。您無需按下緊急按鈕,因為編譯內核需要時間。

編譯完成後,需要安裝模塊和內核鏡像。這可以使用以下命令在一個命令中完成:

make install_modules && make install

第一個子命令安裝內核模塊,第二個子命令安裝完整的內核,並在其中創建圖像和其他重要文件。 /boot 目錄。

最後一步是將當前內核版本切換到新安裝的內核版本。為此,請執行以下操作:

sudo update-initramfs -c -k <NEW_VERSION_NUMBER>

版本號必須與新安裝的鏡像文件名相同。其次是 update-grub 完成當前內核版本的命令。

已進行所有更改。重新啟動系統 reboot 在終端。

結論是

Linux 內核是 Linux 操作系統的動力源。理解這個概念會讓你更接近於理解 Linux。我希望這篇文章很容易理解。如果您有任何問題或反饋,請在下面發表評論。

參考

Linux 內核 – David A. Gosling

Linux 內核——作者 Andries Brouwer