亚洲精品一二区_国产黄色片网站_99久久久成人国产精品_蜜臀网_国产精品一区二区三区免费_成人av中文字幕_91精品国产欧美一区二区成人

當前位置:首頁 > 嵌入式培訓 > 嵌入式學習 > 講師博文 > 細說Linux內核目錄結構

細說Linux內核目錄結構 時間:2018-01-11      來源:未知

Linux內核源碼有幾千萬行,包含源文件和工程文件有48374個

Linux內核目錄結構

浩瀚的源碼該如何入手?我們學習和研究linux內核必須掌握一定的方法,才能夠提高效率,做到事半功倍,首先我們必須先了解linux內核的主要目錄。

下面內核目錄以linux-3.14內核作為講解

Linux內核目錄結構

1、documentation:

提供文檔幫助。關于內核的一些說明信息,在這個目錄下會有幫助手冊。

比如linux-3.14-fs4412/Documentation/devicetree/bindings/interrupt-controller/interrupts.txt

該文件講解了關于設備數節點 中斷設備interrupts屬性的cell的詳細說明。

只要根據文件夾名字,便可查找到我們所需的說明文檔。

2、arch:

arch是architecture的縮寫。所有與體系結構相關的代碼都在這個目錄以

include/asm-*/目錄中。Linux支持的每種體系結構在arch目錄下都有對應的目錄,又進一

步分解為boot,mm,kernel等子目錄:

|--arm arm及與之相兼容體系結構的子目錄

|--boot 引導程序,以及在這種硬件平臺上啟動內核所使用的內存管理程序的實現。

|--compressed 內核解壓縮

|--tools 生成壓縮內核映像的程序

| --kernel: 存放支持體系結構特有的諸如信號量處理和SMP之類特征的實現。

| --lib: 存放體系結構特有的對諸如strlen和memcpy之類的通用函數的實現。

| --mm: 存放體系結構特有的內存管理程序的實現。

除了這3個子目錄以外,大多數體系結構在必要的情況下還有一個boot子目錄,包括了在這種硬件平臺上啟動內核所使用的內存管理程序的實現。

3、drivers:

驅動代碼,驅動是一個控制硬件的軟件。這個目錄是內核中龐大的一個目錄,顯卡、網卡、SCSI適配器、PCI總線、USB總線和其他任何Linux支持的外圍設備或總線的驅動程序都可以在這兒找到。

4、fs:

虛擬文件系統(VFS)的代碼,和各個不同文件系統的代碼都在這個目錄中。Linux支持的所有文件系統在fs目錄下面都有一個對應的子目錄。比如ext2文件系統對應的是fs/ext2目錄。

一個文件系統是存儲設備和需要訪問存儲設備的進程之間的媒介。存儲設備可能是本地的物理上可以訪問的,比如硬盤或者CD-ROM驅動器,他們分別使用而系統ext2/ext3和isofs文件系統。

還有一些虛擬文件系統(proc),它是一個標準文件系統出現。然而,他其中的文件只存在于內存中,并不占磁盤空間。

5、include:

這個目錄包含了內核中大部分的頭文件,它按照下面的子目錄進行分組。要修改處理器結構則只需編輯核心的makefile并重新運行Linux核心配置程序。

| include/asm-*/ 每一個對應著一個arch的子目錄,比如include/asm-alpha、

Include/asm-arm等。每個子目錄中的文件都定義了支持給定體系結構所必要的預處理函數和內聯函數,這些內聯函數多數都是全部或者部分的匯編語言實現。

| include/linux 與平臺無關的頭文件都在這個目錄下,它通常會被鏈接到目錄

/usr/include/linux(或者它里面的所有文件都會被復制到/usrinclude/linux目錄下邊)

6、init:

內核的初始化代碼。包括main.c、創建早起用戶空間的代碼及其他初始化代碼。

7、ipc:

IPC(進程間通信)。它包含了共享內存、信號量及其他形式的IPC代碼。

8、kernel:

內核中核心的部分,包括進程的調度(sched.c),以及進程的創建和撤銷(fork.c和exit.c)和平臺相關的另外一部分核心代碼在arch/*/kernel目錄下。

9、mm

此目錄包含了與體系無關的部分內存管理代碼。與體系結構相關的內存管理代碼位于arch/*/mm下。

10、net

核心的網絡部分代碼,實現了各種常見的網絡協議,入TCP/IP、IPX等。

11、lib

此目錄包含了核心的庫代碼。實現了一個標準C庫的通用子集,包括字符串和內存操作的函數(strlen、mmcpy等)以及有關sprintf和atoi系列函數。與arch/lib下的代碼不同,這里的庫代碼都是C編寫的,在內核新的移植版本中可以直接使用。與處理器結構相關庫代碼被放在arch/mm中。

12、block:

塊設備驅動包括IDE(在ide.c中)驅動。塊設備是以數據塊方式接收和發送的數據的設備。初block層代碼一部分位于drivers目錄,一部分位于fs目錄。從2.6.15開始,block層的核心代碼就被提取出來放在頂層的block目錄中。如果你想尋找這些可包含文件系統的設備的初始化過程則應該在drivers/block/genhd.c中的device_setup()。當安裝一個nfs文件系統時不但要初始化硬盤還需初始化網絡。塊設備包括IDE與SCSI設備。

