[linux] Analysis of the bottom layer - take you to understand the composition and function of the Linux kernel source code in detail (1)

Table of contents

1. Arch file

1. Function

2. Schematic diagram of sub-files under the arch file

3. The role of each sub-file

(1)alpha

(2)arc

(3)arm

(4)arm64

(5)cshy

(6)hexagon

(7)to 64

(8)longarch

(9)m68k

(10)microblaz

(11)mips

(12)news2

(13)openrisc

(14) paris

(15)powerpc

(16)riscv

(17)s390

(18)sh

(19)sparc

(20)one

(21)x86

(22)xtensa

(23).gitignore

(24)Kconfig

Two, block file

1. Function

2. Schematic diagram of sub-files under the block file

3. The role of each sub-file

(1) partitions file

(2) Disk device management files

(3) Disk hash table file

(4) Disk I/O queue file

(5) Timer queue file

(6) Disk trace file

(7) Kernel distinguishes management files

(8) Strip files

(9) Hard disk encrypted files

(10) Disk image file

(11) Only disk I/O scheduling files

Three, certs file

1. Function

2. The role of each sub-file

(1)ca-bundle.trust.crt

(2)ca-bundle.crt

(3)ca-certificates.crt

(4)ca-certificates-cacert.pem

(5)ca-certificates.crt.txt

Four, crpyto file

1. Function

2. The role of each sub-file

(1)aes.ko

(2) ans.ko

(3)md5.ko

(4) take 1. or

(5)ecryptfs.ko

(6) des.ko

(7)cast.or

(8)hmac.ko

Five, Documentation file

1. Function

Six, drivers file

1. Function

2. The role of each sub-file

(1) acpi folder

(2) block folder

(3) firewire folder

(4) GPU folder

(5) hwmon folder

(6) input folder

(7) ion folder

(8) media folder

(9) net folder

(10) rtc folder

(11) scsi folder

(12) sound folder

(13) vfio folder

(14) w1 folder


1. Arch file

1. Function

The arch folder is used to define the supported architectures and the CPU processor specific code required for each architecture. It contains support for various processor architectures, including assembly code, core implementation, and other drivers, such as X86, PowerPC, ARM, MIPS, SPARC, S390, etc. It also contains architecture-specific processor and interrupt processor-specific information for performing operations throughout the system.

2. Schematic diagram of sub-files under the arch file

3. The role of each sub-file

(1)alpha

The alpha folder is the kernel source code to support the relevant operating system files of the DEC alpha processor, including the main abstraction layer, general files and architecture related files.

(2)arc

The arc folder is the relevant operating system files that the kernel source code supports Synopsys ARC processors, including the main abstraction layer, common
files and architecture-related files.

(3)arm

The arm folder is the relevant operating system files that the kernel source code supports ARM processors, including the main abstraction layer, common files, and architecture-related files.

(4)arm64

The arm64 folder is the relevant operating system files that the kernel source code supports ARM64 processors, including the main abstraction layer, common files and architecture-related files.

(5)cshy

The cshy folder under the cshy folder is the relevant operating system files that the kernel source code supports Qualcomm processors, including the main abstraction layer, general files and architecture related files.

(6)hexagon

It is a linux kernel support for Cycent's embedded multi-processor architecture, which can realize control system optimization and high-efficiency computing units. It can process the compressed codes sent by Cycent watches, greatly improving the calculation, and the multi-processor and multi-core technologies ensure the high performance of the system.

(7)to 64

Indicates the Intelltanium memory architecture, which is Intel's construction of the x86 architecture for 64-bit processors, using EPlC (Explicitly Parallel Instruction Computing) optimized and improved high-performance processor architecture. It is mainly used
in the field of computing, the server market and bitmap devices, and it usually uses Linux and Windows in combination.

(8)longarch

It is a 64-bit authoritative processor solution independently developed by the China Loongson Foundation. It uses multi-processor technology to realize the integration of computing and graphics processors, helping large-scale enterprises and small users to popularize and apply the new generation of computer languages, and grasp the opportunity of updating and integrating knowledge.

