目录
一、arch文件
1.作用
arch文件夹用于定义支持的架构和每个架构所需要的CPU处理器特定代码。它包含各种处理器架构的支持,包括汇编代码、核心实现和其他驱动程序,如X86、PowerPC、ARM、MIPS、SPARC、S390等。它还包含有关架构特定的处理器和中断处理器特定的信息,用于在整个系统中执行操作。
2.arch文件下的子文件示意图
3.各个子文件的作用
(1)alpha
alpha文件夹是内核源代码支持DEC alpha处理器的相关操作系统文件,包括主要抽象层,通用文件和架构相关文件。
(2)arc
arc文件夹是内核源代码支持SynopsysARC处理器的相关操作系统文件,其中包括主要抽象层,通
用文件和架构相关文件。
(3)arm
arm文件夹是内核源代码支持ARM处理器的相关操作系统文件,其中包括主要抽象层,通用文件和架构相关文件。
(4)arm64
arm64文件夹是内核源代码支持ARM64处理器的相关操作系统文件,其中包括主要抽象层,通用文件和架构相关文件。
(5)cshy
cshy文件夹下的cshy文件夹是内核源代码支持高通处理器的相关操作系统文件,其中包括主要抽象层,通用文件和架构相关文件。
(6)hexagon
是一个针对赛讯的嵌入式多处理器架构的linux内核支持,可以实现控制系统优化,高效率的计算单元。它能够处理赛讯表下发来的压缩代码,实现运算极大提高,多处理器和多核心技术确保系统高性能。
(7)ia64
表示Intelltanium存储器架构,是英特尔公司专门针对64位处理器的x86体系结构的构建,使用EPlC(Explicitly ParallelInstructionComputing)优化、改良的高性能处理机架构。它主要用于comp
uting领域,服务器市场和位图设备,它通常将Linux和Windows结合使用。
(8)loongarch
是中国龙芯基金会自主研发的64位权威处理器解决方案,采用多处理器技术实现计算和图形处理器整合,帮助企业规模和小型用户实现普及套用新一代计算机语言,把握更新整合知识的机遇。
(9)m68k
一种32位核心的处理器架构,能提供支持多种低功率的处理能力,并且可以在不同的软件环境中运行,如Linux、 Unix、VxWorks等.运行在m68k系统上的应用程序在移植到其他系统上也可正常执行。m68k平台也是应用在Android智能手机、平板电脑和苹果手机等多种终端设备上的。
(10)microblaz
它是一种精简的可编程处理器,由Xilinx开发,其也是一种庞大的RISC处理器。
(11)mips
它是一种RISC处理器体系结构,其中包含多款不同的处理器产品,包括针对低成本,大容量存储,虚拟化,图形处理,以及应用程序指令优化的设计。
(12)nios2
它是一种基于精简的定制的RISC系统的处理器,由Altera开发,其被称为NiosIl处理器。
(13)openrisc
它是一种开源RISC处理器体系结构,其包含一系列独特的体系结构指令以及多种定制硬件支持。
(14)parisc
它是一种由Hewlett Packard(现代Hewlett Packard Enterprise)开发的RISC处理器体系结构,其于1990年代晚期出现,后来被PA-RISC2.1系统取代。
(15)powerpc
它是一种架构,由IBM,Motorola和Apple合作开发,用于构建高性能,小而紧凑的体系结构指令集(RISC)处理器。
(16)riscv
它是一种新的RISC处理器架构,由RISC-V基金会支持,它是一个开放标准,旨在改变嵌入式,移动,网络和云计算系统的技术。
(17)s390
它是一种IBM的架构,用于构建极高性能的RISC处理器,其具有多项必备的硬件功能,可支持指令集向后兼容性,以及低能耗和高可靠性。
(18)sh
它是一个标准RISC处理器架构,由Hitachi/Renesas开发,作为针对32位和64位应用程序的小体积,功耗效率和性能优越的体系结构。
(19)sparc
它是由Sun Microsystems(后来被Oracle收购)开发的一种RISC处理器体系结构,其具有针对浮点计算,高大容量存储,虚拟存储器和互操作性的优势。
(20)um
它是一种可扩展的,高度可移植的RISC体系结构,其由Uni-Micro开发,包括多款处理器,交换机,以及网络存储器。
(21)x86
它是一种架构,由Intel设计用于其系列芯片组产品,其具有针对大多数主流桌面,笔记本电脑和移动设备产品的指令集向后兼容性。
(22)xtensa
它是一种低功耗的RISC处理器,由Tensilica公司开发,具有高可配置性,包括可自定义的指令集,硬件加速器,多处理器,高容量存储,以及多个安全等级的支持。
(23).gitignore
它是一个普通文件,其为Git配置指定了哪些文件和目录应该被Git忽略,以及如何处理已添加到仓库中的文件。
(24)Kconfig
Kconfig文件夹:它是Linux内核开发过程中用于管理系统配置和内核特性的文件夹,其包含一些特定的配置文件,用于配置不同硬件和软件组件。
二、block文件
1.作用
block文件夹中包含用于处理/O请求的核心内核实现,如块设备驱动和支持访问块设备的内核抽象层。它还包括一些用于处理块设备访问的辅助模块,如块请求处理和管理,硬盘缓存管理和磁盘空间管理等等。
2.block文件下子文件示意图
3.各个子文件的作用
(1)partitions文件
partitions文件夹中存放的是Linux内核中支持的分区表(partition table),包括MS-DOS、GPT以及
Bios Partition Table等。
(2)磁盘设备管理文件
block/genhd.c、drivers/block/ll_rw_blk.c和block/partitions/check.c.
(3)磁盘哈希表文件
block/blk-hash.c
(4)磁盘I/O队列文件
block/elevator.c和block/blk-mq.c
(5)定时器队列文件
block/blk-timeout.c
(6)磁盘追踪文件
block/blk-core.c
(7)内核区分管理文件
block/genhd.c
(8)剥离文件
block/blk-core.c
(9)硬盘加密文件
block/blk-crypto.c
(10)磁盘镜像文件
block/snapshot.c
(11)只能磁盘I/O调度文件
block/cfq-iosched.c和block/deadline-iosched.c
三、certs文件
1.作用
certs文件夹保存本地证书和密钥信息,用于Linux内核中的安全特性,如身份验证和认证。它也可以用于TLS/SSL,以便客户端和服务器之间的安全通信。
2.各个子文件的作用
(1)ca-bundle.trust.crt
该文件由X.509证书和信任门户列表组成,用于校验网站的安全证书。
(2)ca-bundle.crt
该文件包含一系列经过颁发的X.509根证书,用于验证用于互联网的HTTPS连接的安全证书的有效
性。
(3)ca-certificates.crt
该文件对证书的所有者和 issuer 进行签名,以验证对于加密通讯的所有者的身份证明。
(4)ca-certificates-cacert.pem
该文件由从网络无效的Cacert根证书制作而成,以认证SSL证书的有效性。
(5)ca-certificates.crt.txt
该文件中包含一系列X.509根证书,用来验证客户端/服务器之间的SSL连接证书的有效性。
四、crpyto文件
1.作用
rypto文件夹包含内核用于实现加密. 、解密、数字签名和Hash算法的模块,提供给用户态应用程序编程所需的crypto APl。它还提供一些支持硬件加速器的模块,以及允许用户在不同算法之间转换的能力。
2.各个子文件的作用
(1)aes.ko
这是AES算法的内核模块,允许管理员使用AES加密的数据流
(2)ans.ko
这是ANS算法的内核模块,通过将标准的ASCII文本转换为增强的字符串,从而防止误用和特定字符的攻击
(3)md5.ko
这是MD5算法的内核模块,允许管理员使用MD5加密数据流;
(4)sha1.ko
这是SHA-1算法的内核模块,允许管理员使用SHA-1加密数据流;
(5)ecryptfs.ko
这是Ecryptfs算法的内核模块,提供安全可靠的文件系统加密功能;
(6)des.ko
这是DES算法的内核模块,允许管理员使用DES加密的数据流;
(7)cast.ko
这是CAST算法的内核模块,允许管理员使用CAST加密的数据流;
(8)hmac.ko
这是HMAC算法的内核模块,可根据哈希函数实现消息认证的功能。
五、Documentation文件
1.作用
Documentation文件夹主要记录Linux内核源码中的说明文档,主要用于对开发者有一个基本的了解,例如关于Linux内核的一些特性、一些代码组织形式等相关文档;以及Linux系统调用,字符设备的和文件系统的指南,还有某些编程相关的内容;也可以用于查看接口文档,这样可以更好的理解内核编程基本知识。
六、drivers文件
1.作用
drivers文件夹的文件一般用来放置存放设备驱动的代码,这些文件会在Linux内核启动或者关闭的时候被加载或卸载,从而提供各种设备相关的功能并且支持与其他Linux 命令接口。例如:存储设备驱动,网络设备驱动、显示设备驱动等等。
2.各个子文件的作用
(1)acpi文件夹
是存放可编程计算机接口(ACPI)相关的硬件驱动代码。
(2)block文件夹
存放块设备(如硬盘、光驱等)的驱动源码文件。
(3)firewire文件夹
存放火线(FireWire)设备的驱动源码文件。
(4)GPU文件夹
存放GPU(图形处理器)相关的硬件驱动代码。
(5)hwmon文件夹
存放硬件监控器(如温度传感器、电压传感器等)的驱动
(6)input文件夹
存放系统输入设备(如鼠标、键盘等)的驱动源码文件。
(7)ion文件夹
存放有关ION内存管理驱动程序的源码文件。
(8)media文件夹
存放媒体设备(如摄像头、拍照机等)的驱动源码文件。
(9)net文件夹
存放网络接口设备(如网卡等)的驱动源码文件。
(10)rtc文件夹
存放实时时钟(RealTimeClock)的驱动源码文件。
(11)scsi文件夹
存放SCSI设备的驱动源码文件。
(12)sound文件夹
存放声卡设备的驱动源码文件。
(13)vfio文件夹
存放虚拟功能输入/输出(VFIO)设备的驱动源码文件。
(14)w1文件夹
存放单线一比特协议(1-Wire)设备的驱动源码文件。