日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux内核源码目录结构(2.6.35.7版本)

發布時間:2023/12/20 linux 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux内核源码目录结构(2.6.35.7版本) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

以下內容源于朱有鵬嵌入式課程的學習,如有侵權,請告知刪除。


1、單個文件

(1)Kbuild,Kbuild是kernel build的意思,就是內核編譯的意思。這個文件就是linux內核特有的內核編譯體系需要用到的文件。

(2)Makefile,這個是linux內核的總makefile,整個內核工程用這個Makefile來管理的。

(3)mk,是九鼎在移植時自己添加的,不是linux內核本身的東西。九鼎添加這個文件的作用是用這個文件來管理kernel目錄的配置和編譯,也就是說這個文件有點類似于我們之前移植uboot時自己創建的那個cp.sh。


2、linux內核的配置體系

(1)linux內核很龐大,模塊很多,可配置性非常高。

  • 因此linux源代碼的配置是一個很復雜的事情,必須要有一套很復雜的機制來保證linux內核可以被正確的配置。
  • 對比uboot,uboot的配置項都是在xxx.h中,用宏定義來表示的。uboot的這種方式很依賴于人的水平,因為uboot的配置體系很簡單。

(3)Kbuild、Kconfig等文件,都是和內核的配置體系有關的


3、文件夾

(1)arch。arch是architecture的縮寫,意思是架構。arch目錄下是好多個不同架構的CPU的子目錄,譬如arm這種cpu的所有文件都在arch/arm目錄下,X86的CPU的所有文件都在arch/x86目錄下。

(2)block。英文是塊的意思,在linux中block表示塊設備(以塊(多個字節組成的整體,類似于扇區)為單位來整體訪問),譬如說SD卡、iNand、Nand、硬盤等都是塊設備。你幾乎可以認為塊設備就是存儲設備。block目錄下放的是一些linux存儲體系中關于塊設備管理的代碼,是邏輯層面的代碼。

(3)crypto。英文意思是加密。這個目錄下放了一些各種常見的加密算法的C語言代碼實現。譬如crc32、md5、sha1等。

(4)Documentation。里面放了一些文檔。

(5)drivers。驅動目錄,里面分門別類的列出了linux內核支持的所有硬件設備的驅動源代碼。

(6)firmware。固件。什么是固件?固件其實是軟件,不過這個軟件是固話到IC里面運行的叫固件。就像S5PV210里的iROM代碼。

(7)fs。fs就是file system,文件系統,里面列出了linux支持的各種文件系統的實現。

(8)include。頭文件目錄,公共的(各種CPU架構共用的)頭文件都在這里。每種CPU架構特有的一些頭文件在arch/arm/include目錄及其子目錄下。

(9)init。init是初始化的意思,這個目錄下的代碼就是linux內核啟動時初始化內核的代碼。

(10)ipc。ipc就是inter process commuication,進程間通信,里面都是linux支持的IPC的代碼實現。

(11)kernel。kernel就是內核,就是linux內核,所以這個文件夾下放的就是內核本身需要的一些代碼文件。

(12)lib。lib是庫的意思,這里面都是一些公用的有用的庫函數。

  • 注意這里的庫函數和C語言的庫函數不一樣的。
  • 在內核編程中是不能用C語言標準庫函數,這里的lib目錄下的庫函數就是用來替代那些標準庫函數的。
  • 譬如在內核中要把字符串轉成數字用atoi,但是內核編程中只能用lib目錄下的atoi函數,不能用標準C語言庫中的atoi。
  • 譬如在內核中要打印信息時不能用printf,而要用printk,這個printk就是我們這個lib目錄下的。

(13)mm。mm是memory management,內存管理,linux的內存管理代碼都在這里。

(14)net。該目錄下是網絡相關的代碼,譬如TCP/IP協議棧等都在這里。

(15)scripts。腳本,這個目錄下全部是腳本文件,這些腳本文件不是linux內核工作時使用的,而是用來輔助對linux內核進行配置編譯生產的。我們并不會詳細進入分析這個目錄下的腳本,而是通過外圍來重點學會配置和編譯linux內核即可。

(16)security。安全相關的代碼。不用去管。

(17)sound。音頻處理相關的。

(18)tools。linux中用到的一些有用工具。

(19)usr。目錄下是initramfs相關的,和linux內核的啟動有關,暫時不用去管。

(20)virt。內核虛擬機相關的,暫時不用管。


總結:跟我們關系很緊密的就是arch和drivers目錄,然后其他有點相關的還有include、block、mm、net、lib等目錄。


創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的linux内核源码目录结构(2.6.35.7版本)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。