Linux內(nèi)核淺入淺出
01 前言
擁有超過1300萬行的代碼,Linux內(nèi)核是世界上最大的開源項目之一,但是Linux內(nèi)核是什么,它用于什么?且聽我們慢慢道來。
02 什么是Linux內(nèi)核?
Linux內(nèi)核是Linux操作系統(tǒng)的核心,指的是一個由 Linus Torvalds 負(fù)責(zé)維護(hù),提供硬件抽象層、硬盤及文件系統(tǒng)控制及多任務(wù)功能的系統(tǒng)核心程序。
Linux操作系統(tǒng)就是由Linux內(nèi)核與各種常用軟件的集合產(chǎn)品。
03 Linux內(nèi)核版本命名規(guī)則
Linux內(nèi)核版本有兩種:穩(wěn)定版和開發(fā)版 。
Linux內(nèi)核版本號由3個數(shù)字組成:r.x.y
- r:目前發(fā)布的內(nèi)核主版本。
- x:偶數(shù)表示穩(wěn)定版本;奇數(shù)表示開發(fā)中版本。
- y:錯誤修補的次數(shù)。
我們在主機上執(zhí)行uname -a,
uname -a :顯示系統(tǒng)名、節(jié)點名稱、操作系統(tǒng)的發(fā)行版號、內(nèi)核版本等等。
- 系統(tǒng)名:
Linux
- 節(jié)點名稱:
qll
- 操作系統(tǒng)的發(fā)行版號:
3.10.0-1127.el7.x86_64
命名規(guī)則:
主版本號:3
次版本號:10【奇數(shù)為開發(fā)版本,偶數(shù)為穩(wěn)定版本】
修訂版本號:0【修改的次數(shù)】
此次版本的第N次修改:1127
el7:redhat enterprise linux 7
x86_64:編譯框架(64位)
- 內(nèi)核版本:
#1 SMP Tue Mar 31 23:36:51 UTC 2020
- 硬件平臺:
x86_64
- 機器硬件名:
x86_64
- 系統(tǒng)處理器的體系結(jié)構(gòu):
x86_64
- 操作系統(tǒng):
GNU/Linux
Linux 內(nèi)核版本命名在不同時期有不同的命名規(guī)范,其中在2.X版本中,X如果為奇數(shù)表示開發(fā)版、X如果為偶數(shù)表示穩(wěn)定版,從2.6.X以及3.X,內(nèi)核版本命名就沒有嚴(yán)格的約定規(guī)范了。
04 Linux內(nèi)核的主要功能
Linux內(nèi)核是整個Linux功能體現(xiàn)的核心,它是用C語言編寫的,符合Posix標(biāo)準(zhǔn)。
Linux內(nèi)核主要功能包括進(jìn)程管理、內(nèi)存管理、文件管理、設(shè)備管理、網(wǎng)絡(luò)管理等。
- 進(jìn)程管理:
進(jìn)程是在計算機系統(tǒng)中資源分配的最小單元。內(nèi)核負(fù)責(zé)創(chuàng)建和銷毀進(jìn)程,而且由調(diào)度程序采取合適的調(diào)度策略,實現(xiàn)進(jìn)程間的合理且實時的處理器資源的共享。從而內(nèi)核的進(jìn)程管理活動實現(xiàn)了多個進(jìn)程在一個或多個處理器上的抽象。內(nèi)核還負(fù)責(zé)實現(xiàn)不同進(jìn)程間、進(jìn)程和其他部件之間的通信。
- 內(nèi)存管理:
內(nèi)存是計算機系統(tǒng)中主要的資源。內(nèi)核使得多個進(jìn)程安全而合理地共享內(nèi)存資源,為每個進(jìn)程在有限的物理資源上建立一個虛擬地址空間。內(nèi)存管理部分代碼可分為硬件無關(guān)部分和硬件有關(guān)部分:硬件無關(guān)部分實現(xiàn)進(jìn)程和內(nèi)存之間的地址映射等功能;硬件有關(guān)部分實現(xiàn)不同體系結(jié)構(gòu)上的內(nèi)存管理相關(guān)功能并為內(nèi)存管理提供與硬件無關(guān)的虛擬接口。
- 文件管理:
在Linux系統(tǒng)中的任何一個概念幾乎都可以看做一個文件。內(nèi)核在非結(jié)構(gòu)化的硬件上建立了一個結(jié)構(gòu)化的虛擬文件系統(tǒng),隱藏了各種硬件的具體細(xì)節(jié),從而在整個系統(tǒng)的幾乎所有機制中使用文件的抽象。Linux在不同物理介質(zhì)或虛擬結(jié)構(gòu)上支持?jǐn)?shù)十種文件系統(tǒng)。例如,Linux支持磁盤的標(biāo)準(zhǔn)文件系統(tǒng)ext3和虛擬的特殊文件系統(tǒng)。
- 設(shè)備管理:
Linux系統(tǒng)中幾乎每個系統(tǒng)操作終都映射到一個或多個物理設(shè)備上。除了處理器、內(nèi)存等少數(shù)的硬件資源之外,任何一種設(shè)備控制操作都由設(shè)備特定的驅(qū)動代碼來進(jìn)行。內(nèi)核中必須提供系統(tǒng)中可能要操作的每一種外設(shè)的驅(qū)動。
- 網(wǎng)絡(luò)管理:
內(nèi)核支持各種網(wǎng)絡(luò)標(biāo)準(zhǔn)協(xié)議和網(wǎng)絡(luò)設(shè)備。網(wǎng)絡(luò)管理部分可分為網(wǎng)絡(luò)協(xié)議棧和網(wǎng)絡(luò)設(shè)備驅(qū)動程序。網(wǎng)絡(luò)協(xié)議棧負(fù)責(zé)實現(xiàn)每種可能的網(wǎng)絡(luò)傳輸協(xié)議(TCP/IP協(xié)議等);網(wǎng)絡(luò)設(shè)備驅(qū)動程序負(fù)責(zé)與各種網(wǎng)絡(luò)硬件設(shè)備或虛擬設(shè)備進(jìn)行通信。
本文轉(zhuǎn)載自微信公眾號「開源Linux」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請聯(lián)系開源Linux公眾號。