linux内核源码目录

系统 2910 0

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内核源码目录


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论