天天看點

linux 核心代碼結構

  • arch :包含和硬體體系結構相關的代碼,每種平台占一個相應的目錄,如 i386、 arm、arm64、 powerpc、 mips 等。 Linux 核心目前已經支援 30 種左右的體系結構。在 arch 目錄下,存放的是各個平台以及各個平台的晶片對 Linux 核心程序排程、記憶體管理、中斷等的支援,以及每個具體的 SoC 和電路闆的闆級支援代碼
  • block:塊裝置驅動程式 I/O 排程。
  • crypto:常用加密和雜湊演算法(如 AES、 SHA 等),還有一些壓縮和 CRC 校驗算法。
  • documentation:核心各部分的通用解釋和注釋。
  • drivers :裝置驅動程式,每個不同的驅動占用一個子目錄,如 char、 block、 net、mtd、 i2c 等。
  • fs:所支援的各種檔案系統,如 EXT、 FAT、 NTFS、 JFFS2 等。
  • include:頭檔案,與系統相關的頭檔案放置在 include/linux 子目錄下。
  • init:核心初始化代碼。著名的 start_kernel() 就位于 init/main.c 檔案中。
  • ipc:程序間通信的代碼。
  • kernel :核心最核心的部分,包括程序排程、定時器等,而和平台相關的一部分代碼放在 arch/*/kernel 目錄下
  • lib:庫檔案代碼。
  • mm:記憶體管理代碼,和平台相關的一部分代碼放在 arch/*/mm 目錄下。
  • net:網絡相關代碼,實作各種常見的網絡協定。
  • scripts:用于配置核心的腳本檔案。
  • security:主要是一個 SELinux 的子產品。
  • sound: ALSA、 OSS 音頻裝置的驅動核心代碼和常用裝置驅動。
  • usr:實作用于打包和壓縮的 cpio 等。
  • virt:核心 API 級别頭檔案。

繼續閱讀