歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux技術

Linux源代碼目錄

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內核源代碼是很困難的!

Copyright © Linux教程網 All Rights Reserved