博客專欄

EEPW首頁(yè) > 博客 > Linux內(nèi)核全面介紹

Linux內(nèi)核全面介紹

發(fā)布人:嵌入式Linux 時(shí)間:2023-01-10 來(lái)源:工程師 發(fā)布文章
Linux內(nèi)核(kernel)和linux操作系統(tǒng)區(qū)別

Linux內(nèi)核指的是一個(gè)提供硬件抽象層、磁盤及文件系統(tǒng)控制、多任務(wù)等功能的系統(tǒng)軟件。一個(gè)內(nèi)核不是一套完整的操作系統(tǒng)。通常我們所說(shuō)的linux操作系統(tǒng)是一個(gè)集linux內(nèi)核、工具集、各種庫(kù)、桌面管理器、應(yīng)用程序等一體的發(fā)布包(發(fā)行版)。因此RedHat、Ubuntu、Slackware等是Linux的發(fā)行版本,更確切地說(shuō),應(yīng)該叫做“以Linux為核心的操作系統(tǒng)”。

Linux 內(nèi)核的特性
  • 開源,遵循GPL開源許可協(xié)議

  • 可以移植,支持廣泛的硬件平臺(tái):x86、arm、mips等

  • 高可擴(kuò)展性(模塊化管理)

  • 模塊化設(shè)計(jì):高內(nèi)聚、低耦合

  • 可剪裁、可擴(kuò)展,可以運(yùn)行在大型主機(jī),也可以運(yùn)行在個(gè)人計(jì)算機(jī)上

  • 高可靠性、穩(wěn)定性,穩(wěn)定性是linux鮮明特點(diǎn),安裝了linux系統(tǒng)的主機(jī),連續(xù)運(yùn)行一年不宕機(jī)是很平常的事情

Linux內(nèi)核版本

一般來(lái)說(shuō),linux系統(tǒng)采用 A.B.C.D 的版本號(hào)管理方式,A表示主版本號(hào),B表示次版本號(hào),C表示修訂版本,D表示更新版本號(hào)。其中次版本號(hào)為偶數(shù)是穩(wěn)定版本,為奇數(shù)表示有一些新的東西加入,是個(gè)不一定很穩(wěn)定的測(cè)試版本,但是2.6版本以后,不再使用奇偶來(lái)來(lái)作為穩(wěn)定和不穩(wěn)定版本的判別。

曾經(jīng)使用最廣泛的Linux內(nèi)核版本:2.6、3.14、4.4、4.9;從Linux內(nèi)核3.0版本之后,引進(jìn)了設(shè)備樹的概念,所有的硬件信息都用設(shè)備樹來(lái)描述。目前最新的Linux內(nèi)核版本是5.1.12。

Linux內(nèi)核的五大基本功能
  • 進(jìn)程管理

  • 內(nèi)存管理

  • 文件系統(tǒng)

  • 網(wǎng)絡(luò)協(xié)議

  • 設(shè)備管理

Linux內(nèi)核目錄結(jié)構(gòu)
  • arch:與體系結(jié)構(gòu)相關(guān)的代碼,每種平臺(tái)占一個(gè)目錄,如arm、mips、x86等。

  • drivers:設(shè)備驅(qū)動(dòng)程序所在目錄,比如media、input、leds、i2c等驅(qū)動(dòng)目錄。

  • sound:ALSA,OSS音頻設(shè)備的驅(qū)動(dòng)核心代碼和常用音頻驅(qū)動(dòng)。

  • fs:file system,文件系統(tǒng),里面列出了linux支持的各種文件系統(tǒng)。

  • include:頭文件所在目錄,我們寫驅(qū)動(dòng)用到的系統(tǒng)相關(guān)的頭文件都放在include/linux下。

  • Documentation:英文文檔,對(duì)每一個(gè)目錄的作用的具體說(shuō)明,還有設(shè)備樹介紹,Makefile語(yǔ)法等等。

  • ipc:進(jìn)程間通信相關(guān)的代碼

  • ...

Linux內(nèi)核的配置和編譯

linux內(nèi)核里面有成千上萬(wàn)的配置項(xiàng),因此,不會(huì)完全從0開始配置內(nèi)核,在arch/arm64/configs/目錄下,內(nèi)核提供了各種平臺(tái)的默認(rèn)配置文件,例如exynos8895_defconfg等。通常默認(rèn)配置并不能完全滿足實(shí)際需求,但有了一個(gè)與所用開發(fā)板相近的默認(rèn)配置,在此基礎(chǔ)上調(diào)整起來(lái)將會(huì)更加容易。那么對(duì)Linux內(nèi)核進(jìn)行所謂的配置其實(shí)就是修改xxx_defconfig(當(dāng)然也可以使用make menuconfig,但是是一次性的),在里面添加類似于下面的格式:

只修改xxx_defconfig是配置的第一步,修改完需要執(zhí)行make xxx_defconfig,使修改的配置選項(xiàng)生效,這時(shí)會(huì)生成一個(gè).config隱藏文件,可以通過(guò)查看這個(gè)文件看你的配置是否生效:

當(dāng)確認(rèn)配置生效之后,就可以在頂層目錄下直接執(zhí)行make命令進(jìn)行編譯了。


*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。



關(guān)鍵詞: Linux內(nèi)核

相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