
Linux內核是操作系統中最核心的部分,它負責管理計算機硬件資源,并提供對應用程序和其他系統組件的訪問接口,控制著計算機的內存、處理器、設備驅動程序和文件系統等關鍵功能,今天小編就給各位小伙伴介紹一下如何獲取Linux內核源碼。
獲取Linux內核源碼的渠道
Linux有一個龐大的開源社區,每個人都可以向開源社區提交代碼。由于Linux內核十分龐大所以每個模塊都有對應的維護人員。維護人員的工作就是審核人們提交的代碼是否正確,如果沒有問題,就會合并到主分支上。這樣就會使Linux內核不斷完善和更新。
接下來就是芯片原廠例如恩智浦,開發人員會不定期在Linux官網下載穩定版本的內核,將其適配到各個芯片上,芯片原廠也會對內核進行維護形成自己的維護版本。
最后是板卡廠商,會到芯片原廠獲取已經適配好的穩定版本的內核,在其基礎上進行各個外設接口的適配,然后給用戶提供移植好的板級開發包。板卡廠商也會對移植好的內核版本進行維護,例如一些BUG修復或者物料替換。
獲取Linux內核源碼的方法
一、獲取Linux官網源碼
地址:https://mirrors.edge.kernel.org/pub/Linux/kernel/
如果不是在芯片原廠工作一般不會到Linux官網下載源碼,但我們有必要了解這種獲取源碼的方法。因為Linux官網對一些bug或者驅動更新的比較及時,在遇到一些內核問題時就可以到Linux官網的源碼中查一下是不是有相關的提交記錄。

二、獲取芯片原廠的Linux源碼
每個芯片原廠都有自己的git倉庫,他們會把已經開發完成的內核源碼放到git倉庫中,供用戶查看和下載。下面以NXP的倉庫為例進行講解。
地址:https://github.com/nxp-imx/Linux-imx
(一)切換到對應的版本,因為開發板是在Linux4.1.15上進行的適配,所以講解均以4.1.15版本內核為例。

(二)可以選擇使用git克隆,也可以選擇下載ZIP壓縮包

三、獲取ELF1開發板源碼
ELF1的內核源碼在資料包當中的路徑如下:ELF1開發板資料包\02-Linux源代碼\02-0 出廠內核和uboot源碼\內核源碼\Linux-4.1.15-elf1.tar.bz2
下面以ELF1的內核源碼為例,給大家介紹一下內核源代碼的目錄結構和文件說明。
內核源代碼的目錄結構和文件說明
將:ELF1開發板資料包\02-Linux源代碼\02-0 出廠內核和uboot源碼\內核源碼\Linux-4.1.15-elf1.tar.bz2
內核源碼壓縮包復制到ubuntu系統的/home/elf/work/目錄下,解壓縮:
elf@ubuntu:~/work$ tar -xvf Linux-4.1.15-elf1.tar.bz2
解壓完成之后使用ls命令查看Linux源碼目錄:
Linux內核目錄下有很多的文件夾和文件,很多文件夾和文件我們不需要關注,我們主要了解比較常用的一些文件夾和文件的涵義就夠用了。
目錄 | 目錄說明 |
arch/ | 可支持的不同CPU架構下的核心代碼。例如arm就是arm架構相關的代碼,arm目錄下包括很多處理器平臺,也包括了啟動代碼boot、架構相關配置文件configs、內核相關文件kernel、內存管理mm和庫lib等 |
block/ | 塊設備相關通用函數 |
crypto/ | 常見的加密算法相關代碼 |
Documentation/ | 說明文檔,對每個目錄和模塊有詳細說明 |
drivers/ | 設備驅動程序,其中每一個目錄都代表一種設備驅動 |
firmware/ | 固件代碼 |
fs/ | 可支持的文件系統相關代碼 |
include/ | 通用的頭文件 |
init/ | 內核初始化核心代碼 |
ipc/ | 內核進程間通信相關代碼 |
kernel/ | 內核核心代碼,目錄下實現了多數Linux系統的內核函數 |
lib/ | 內核共用的函數庫 |
mm/ | 內存管理相關代碼 |
net/ | 網絡相關代碼 |
sample/ | 示例代碼 |
scripts/ | 用于內核配置的腳本文件,用于實現內核配置的圖形界面 |
security/ | 安全性相關,支持安全操作系統相關代碼。包括SELinux、Apparmor、Smack和TOMOYO Linux安全模塊。 |
tools/ | 常用工具代碼 |
usr/ | 內核啟動相關代碼 |
virt/ | 內核虛擬化相關代碼 |
內核源代碼的目錄結構和文件說明就介紹到這里。之后我們還會介紹內核編譯以及如何給在NXP的源碼上適配ELF 1開發板。希望能對各位小伙伴在學習嵌入式開發的時候有所幫助。
-
嵌入式
+關注
關注
5103文章
19268瀏覽量
310016 -
內核
+關注
關注
3文章
1391瀏覽量
40599 -
開發板
+關注
關注
25文章
5210瀏覽量
99119 -
LINUX內核
+關注
關注
1文章
316瀏覽量
21858
發布評論請先 登錄
相關推薦
Linux內核開發工具介紹

一文詳解Linux內核源碼組織結構
淺談Linux內核源碼的Makefile、Kconfig和.config文件

飛凌嵌入式ElfBoard ELF 1板卡-Linux內核移植之內核簡介
嵌入式學習-飛凌嵌入式ElfBoard ELF 1板卡-Linux內核移植之內核簡介
Linux-2.6.11.12內核源碼(帶注釋)
I.MX6ULL-ElfBoard ELF1板卡 獲取內核源碼的方法。
嵌入式學習——ElfBoard ELF1板卡 獲取內核源碼的方法
需要掌握的Linux內核源碼分析方法

STM32MP157 Linux系統移植開發篇8:Linux內核配置方法及編譯

評論