13、firmware

fireware中包含了讓計算機讀取和理解從設備發來的信號的代碼。舉例來說,一個攝像頭管理它自己的硬件,但計算機必須了解攝像頭給計算機發送的信號。Linux系統會使用vicam固件(firmware)來理解攝像頭的通訊。否則,沒有了固件,Linux系統將不知道如何處理攝像頭發來的信息。另外,固件同樣有助于將Linux系統發送消息給該設備。這樣Linux系統可以告訴攝像頭重新調整或關閉攝像頭。

14、usr:

實現用于打包和壓縮的cpio等。這個文件夾中的代碼在內核編譯完成后創建這些文件。

15、securtity:

這個目錄下包含了不同的Linux安全模型的代碼。它對計算機免于受到病毒和黑客的侵害很重要。否則,Linux系統可能會遭到損壞。

16、crypto:

內核本身所用的加密API,實現了常用的加密和散列算法,還有一些壓縮和CRC校驗算法。例:“sha1_generic.c”這個文件包含了SHA1加密算法的代碼。

17、scripts:

該目錄下沒有內核代碼,只是包含了用來配置內核的腳本文件。當運行make menuconfig或者make xconfig之類的命令配置內核時,用戶就是和位于這個目錄下的腳本進行交互的。

18、sound:

聲卡驅動以及其他聲音相關的源碼。

19、samples

一些內核編程的范例

20、virt

此文件夾包含了虛擬化代碼,它允許用戶一次運行多個操作系統。通過虛擬化,客戶機操作系統就像任何其他運行在Linux主機的應用程序一樣運行。

21、tools

這個文件夾中包含了和內核交互的工具。

COPYING:許可和授權信息。Linux內核在GPLv2許可證下授權。該許可證授予任何人有權免費去使用、修改、分發和共享源代碼和編譯代碼。然而,沒有人可以出售源代碼。

CREDITS : 貢獻者列表

Kbuild : 這是一個設置一些內核設定的腳本。打個比方,這個腳本設定一個ARCH變量,這是開發者想要生成的內核支持的處理器類型。

Kconfig: 這個腳本會在開發人員配置內核的時候用到

MAINTAINERS : 這是一個目前維護者列表,他們的電子郵件地址,主頁,和他們負責開發和維護的內核的特定部分或文件。當一個開發者在內核中發現一個問題,并希望能夠報告給能夠處理這個問題的維護者時,這是是很有用的。

Makefile :這個腳本是編譯內核的主要文件。這個文件將編譯參數和編譯所需的文件和必要的信息傳給編譯器。

README : 這個文檔提供給開發者想要知道的如何編譯內核的信息。

REPORTING-BUGS : 這個文檔提供如何報告問題的信息。

內核的代碼是以“.c”或“.h”為擴展名的文件。 “.c”的擴展名表明內核是用眾多的編程語言之一的C語言寫的, “h”的文件是頭文件,而他們也是用C寫成。頭文件包含了許多“.c”文件需要使用的代碼,因為他們可以引入已有的代碼而不是重新編寫代碼,這節省了程序員的時間。否則,一組執行相同的動作的代碼,將存在許多或全部都是“c”文件。這也會消耗和浪費硬盤空間。(譯注:頭文件不僅僅可節省重復編碼,而且代碼復用也會降低代碼錯誤的幾率)

上一篇:數據結構排序算法有哪些常用的

下一篇:AprilTags論文解讀

熱點文章推薦
華清學員就業榜單
高薪學員經驗分享
熱點新聞推薦
前臺專線:010-82525158 企業培訓洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權所有 ,京ICP備16055225號-5京公海網安備11010802025203號

回到頂部

主站蜘蛛池模板: 免费久久一级欧美特大黄 | 另类视频在线观看 | 99久久精品免费精品国产 | 欧美ggg666| 久操视频免费在线观看 | 激情综合五月亚洲婷婷 | 日韩18在线观看地址 | 午夜视频www | 91www成人久久 | 亚洲亚洲人成网站在线观看 | 久久精品免费观看视频 | 操操操干干干 | 日韩亚洲欧洲在线rrrr片 | 国产剧情片视频资源在线播放 | 欧美jizzdh精品巨大 | 亚洲天堂亚洲天堂 | 国语高清精品一区二区三区 | 久久精品视频一区二区三区 | 免费人成又黄又爽的视频网站 | 在线看片a | 美女视频永久黄网站在线观看 | 欧美人善交 | 免费a级毛片视频 | 精品午夜久久网成年网 | 亚洲免费成人网 | a毛片免费全部在线播放毛 a毛片全部播放免费视频完整18 | 99精品一区二区免费视频 | 青娱乐极品视频在线 | 久久亚洲国产欧洲精品一 | 免费观看在线视频 | 国产九九热 | 青青操在线视频观看 | 国产亚洲精品午夜高清影院 | 日本zzzwww大片免费 | 最好看的毛片 | 欧美性生话 | 久艾草国产成人综合在线视频 | 欧美一级在线全免费 | 免费jjzz在在线播放国产 | 毛茸茸bbw亚洲人 | 人人做人人爽国产视 |