(9)m68k

A 32-bit core processor architecture that can provide a variety of low-power processing capabilities and can run in different software environments, such as Linux, Unix, VxWorks, etc. Applications running on the m68k system are transplanted to It can also be executed normally on other systems. The m68k platform is also applied to various terminal devices such as Android smart phones, tablet PCs and Apple mobile phones.

(10)microblaz

It is a stripped-down programmable processor, developed by Xilinx, which is also a bulky RISC processor.

(11)mips

It is a RISC processor architecture that includes several different processor products, including designs optimized for low cost, mass storage, virtualization, graphics processing, and application instructions.

(12)news2

It is a processor based on a streamlined custom RISC system, developed by Altera, and it is called the NiosIl processor.

(13)openrisc

It is an open source RISC processor architecture that includes a unique set of architectural instructions and a variety of custom hardware support.

(14) paris

It is a RISC processor architecture developed by Hewlett Packard (modern Hewlett Packard Enterprise) which appeared in late 1990s and was later replaced by PA-RISC2.1 systems.

(15)powerpc

It is an architecture, jointly developed by IBM, Motorola, and Apple, to build high-performance, small and compact architecture instruction set (RISC) processors.

(16)riscv

It is a new RISC processor architecture, supported by the RISC-V Foundation, which is an open standard that aims to transform the technology of embedded, mobile, network and cloud computing systems.

(17)s390

It is an IBM architecture for building extremely high-performance RISC processors with several essential hardware features that support instruction set backward compatibility, as well as low power consumption and high reliability.

(18)sh

It is a standard RISC processor architecture developed by Hitachi/Renesas as a small size, power efficient and performance architecture for 32-bit and 64-bit applications.

(19)sparc

It is a RISC processor architecture developed by Sun Microsystems (later acquired by Oracle), which has advantages for floating-point computing, high mass storage, virtual memory, and interoperability.

(20)one

 It is a scalable, highly portable RISC architecture developed by Uni-Micro, including a variety of processors, switches, and network storage.

(21)x86

It is an architecture designed by Intel for use in its line of chipset products with instruction set backward compatibility for most mainstream desktop, laptop and mobile device products.

(22)xtensa

It is a low-power RISC processor, developed by Tensilica, with high configurability, including customizable instruction sets, hardware accelerators, multi-processors, high-capacity storage, and support for multiple security levels.

(23).gitignore

It is an ordinary file that specifies for Git configuration which files and directories should be ignored by Git, and what to do with files that have been added to the repository.

(24)Kconfig

Kconfig folder: It is a folder used to manage system configuration and kernel features during Linux kernel development. It contains some specific configuration files for configuring different hardware and software components.

Two, block file

1. Function

The block folder contains the core kernel implementation for handling /O requests, such as block device drivers and kernel abstraction layers that support access to block devices. It also includes some auxiliary modules for handling block device access, such as block request processing and management, hard disk cache management and disk space management, etc.

2. Schematic diagram of sub-files under the block file

3. The role of each sub-file

(1) partitions file

The partitions folder stores the partition tables supported by the Linux kernel, including MS-DOS, GPT, and
Bios Partition Table.

(2) Disk device management files

block/genhd.c、drivers/block/ll_rw_blk.c和block/partitions/check.c.

(3) Disk hash table file

block/blk-hash.c

(4) Disk I/O queue file

block/elevator.c和block/blk-mq.c

(5) Timer queue file

block/blk-timeout.c

(6) Disk trace file

block/blk-core.c

(7) Kernel distinguishes management files

block/genhd.c

(8) Strip files

block/blk-core.c

(9) Hard disk encrypted files

block/blk-crypto.c

(10) Disk image file

block/snapshot.c

(11) Only disk I/O scheduling files

block/cfq-iosched.c和block/deadline-iosched.c

Three, certs file

1. Function

The certs folder holds local certificate and key information for security features in the Linux kernel such as authentication and authentication. It can also be used with TLS/SSL for secure communication between client and server.

