linux源代码目录结构说明,linux 源代码目录结构

Linux源代码目录树结构 (2008-04-21 09:14)

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有关内核各个部分的通用解释和注释的文本文件

byhuihoo.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 标准目录结构 / 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 ...

随机推荐

提供程序不支持 DatabaseExists

如果Oracle CodeFirst模式下要用EFProviderWrapperToolkit,那么会报告以下错误: 提供程序不支持 DatabaseExists. 这个错误是因为Oracle Cod ...

一种集合“相等性”的实现

最近在工作中遇到了一个小的功能,就是需要向一个服务发送请求命令,需要判断请求是否发生变化,如果发生变化了,则重新请求.该问题实际上就是判断两个集合是否相等,只需要记录最后一次请求的元素的集合, ...

10 个迅速提升你 Git 水平的提示

1. Git自动补全 假使你使用命令行工具运行Git命令,那么每次手动输入各种命令是一件很令人厌烦的事情.为了解决这个问题,你可以启用Git的自动补全功能,完成这项工作仅需要几分钟. 为了得到这个脚本 ...

新建一个struts2项目

1,新建-动态web项目: 2,将struts2的必要jar包复制到WEB-INF\lib文件夹下,一共有9个,如图一所示. 图一 3,配置web.xml文件,将以下内容写到web.xml文件中. & ...

关于MD5校验和java工程下的校验

File file = new File("cos_code2003.bin"); System.out.println(file.length()); byte[] data = ...

如何自定义echarts主题

上一篇,选择echarts原有的主题样式,那么如何自定义自己的主题 与选择原有主题类似 1.echarts官网地址http://echarts.baidu.com/echarts2/doc  在工具中 ...

前端性能优化 —— 添加Expires头

简要:添加Expires头能有效的利用浏览器的缓存能力来改善页面的性能,能在后续的页面中有效避免很多不必要的Http请求,WEB服务器使用Expires头来告诉Web客户端它可以使用一个组件的当前副本 ...

Jquery DataTables 获取表格数据及行数据

注意table变量是 1.jQuery DataTables 行号获取 $("#example tbody tr").on("click", function( ...

Redis 基础命令

1. 进入redis目录,启动redis cd src ./redis-server 2.  进入redis目录,启动redis客户端 cd src ./redis-cli 3. info命令 4. ...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值