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内核源码目录(转)的更多相关文章

  1. Linux基础系列—Linux内核源码目录结构

    /** ****************************************************************************** * @author    暴走的小 ...

  2. Linux内核源码目录说明

    Linux内核源代码位于/usr/src/linux目录下,其结构分布如图1.3所示,每一个目录或子目录可以看作一个模块,其目录之间的连线表示“子目录或子模块”的关系.下面是对每一个目录的简单描述. ...

  3. linux内核源码目录结构分析

    原文地址 /arch.arch是architecture的缩写.arch目录下是好多个不同架构的CPU的子目录,譬如arm这种cpu的所有文件都在arch/arm目录下,X86的CPU的所有文件都在a ...

  4. Linux 内核源码目录结构

    arch:包含和硬件体系结构相关的代码,每种平台占用一个相应的目录. block:块设备驱动程序 I/O 调度. crypto:常用加密和散列算法(如AES.SHA等),还有一些压缩和CRC校验算法. ...

  5. Linux内核源码目录

    linux和Android的Makefile和android.mk Uboot流程分析(未编辑完) Kernel的IIC驱动分析(未编辑完)

  6. Linux内核源码分析方法

    一.内核源码之我见 Linux内核代码的庞大令不少人“望而生畏”,也正因为如此,使得人们对Linux的了解仅处于泛泛的层次.如果想透析Linux,深入操作系统的本质,阅读内核源码是最有效的途径.我们都 ...

  7. linux内核源码注解

    轻松学习Linux操作系统内核源码的方法 针对好多Linux 爱好者对内核很有兴趣却无从下口,本文旨在介绍一种解读linux内核源码的入门方法,而不是解说linux复杂的内核机制:一.核心源程序的文件 ...

  8. ubuntu下linux内核源码阅读工具和调试方法总结

    http://blog.chinaunix.net/uid-20940095-id-66148.html 一 linux内核源码阅读工具 windows下当然首选source insight, 但是l ...

  9. Linux内核源码分析--内核启动之(3)Image内核启动(C语言部分)(Linux-3.0 ARMv7)

    http://blog.chinaunix.net/uid-20543672-id-3157283.html Linux内核源码分析--内核启动之(3)Image内核启动(C语言部分)(Linux-3 ...

随机推荐

  1. 面向服务的架构(SOA)

    SOA架构基础概念 面向服务的架构(SOA) 在深入探讨什么是面向服务的架构(SOA)之前,先建立一些基本的概念和术语的基本描述而非严格定义,所以也许有些定义在业内还存留争议,此处暂且忽略. 架构基础 ...

  2. vmWare虚拟机下ubuntu配置代理上网

    最终用上了linux,windows下用vmWare安装虚拟机,挂ubuntu 14.04,,认为非常不习惯,非常难侍候. 而且遇到的客观困难还不少,这两天着实费了不少功夫.主要是上班这里上网要配置代 ...

  3. Bash多个配置文件通常用于

    Login shells阅读下面的启动文件: 文件 内容 /etc/profile 对全部用户开放的全局配置文件 ~/.bash_profile 某个用户个人的启动文件,能用作个人的全局设置 ~/.b ...

  4. JVM的参数详解(转)

    12年毕业到先在处理第一年外这几年纯属于打酱油,当初自学Java然后就出来找工作了,还有第一家面试就通过了挺幸运的 但之后的这段时间一直是处于吃老本的状态.最近心情真的很不好,各种黄老邪!一直处于堕落 ...

  5. Effective C++ -- 继承和面向对象设计

    32.确保你的public继承了模is-a关系 public继承意味着is-a关系(里氏替换原则),一切适用于基类也适用于派生类. 矩形继承正方形问题: 可实施与矩形的操作无法实施与正方形 在编程领域 ...

  6. linux权限和ntfs知识文件系统权限

    左右ntfs权限的问题 文件权限: [-dcbps][u:rwx][g:rwx][a:rwx] 当中: r=4, w=2, x=1,  u=owner, g=group, a=all user     ...

  7. HDU 4917 Permutation

    意甲冠军: 序列p1.p2.p3--pn由1.2.3--n这些数字  现在给出一些条件pi<pj  部条件的排列的个数 思路: 非常easy想到用一条有向的线连接全部的pi和pj  那么就构成了 ...

  8. HTTP长连接和短连接(转)

    1. HTTP协议与TCP/IP协议的关系 HTTP的长连接和短连接本质上是TCP长连接和短连接.HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议.IP协议主要解决网络路由和寻址问 ...

  9. OpenGL路(四)自制的图形功能(立方体、汽缸、圆锥)

    #include <gl/glut.h> #include <gl/GLU.h> #include <gl/GL.h> #pragma comment(lib, & ...

  10. Codeforces 487C. Prefix Product Sequence 逆+结构体

    意甲冠军: 对于数字n, 他询问是否有1~n置换 这种布置能够在产品上模每个前缀n 有可能0~n-1 解析: 通过观察1肯定要在首位,n一定要在最后 除4意外的合数都没有解 其它质数构造 a[i]=i ...