2. The role of each sub-file

(1)ca-bundle.trust.crt

This file consists of an X.509 certificate and a list of trusted portals, which are used to verify the security certificate of the website.

(2)ca-bundle.crt

This file contains a list of X.509 root certificates issued to verify the validity of security certificates used for HTTPS connections to the Internet
.

(3)ca-certificates.crt

This file signs the certificate's owner and issuer to verify the identity of the owner for encrypted communications.

(4)ca-certificates-cacert.pem

This file is crafted from invalid Cacert root certificates from the network to certify the validity of SSL certificates.

(5)ca-certificates.crt.txt

This file contains a series of X.509 root certificates used to verify the validity of SSL connection certificates between client/server.

Four, crpyto file

1. Function

The crypto folder contains the modules used by the kernel to implement encryption, decryption, digital signature and Hash algorithm, and provides the crypto APl required for user state application programming. It also provides some modules that support hardware accelerators, and the ability to allow users to switch between different algorithms.

2. The role of each sub-file

(1)aes.ko

This is a kernel module for the AES algorithm that allows administrators to use AES encrypted data streams

(2) ans.ko

This is the kernel module of the ANS algorithm, which prevents misuse and character-specific attacks by converting standard ASCII text into enhanced strings

(3)md5.ko

This is the kernel module for the MD5 algorithm, which allows administrators to use MD5 to encrypt data streams;

(4) take 1. or

This is the kernel module for the SHA-1 algorithm, which allows administrators to use SHA-1 to encrypt data streams;

(5)ecryptfs.ko

This is the kernel module of the Ecryptfs algorithm, which provides safe and reliable file system encryption;

(6) des.ko

This is the kernel module for the DES algorithm, allowing administrators to use DES encrypted data streams;

(7)cast.or

This is the kernel module of the CAST algorithm, which allows administrators to use CAST encrypted data streams;

(8)hmac.ko

This is the kernel module of the HMAC algorithm, which can realize the function of message authentication according to the hash function.

Five, Documentation file

1. Function

The Documentation folder mainly records the explanatory documents in the Linux kernel source code, which is mainly used to have a basic understanding of developers, such as some features of the Linux kernel, some code organization forms and other related documents; and Linux system calls, character devices and A guide to the file system, as well as some programming-related content; it can also be used to view interface documents, so that you can better understand the basics of kernel programming.

Six, drivers file

1. Function

The files in the drivers folder are generally used to place the code for storing device drivers. These files will be loaded or unloaded when the Linux kernel is started or shut down, thereby providing various device-related functions and supporting interfaces with other Linux commands. For example: storage device drivers, network device drivers, display device drivers, etc.

2. The role of each sub-file

(1) acpi folder

It is to store the hardware driver code related to Programmable Computer Interface (ACPI).

(2) block folder

Store the driver source code files of block devices (such as hard disks, optical drives, etc.).

(3) firewire folder

Store the driver source code files of FireWire devices.

(4) GPU folder

Store GPU (Graphics Processing Unit) related hardware driver code.

(5) hwmon folder

Store the drivers for hardware monitors (such as temperature sensors, voltage sensors, etc.)

(6) input folder

Store the driver source code files of system input devices (such as mouse, keyboard, etc.).

(7) ion folder

Store the source code files related to ION memory management driver.

(8) media folder

Store the driver source code files of media devices (such as cameras, cameras, etc.).

(9) net folder

Store the driver source code files of network interface devices (such as network cards, etc.).

(10) rtc folder

Store the driver source code file of the real-time clock (RealTimeClock).

(11) scsi folder

Store the driver source code files of SCSI devices.

(12) sound folder

Store the driver source code files of the sound card device.

(13) vfio folder

Store the driver source code files of the virtual function input/output (VFIO) device.

(14) w1 folder

Store the driver source code files of the single-wire one-bit protocol (1-Wire) device.

Guess you like

Origin blog.csdn.net/qq_60503432/article/details/128797362