The Linux kernel source code is composed as follows (assuming relative to the Linux directory):
Arch This subdirectory contains the core code associated with the hardware architecture supported by this core source code. such as for X86 platform is i386.
Include this directory includes most of the core include files. There is also a subdirectory for each supported architecture.
Init This directory contains the core boot code.
MM This directory contains all the memory management code. The memory management code associated with the specific hardware architecture is located in the arch/*/mm directory, as it corresponds to the X86 arch/i386/mm/fault.c
All device drivers in the drivers system are located in this directory. It is further divided into several types of device drivers, each has a corresponding subdirectory, such as the driver of the sound card corresponding to the Drivers/sound.
IPC This directory contains the core interprocess communication code.
Modules This directory contains modules that have been built to be dynamically loaded.
The file system code supported by FS Linux. Different file systems have different subdirectories corresponding, such as the ext2 file system corresponds to the ext2 subdirectory.
Kernel main core code. Also, code related to the processor structure is placed in the Arch/*/kernel directory.
NET core of the network part of the code. Each of these subdirectories corresponds to one aspect of the network.
Lib This directory contains the core library code. The library code associated with the processor structure is placed under the arch/*/lib/directory.
Scripts this directory contains script files for configuring the core.
Documentation This directory is a document that acts as a reference.