In Linux the Kernel source is available under /usr/src/linux.
Architecture dependent code is available in the following directory structure
- arch/alpha – for the DEC Alpha Architecture
- arch/x86 – for the Intel 32 bit Architecture
- arch/arm – for the ARM Architecture
- arch/ia64 – for the intel 64 bit architecture
- arch/m68k – for the 68000 architecture and compatible processors.
- init/ directory contains all the functions needed to start the kernel.
- kernel/ – central sections of the kernel. Most important system calls are implemented here.
- arch/x86/mm or mm/ – takes care of memory management by requesting and releasing kernel memories.
- fs/ is the virtual file system interface. Some important file systems are proc, ext2,ext3,. The proc file systems is used for system management.
drivers/ – every operating system requires drivers for its hardware components. These are held in this directory and classified into groups according to their subdirectories like the following
- drivers/char – character oriented devices
- drivers/block – block oriented devices
- drivers/i2c – a generic i2c driver
- drivers/scsi – the SCSI interface
- drivers/usb – drivers for the USB subsystem
- ipc/ – indicates the Inter process communication
- lib/ – indicates the standard C library functions