To help you to find your way through the files of the source code, we briefly describe the organization of the kernel directory tree. As usual, all pathnames refer to the main directory of the Linux kernel, which is, in most Linux distributions, /usr/src/linux.
Linux source code for all supported architectures is contained in about 8750 C and Assembly files stored in about 530 subdirectories; it consists of about 4 million lines of code, which occupy more than 144 megabytes of disk space.
The following list illustrates the directory tree containing the Linux source code. Please notice that only the subdirectories somehow related to the target of this book have been expanded.
Description |
|
Documentation |
Text files with general explanations and hints about kernel components |
arch |
Platform-dependent code |
i386 |
IBM's PC architecture |
kernel |
Kernel core |
mm |
Memory management |
math-emu |
Software emulator for floating-point unit |
lib |
Hardware-dependent utility functions |
boot |
Bootstrapping |
compressed |
Compressed kernel handling |
tools |
Programs to build compressed kernel image |
alpha |
Hewlett-Packard's Alpha architecture |
arm |
Architectures based on ARM processors |
cris |
Axis Communication AB's Code Reduced Instruction Set architecture used by thin-servers |
ia64 |
Workstations based on Intel's 64-bit Itanium microprocessor |
m68k |
Motorola's MC680x0-based architecture |
mips |
MIPS architecture adopted by Silicon Graphics and other computer manufacturers |
mips64 |
64-bit MIPS architecture |
parisc |
HP 9000 parisc workstations |
ppc |
Motorola-IBM's PowerPC-based architectures |
s390 |
IBM's ESA/390 and 32-bit zSeries architectures |
s390x |
IBM's 64-bit zSeries architectures |
sh |
SuperH-based embedded computers |
sparc |
Sun's SPARC architecture |
sparc64 |
Sun's Ultra-SPARC architecture |
drivers |
Device drivers |
acorn |
Acorn's devices |
acpi |
Advanced Configuration Power Interface (a power management standard that provides more features than APM) |
atm |
Support for ATM network architecture |
block |
Block device drivers |
paride |
Support for accessing IDE devices from parallel port |
bluetooth |
Drivers for devices connected through the Bluetooth wireless protocol |
cdrom |
Proprietary CD-ROM devices (neither ATAPI nor SCSI) |
char |
Character device drivers |
agp |
Drivers for AGP video cards |
drm |
Driver that supports the Xfree86 Direct Rendering Infrastructure |
drm-4.0 |
Another driver that supports the Xfree86 Direct Rendering Infrastructure |
ftape |
Tape-streaming devices |
ip2 |
Computone Intelliport II multiport serial controllers |
joystick |
Joysticks |
mwave |
IBM's Winmodem-like driver for Linux |
pcmcia |
Driver for PCMCIA serial device |
rio |
Driver for the Specialix Rio multiport serial card |
dio |
Hewlett-Packard's HP300 DIO bus support |
fc4 |
Fibre Channel devices |
hotplug |
Support for hotplugging of PCI devices |
i2c |
Driver for Philips' I2C 2-wire bus |
ide |
Drivers for IDE disks |
ieee1394 |
Driver for IEEE1394 high-speed serial bus |
input |
Input layer module for joysticks, keyboards, and mouses |
isdn |
ISDN devices |
macintosh |
Apple's Macintosh devices |
md |
Layer for "multiple devices" (disk arrays and Logical Volume Manager) |
media |
Drivers for radio and video devices |
message |
High performance SCSI + LAN/Fibre Channel drivers |
misc |
Miscellaneous devices |
mtd |
Support for Memory Technology Devices (especially flash devices) |
net |
Network card devices |
nubus |
Apple's Macintosh Nubus support |
parport |
Parallel port support |
pci |
PCI bus support |
pcmcia |
PCMCIA card support |
pnp |
Plug-and-play support |
s390 |
IBM's ESA/390 and zSeries device support |
sbus |
Sun's SPARC SBus support |
scsi |
SCSI device drivers |
sgi |
Silicon Graphics' devices |
sound |
Audio card devices |
tc |
Hewlett-Packard (formerly DEC) TURBOChannel bus support |
telephony |
Support for voice-over-IP devices |
usb |
Universal Serial Bus (USB) support |
video |
Video card devices |
zorro |
Amiga's Zorro bus support |
fs |
Filesystems |
adfs |
Acorn Disc Filing System |
affs |
Amiga's Fast File System (FFS) |
autofs |
Support for kernel-based filesystem automounter daemon |
autofs4 |
Another version of support for kernel-based filesystem automounter daemon (Version 4) |
bfs |
SCO UnixWare Boot File System |
coda |
Coda network filesystem |
cramfs |
Data compressing filesystem for MTD devices |
devfs |
Device filesystem |
devpts |
Pseudoterminal support (Open Group's Unix98 standard) |
efs |
SGI IRIX's EFS filesystem |
ext2 |
Linux native Ext2 filesystem |
ext3 |
Linux native Ext3 filesystem |
fat |
Common code for FAT-based filesystems |
freevxfs |
Veritas VxFS filesystem used by SCO UnixWare |
hfs |
Apple's Macintosh filesystem |
hpfs |
IBM's OS/2 filesystem |
inflate_fs |
Layer for decompressing files in cramfs and iso9660 filesystems |
intermezzo |
InterMezzo high-availability distributed filesystem |
isofs |
ISO9660 filesystem (CD-ROM) |
jbd |
Journaling filesystem layer used by Ext3 |
jffs |
Journaling filesystems for MTD devices |
jffs2 |
Another journaling filesystems for MTD devices |
lockd |
Remote file locking support |
minix |
MINIX filesystem |
msdos |
Microsoft's MS-DOS filesystem |
ncpfs |
Novell's Netware Core Protocol (NCP) |
nfs |
Network File System (NFS) |
nfsd |
Integrated Network filesystem server |
nls |
Native Language Support |
ntfs |
Microsoft's Windows NT filesystem |
openpromfs |
Special filesystem for SPARC's OpenPROM device tree |
partitions |
Code for reading several disk partition formats |
proc |
/proc virtual filesystem |
qnx4 |
Filesystem for QNX 4 OS |
ramfs |
Simple RAM filesystem |
reiserfs |
Reiser filesystem |
romfs |
Small read-only filesystem |
smbfs |
Microsoft's Windows Server Message Block (SMB) filesystem |
sysv |
System V, SCO, Xenix, Coherent, and Version 7 filesystem |
udf |
Universal Disk Format filesystem (DVD) |
ufs |
Unix BSD, SunOS, FreeBSD, OpenBSD, and NeXTStep filesystem |
umsdos |
UMSDOS filesystem |
vfat |
Microsoft's Windows filesystem (VFAT) |
include |
Header files (.h) |
asm-generic |
Platform-independent low-level header files |
asm-i386 |
IBM's PC architecture |
asm-xxx |
Header files for other architecture |
linux |
Kernel core |
byteorder |
Byte-swapping functions |
isdn |
ISDN functions |
lockd |
Remote file locking |
mtd |
MTD devices |
netfilter_ipv4 |
Filtering for TCP/IPv4 |
netfilter_ipv6 |
Filtering for TCP/IPv6 |
nfsd |
Integrated Network File Server |
raid |
RAID disks |
sunrpc |
Sun's Remote Procedure Call |
math-emu |
Mathematical coprocessor emulation |
net |
Networking |
pcmcia |
PCMCIA support |
scsi |
SCSI support |
video |
Frame buffer support |
init |
Kernel initialization code |
ipc |
System V's Interprocess Communication |
kernel |
Kernel core: processes, timing, program execution, signals, modules, etc. |
lib |
General-purpose kernel functions |
mm |
Memory handling |
net |
A bunch of networking protocols |
scripts |