O'Reilly logo

Understanding the Linux Kernel by Marco Cesati, Daniel P. Bovet

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Appendix C. Source Code Structure

In order 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 4500 C and Assembly files stored in about 270 subdirectories; it consists of about 2 million lines of code, which occupy more than 58 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.

init
Kernel initialization code
kernel
Kernel core: processes, timing, program execution, signals, modules, . . .
mm
Memory handling
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
Compaq's Alpha architecture
—s390
IBM's System/390 architecture
—sparc
Sun's SPARC architecture
—sparc64
Sun's Ultra-SPARC architecture
—mips
Silicon Graphics' MIPS architecture
—ppc
Motorola-IBM's PowerPC-based architectures
—m68k
Motorola's MC680x0-based architecture
—arm
Architectures based on ARM processor ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required