博客專欄

        EEPW首頁 > 博客 > Linux內核全面介紹

        Linux內核全面介紹

        發布人:嵌入式Linux 時間:2023-01-10 來源:工程師 發布文章
        Linux內核(kernel)和linux操作系統區別

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

        Linux 內核的特性
        • 開源,遵循GPL開源許可協議

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

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

        • 模塊化設計:高內聚、低耦合

        • 可剪裁、可擴展,可以運行在大型主機,也可以運行在個人計算機上

        • 高可靠性、穩定性,穩定性是linux鮮明特點,安裝了linux系統的主機,連續運行一年不宕機是很平常的事情

        Linux內核版本

        一般來說,linux系統采用 A.B.C.D 的版本號管理方式,A表示主版本號,B表示次版本號,C表示修訂版本,D表示更新版本號。其中次版本號為偶數是穩定版本,為奇數表示有一些新的東西加入,是個不一定很穩定的測試版本,但是2.6版本以后,不再使用奇偶來來作為穩定和不穩定版本的判別。

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

        Linux內核的五大基本功能
        • 進程管理

        • 內存管理

        • 文件系統

        • 網絡協議

        • 設備管理

        Linux內核目錄結構
        • arch:與體系結構相關的代碼,每種平臺占一個目錄,如arm、mips、x86等。

        • drivers:設備驅動程序所在目錄,比如media、input、leds、i2c等驅動目錄。

        • sound:ALSA,OSS音頻設備的驅動核心代碼和常用音頻驅動。

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

        • include:頭文件所在目錄,我們寫驅動用到的系統相關的頭文件都放在include/linux下。

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

        • ipc:進程間通信相關的代碼

        • ...

        Linux內核的配置和編譯

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

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

        當確認配置生效之后,就可以在頂層目錄下直接執行make命令進行編譯了。


        *博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。



        關鍵詞: Linux內核

        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 兴和县| 沾益县| 云阳县| 台湾省| 曲水县| 齐河县| 清徐县| 静宁县| 南召县| 陆良县| 剑川县| 天津市| 抚顺县| 宁德市| 浙江省| 临海市| 邹城市| 石屏县| 广州市| 高安市| 南汇区| 容城县| 楚雄市| 东山县| 肥乡县| 大方县| 吉安县| 柏乡县| 宜宾县| 辽中县| 济宁市| 西乡县| 怀仁县| 清流县| 遵义县| 昌都县| 阿图什市| 洛宁县| 汨罗市| 万州区| 仪陇县|