博客專欄

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

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

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

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

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

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

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

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

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

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

        Linux內(nèi)核版本

        一般來說,linux系統(tǒng)采用 A.B.C.D 的版本號管理方式,A表示主版本號,B表示次版本號,C表示修訂版本,D表示更新版本號。其中次版本號為偶數(shù)是穩(wěn)定版本,為奇數(shù)表示有一些新的東西加入,是個不一定很穩(wěn)定的測試版本,但是2.6版本以后,不再使用奇偶來來作為穩(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è)備樹來描述。目前最新的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)的代碼,每種平臺占一個目錄,如arm、mips、x86等。

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

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

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

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

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

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

        • ...

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

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

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

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


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



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

        相關(guān)推薦

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

        關(guān)閉
        主站蜘蛛池模板: 天津市| 文山县| 莲花县| 康平县| 闽侯县| 正蓝旗| 宣武区| 左云县| 郑州市| 噶尔县| 临桂县| 略阳县| 三河市| 乌兰浩特市| 灵丘县| 桐城市| 铜陵市| 郧西县| 河池市| 忻城县| 新宁县| 永康市| 西盟| 息烽县| 黔江区| 广丰县| 鄂尔多斯市| 迁安市| 察隅县| 定陶县| 于田县| 广汉市| 天祝| 新宁县| 苏尼特左旗| 苍梧县| 定边县| 高邑县| 交城县| 金乡县| 绥宁县|