linux核心源碼目錄

來源:互聯網
上載者:User

標籤:style   color   os   使用   io   strong   檔案   資料   ar   

Linux用來支援各種體繫結構的原始碼包含大約4500個C語言程式,存放在270個左右的子目錄下,總共大約包含200萬行代碼,大概佔用58MB磁碟空間。

原始碼所有在目錄:/usr/src/linux (大部分linux發行版本中)

init 核心初始化代碼
kernel 核心核心部分:進程、定時、程式執行、訊號、模組。。。
mm 記憶體處理
arch 平台相關代碼
   i386 IBM的PC體繫結構
      kernel核心核心部分
      mm 記憶體管理
      math-emu浮點單位軟體模擬
      lib 硬體相關工具函數
      boot 引導程式
         compressed壓縮核心處理
         tools產生壓縮核心映像的程式
   alpha 康柏的Alpha體繫結構
   s390 IBM的System/390體繫結構
   sparc Sun的SPARC體繫結構
   sparc64 Sun的Ultra-SPARC體繫結構
   mips SGI的MIPS體繫結構
   ppc Motorola-IBM的基於PowerPC的體繫結構
   m68k Motorola的基於MC680x0的體繫結構
   arm 基於ARM處理器的體繫結構
fs 檔案系統
   proc /proc虛擬檔案系統
   devpts /dev/pts虛擬檔案系統
   ext2 Linux本地的Ext2檔案系統
   isofs ISO9660檔案系統(CD-ROM)
   nfs 網路檔案系統(NFS)
   nfsd 整合的網路檔案系統伺服器
   fat 基於FAT的檔案系統的通用代碼
   msdos 微軟的MS-DOS檔案系統
   vfat 微軟的Windows檔案系統(VFAT)
   nls 本地語言支援
   ntfs 微軟的Windows NT檔案系統
   smbfs 微軟的Windows伺服器訊息區(SMB)檔案系統
   umsdos UMSDOS檔案系統
   minix MINIX檔案系統
   hpfs IBM的OS/2檔案系統
   sysv SystemV、SCO、Xenix、Coherent和Version7檔案系統
   ncpfs Novell的Netware核心協議(NCP0
   ufs UnixBSD、SunOs、FreeBSD、NetBSD、OpenBSD和NeXTStep檔案系統
   affs Amiga的快速檔案系統(FFS)
   coda Coda網路檔案系統
   hfs 蘋果的Macintosh檔案系統
   adfs Acorn磁碟填充檔案系統
   efs SGI IRIX的EFS檔案系統
   qnx4 QNX4 OS使用不的檔案系統
   romfs 唯讀小檔案系統
   autofs 目錄自動裝載程式的支援
   lockd 遠程檔案鎖定的支援
Net 網路代碼
Ipc System V的處理序間通訊Drivers 裝置驅動程式   block 塊裝置驅動程式       paride從並口訪問IDE裝置的支援    scsi SCSI裝置驅動程式   char 字元裝置驅動程式       joystick遊戲杆       ftape磁帶流裝置       hfmodem無線電裝置       ip2 IntelliPort的多連接埠串列控制器   net 網卡裝置    sound 音訊卡裝置    video 視訊卡裝置    cdrom 專用CD-ROM裝置(除ATAPI和SCSI之外)    isd0n ISDN裝置   apl000 富士的AP1000裝置    macintosh蘋果的Macintosh裝置    sgi SGI的裝置   fc4 光纖裝置    acorn Acorn的裝置   misc 雜項裝置    pnp 隨插即用的支援    usb 通用序列匯流排(USB)的支援    pci PCI匯流排的支援   sbus Sun的SPARC SBus的支援   nubus 蘋果的Macintosh Nubus的支援    zorro Amiga的Zorro匯流排的支援   dio 惠普的HP300 DIO匯流排的支援    tc Sun的TurboChannel支援(尚未完成)Lib 通用核心功能 Include 標頭檔(.h)   linux 核心核心部分       lockd遠程檔案加鎖       nfsd 整合的網路檔案伺服器       sunrpc Sun的遠端程序呼叫      byteorder位元組交換函數       modules模組支援    asm-generic平台無關低級標頭檔    asm-i386 IBM的PC體繫結構   asm-alpha康柏的Alpha體繫結構    asm-mips SGI的MIPS體繫結構   asm-m68k Motorola-IBM的基於PowerPC的體繫結構   asm-ppc Motorola-IBM的PowerPC體繫結構   asm-s390 IBM的System/390體繫結構   asm-sparc Sun的SPARC體繫結構   asm-sparc64 Sun的Ultra-SPARC體繫結構   asm-arm 基於ARM處理器的體繫結構    net 網路    scsi SCSI支援   video 視訊卡支援    config 定義核心配置的宏所在的標頭檔 scripts 產生核心映像的外部程式Documentation有關核心各個部分的通用解釋和注釋的文字檔

by huihoo.com Allen)

:《UNDERSTANDING THE LINUX KERNEL》 DANIEL P.BOVET & MARCO CESATI 著

-------------------------------------------------


arch:包含和硬體體繫結構相關的代碼,每種平台佔一個相應的目錄。和32位PC相關的代碼存放在i386目錄下,其中比較重要的包括kernel(核心核心部分)、mm(記憶體管理)、math-emu(浮點單位模擬)、lib(硬體相關工具函數)、boot(引導程式)、pci(PCI匯流排)和power(CPU相關狀態)。
 
block:部分塊裝置驅動程式。
 
crypto:常用加密和散列演算法(如AES、SHA等),還有一些壓縮和CRC校正演算法。
 
Documentation:關於核心各部分的通用解釋和注釋。
 
drivers:裝置驅動程式,每個不同的驅動佔用一個子目錄。
 
fs:各種支援的檔案系統,如ext、fat、ntfs等。
 
include:標頭檔。其中,和系統相關的標頭檔被放置在linux子目錄下。
 
init:核心初始化代碼(注意不是系統引導代碼)。
 
ipc:處理序間通訊的代碼。
 
kernel:核心的最核心部分,包括進程調度、定時器等,和平台相關的一部分代碼放在arch/*/kernel目錄下。
 
lib:庫檔案代碼。
 
mm:記憶體管理代碼,和平台相關的一部分代碼放在arch/*/mm目錄下。
 
net:網路相關代碼,實現了各種常見的網路通訊協定。
 
scripts:用於配置核心檔案的指令檔。
 
security:主要是一個SELinux的模組。
 
sound:常用音訊裝置的驅動程式等。
 
usr:實現了一個cpio。
 
在i386體系下,系統引導將從arch/i386/kernel/head.s開始執行,並進而轉移到init/main.c中的main()函數初始化核心。我個人認為可以按照這個順序進行閱讀(最好首先看完主要的資料結構定義等),對於各模組代碼粗略看看就可以了,重點應該放在你所要研究的那個方向。要知道,一個人掌握全部Linux核心原始碼是很困難的!

linux核心源碼目錄(轉)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.