The source code that Linux uses to support various architectures consists of about 4,500 C language programs, which are stored in about 270 subdirectories, totaling approximately 2 million lines of code, and occupy about 58MB of disk space.
http://blog.csdn.net/liaoshengjiong/article/details/3957654
kernel-3.10.0-123.el7.src.rpm
Source code All in directory:/usr/src/linux (most Linux distributions)
Arch Platform related Code
I386 IBM's PC architecture
◇kernel Kernel Core section
◇MM Memory Management
◇math-emu floating-point unit software simulation
◇lib Hardware-related tool functions
◇boot Boot Program
▲compressed Compression Kernel Processing
▲tools a program that generates a 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 architecture for MIPS SGI
PowerPC-based architecture for PPC MOTOROLA-IBM
m68k Motorola's mc680x0-based architecture
ARM Processor-based architecture
Block partial device driver
Crypto uses diff and patch to maintain source code commonly used encryption and hashing algorithms (such as AES, SHA, etc.), there are some compression and CRC check algorithm
Documentation text file for general explanations and comments about the various parts of the kernel
Drivers: A device driver that consumes a subdirectory for each different driver.
Block blocks device drivers
◇paride support for accessing IDE devices from the same port
SCSI SCSI device drivers
Char character device driver
◇joystick Joystick
◇ftape Tape Streaming Device
◇hfmodem Radio Equipment
◇IP2 intelliport Multi-port serial controller
NET network card device, the realization of a variety of common network protocols.
Sound Audio card Device
Video card Device
CDROM dedicated CD-ROM device (except ATAPI and SCSI)
ISD0N ISDN Devices
apl000 Fuji's AP1000 Equipment
Macintosh device for Macintosh Apple
SGI SGI Devices
FC4 Fiber Optic Equipment
Acorn Acorn's Equipment
Misc Miscellaneous Equipment
PNP Plug and Play support
USB Universal Serial Bus (USB) support
Support for PCI PCI bus
Sbus Sun's SPARC sbus support
NuBus Apple's Macintosh NuBus support
Zorro Amiga's Zorro Bus support
Dio HP's HP300 Dio bus support
TC Sun's TURBOchannel support (not yet completed)
FS File system
Proc/proc Virtual File system
Devpts/dev/pts Virtual File system
Ext2 Linux local Ext2 file system
Isofs ISO9660 File System (CD-ROM)
NFS Network File System (NFS)
NFSD Integrated Network File System server
Generic code for FAT-based file systems
Msdos Microsoft MS-DOS file system
Vfat Microsoft's Windows file System (VFAT)
NLS native language Support
NTFS Microsoft's Windows NT file system
Smbfs Microsoft Windows Server Message Block (SMB) file system
Umsdos Umsdos File System
Minix Minix File System
HPFS IBM's OS/2 file system
SysV SystemV, SCO, Xenix, coherent and Version7 file systems
NCPFS Novell's NetWare core protocol (NCP0
UFs Unixbsd, SunOs, FreeBSD, NetBSD, OpenBSD, and NeXTSTEP file systems
Fast file system of the Affs Amiga (FFS)
CODA CODA Network File system
HFS Apple's Macintosh file system
ADFS Acorn Disk-populated file system
EFS file system for an SGI IRIX EFS
qnx4 QNX4 OS uses a file system that is not
ROMFS read-only small file system
Support for the AUTOFS Directory Auto Loader program
LOCKD support for remote file locking
Include header file (. h).Where the system-related header files are placed in the Linux sub-directory
Core Linux Kernel section
◇LOCKD Remote File Lock
◇NFSD Integrated Network File Server
◇SUNRPC Sun's remote procedure call
◇byteorder byte Exchange function
◇modules Module Support
Asm-generic platform-independent low-level header file
Asm-i386 IBM's PC architecture
Asm-alpha Compaq's Alpha Architecture
Asm-mips SGI's MIPS architecture
PowerPC-based architecture of asm-m68k MOTOROLA-IBM
PowerPC architecture of ASM-PPC MOTOROLA-IBM
asm-s390 IBM's system/390 architecture
Asm-sparc Sun's SPARC architecture
ASM-SPARC64 Sun's ULTRA-SPARC architecture
Asm-arm architecture based on ARM processor
NET Network
SCSI SCSI Support
Video card support
Config defines the header file where the kernel-configured macros reside
Init kernel initialization code
interprocess communication for Ipc System V
Kernel kernel core part: process, timing, program execution, signal, module. part of the platform-related code is placed in the Arch/*/kernel directory
LIB: library file code.
mm memory processing, and part of the platform-related code is placed in the ARCH/*/MM directory
NET network code, implements a variety of common network protocols.
Scripts script files for configuring kernel files
Security: Primarily a selinux module
Sound: Drivers for common audio devices, etc.
USR: Implements a cpio
Under the i386 system, the system boot will be executed starting from Arch/i386/kernel/head.s, and then transferred to the main () function in init/main.c to initialize the kernel. I personally think that can be read in this order (preferably first read the main data structure definition, etc.), for each module code a cursory look at it, the emphasis should be placed in the direction you want to study. You know, it is difficult for a person to master all the Linux kernel source code!
Introduction to Linux Source code