Note: This article is to learn the notes of teacher Zhu's curriculum, based on linux2.6.35.7 and jiuding x210bv3s Development Board for transplantation.
/arch. Arch is the abbreviation of architecture. Arch Directory is a good number of different architectures of the CPU subdirectory, such as arm of the CPU all the files are in the Arch/arm directory, X86 CPU All files are in the Arch/x86 directory.
/block. Block means block devices that block devices are devices that receive and send data in blocks of data. For example, SD card, Inand, Nand, hard disk, etc. are pieces of equipment. You can almost assume that a block device is a storage device. The block directory is decentralized to some of the Linux storage System's code for chunk device management.
/crypto. Is the meaning of encryption. This directory decentralized the kernel itself using the encryption API, the implementation of the common encryption and hashing algorithm, there are some compression and CRC check algorithm.
/documentation. There are some help documents in it.
/drivers. Driver directory, which is the largest directory in the kernel, which lists the driver source code for all hardware devices supported by the Linux kernel.
/firmware. Firmware. What is the firmware. Firmware is actually software, but this software is solidified into the IC running, in order to let the computer read and understand the signal from the device code, like s5pv210 in the Irom code.
/fs. FS is the file system, which lists the implementation of various file systems supported by Linux.
/include. Header files directory, common (various CPU architecture common) header files are here. Some header files unique to each CPU architecture are in the Arch/***/include directory and its subdirectories.
/init. Init is an initialization meaning, and the code in this directory is the code that initializes the kernel when the Linux kernel starts.
/IPC. IPC is the inter process commuication, interprocess communication, which is the code implementation of the IPC supported by Linux.
/kernel. Kernel is the kernel, the core of the kernel, including the scheduling of processes (SCHED.C), and the creation and revocation of processes (FORK.C and exit.c) and the other core code associated with the platform in the Arch/***/kernel directory.
/lib. Lib is the meaning of the library, here are some common library functions, note that the library functions here and C language library functions are not the same. In the kernel programming is unable to use the C language standard library function, here's Lib directory library function is replaces those standard library function. For example, to convert a string into a digital atoi, kernel programming can only be used in the Lib directory atoi functions, can not use the standard C language library of the atoi. For example, in the kernel to print information can not use printf, and to use PRINTK, this PRINTK is our Lib directory.
/mm. MM is memory management, memory management, which contains a system-independent part of the memory management code. The memory management code associated with the architecture is located under ARCH/***/MM.
/net. This directory is the network-related code, such as the TCP/IP protocol stack are here.
/scripts. Script, this directory is all script files, these script files are not used when the Linux kernel is working, but are used to assist in the production of the Linux kernel configuration compilation. When you run a command such as make menuconfig or make xconfig configure the kernel, the user interacts with the script that is located in the directory.
/security. Security-related code. It's important to protect your computer from viruses and hackers.
/sound. Related to audio processing.
/tools. Some of the useful tools used in Linux
/usr. Implement Cpio for packaging and compression. The code in this folder creates these files after the kernel compilation is complete.
/virt. This folder contains the virtualization code that allows users to run multiple operating systems at once. With virtualization, the client operating system runs like any other application running on a Linux host.
Some individual files under the root directory:
Copying: Licensing and licensing information. The Linux kernel is licensed under the GPLV2 license. This license grants anyone the right to use, modify, distribute, and share source code and compile code free of charge. However, no one can sell the source code.
Credits: Contributor list.
Kbuild: Is the meaning of kernel build, that is, the meaning of kernel compilation, set up some kernel-set scripts. For example, this script sets an arch variable, which is the type of processor that the developer wants to build to support.
Kconfig: This script will be used when the developer configures the kernel.
Maintainers: This is a list of current maintainers, their email addresses, home pages, and the specific portions or files of the kernel that they are responsible for developing and maintaining. This is useful when a developer discovers a problem in the kernel and wants to be able to report it to defenders who can handle the problem.
Makefile: This script is the primary file for compiling the kernel. This file is passed to the compiler for compiling parameters and compiling the required files and necessary information.
README: This document provides information that developers want to know about how to compile the kernel.
Reporting-bugs: This document provides information on how to report the problem.
Summary: So many catalogs are closely related to us is the arch and drivers directory, and then some other relevant include including, block, MM, net, lib and other directories. The single file in the root directory is more important than the kbuild,kconfig,makefile.