linux 源代码目录结构
Linux源代码目录树结构 (2008-04-21 09:14)
分类: Linux/Unix
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 源代码目录结构的更多相关文章
- Linux 标准目录结构
初学Linux,首先需要弄清Linux 标准目录结构 / root --- 启动Linux时使用的一些核心文件.如操作系统内核.引导程序Grub等. home --- 存储普通用户的个人文件 ftp ...
- 【转】 Linux下目录结构
装完Linux,首先需要弄清Linux 标准目录结构 / root — 启动Linux时使用的一些核心文件.如操作系统内核.引导程序Grub等. home — 存储普通用户的个人文件 ftp — 用户 ...
- 从零单排Linux – 3 – 目录结构
从零单排Linux – 3 – 目录结构 1.FHS标准(filesystem hierarchy standard) why? –> 为了规范,还有为了linux的发展 重点 –> 规范 ...
- 【转】Linux 标准目录结构
初学Linux,首先需要弄清Linux 标准目录结构 / root --- 启动Linux时使用的一些核心文件.如操作系统内核.引导程序Grub等. home --- 存储普通用户的个人文件 ftp ...
- linux标准目录结构
初学Linux,首先需要弄清Linux 标准目录结构 / root --- 启动Linux时使用的一些核心文件.如操作系统内核.引导程序Grub等. home --- 存储普通用户的个人文件 ftp ...
- Linux学习——目录结构
在Linux当中,一切皆为文件,包括目录也属于文件.FHS(Filesystem Hierarchy Standard)的出现对文件目录系统做出了统一规范. Linux的目录结构: / - 根 /bi ...
- 【Linux学习】Linux文件系统2—linux常用目录结构、绝对路径、相对路径
Linux文件系统2-linux常用目录结构.绝对路径.相对路径 一. 常见目录结构总结 Linux目录结构就是"树形结构",常见的目录结构: /bin 系统需要的命令位于此目录 ...
- linux的目录结构详细介绍
linux的目录结构详细介绍 1. /目录(根目录) 2./ect/目录 特定主机系统范围内的配置文件. 3./usr/目录 默认软件都会存于该目录下.用于存储只读用户数据的第二层次:包含绝大多数的用 ...
- Linux 的目录结构
原文内容来自于LZ(楼主)的印象笔记,如出现排版异常或图片丢失等问题,可查看当前链接:https://app.yinxiang.com/shard/s17/nl/19391737/cbbf47b0-f ...
随机推荐
- C++构造函数实例——拷贝构造,赋值
#define _CRT_SECURE_NO_WARNINGS //windows系统 #include <iostream> #include <cstdlib> #incl ...
- HOJ 13819 Height map
昨天校内比赛做了一个很有意思的题,体面如图: 题目大概意思是,给出一个俯视图矩阵,矩阵内元素表示当前位置有多少个方块,最后要求输出该立体图形中面的数量. 首先给出一组数据: 3 42 1 2 11 2 ...
- 使用Visual Studio建立报表--C#
原文:使用Visual Studio建立报表--C# 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/qq_23893313/article/deta ...
- P3398 仓鼠找sugar(树链剖分)
P3398 仓鼠找sugar 题目描述 小仓鼠的和他的基(mei)友(zi)sugar住在地下洞穴中,每个节点的编号为1~n.地下洞穴是一个树形结构.这一天小仓鼠打算从从他的卧室(a)到餐厅(b),而 ...
- TCP/IP网络编程之优雅地断开套接字
基于TCP套接字的半关闭 Linux的close函数和Windows的closesocket函数意味着完全断开连接,完全断开连接不仅指无法传输数据,而且也不能接收数据.因此,在某些情况下,通信一方调用 ...
- MySQL基础2-创建表和主键约束
1.创建表 在操作数据表之前,应该使用"USE 数据库名"指定操作是在哪个数据库中进行 主键约束(唯一标识) ****非空*** ****唯一*** ****被引用****(学习外 ...
- Algorithms(fourth edition)——无向图
1.设计图基本操作API 2.用什么数据结构来表示图并实现API 要求:(1)要预留足够空间 (2)实例方法实现要快 三个选择: 邻接矩阵:布尔矩阵,不满足条件一,而且无法表示平行边 边的数组:不满足 ...
- 嵌入式之download
ISP ISP(In-System Programming)在系统可编程,指电路板上的空白器件可以编程写入最终用户代码, 而不需要从电路板上取下器件,已经编程的器件也可以用ISP方式擦除或再编程.IS ...
- 【Python Selenium】简单数据生成脚本
最近因工作需要,写了一个简单的自动化脚本,纯属学习,顺便学习下selenium模块. 废话不多说,直接上代码!! 这里一位大神重写了元素定位.send_keys等方法,咱们直接进行调用. 适用Pyth ...
- android抓取logcat日志的方法
这几天帮忙测试一个APP,报告结果需要提交日志文件,于是百度了下安卓的获取日志方法,其实很简单,7个步骤搞定,下面把我的总结分享给大家. 1.下载adb工具包 https://pan.baidu.co ...