【linux】剖析底层——带你详细了解Linux内核源码的构成及其作用-程序员宅基地

技术标签: 运维  linux  系统架构  运维开发  centos  

目录

一、arch文件

1.作用

2.arch文件下的子文件示意图

3.各个子文件的作用

(1)alpha

(2)arc

(3)arm

(4)arm64

(5)cshy

(6)hexagon

(7)ia64

(8)loongarch

(9)m68k

(10)microblaz

(11)mips

(12)nios2

(13)openrisc

(14)parisc

(15)powerpc

(16)riscv

(17)s390

(18)sh

(19)sparc

(20)um

(21)x86

(22)xtensa

(23).gitignore

(24)Kconfig

二、block文件

1.作用

2.block文件下子文件示意图

3.各个子文件的作用

(1)partitions文件

(2)磁盘设备管理文件

(3)磁盘哈希表文件

(4)磁盘I/O队列文件

(5)定时器队列文件

(6)磁盘追踪文件

(7)内核区分管理文件

(8)剥离文件

(9)硬盘加密文件

(10)磁盘镜像文件

(11)只能磁盘I/O调度文件

三、certs文件

1.作用

2.各个子文件的作用

(1)ca-bundle.trust.crt

(2)ca-bundle.crt

(3)ca-certificates.crt

(4)ca-certificates-cacert.pem

(5)ca-certificates.crt.txt

四、crpyto文件

1.作用

2.各个子文件的作用

(1)aes.ko

(2)ans.ko

(3)md5.ko

(4)sha1.ko

(5)ecryptfs.ko

(6)des.ko

(7)cast.ko

(8)hmac.ko

五、Documentation文件

1.作用

六、drivers文件

1.作用

2.各个子文件的作用

(1)acpi文件夹

(2)block文件夹

(3)firewire文件夹

(4)GPU文件夹

(5)hwmon文件夹

(6)input文件夹

(7)ion文件夹

(8)media文件夹

(9)net文件夹

(10)rtc文件夹

(11)scsi文件夹

(12)sound文件夹

(13)vfio文件夹

(14)w1文件夹


一、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)设备的驱动源码文件。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_60503432/article/details/128797362

智能推荐

AGV小车导航控制 研一《智能控制》课程文献阅读作业_四轮agv传递函数-程序员宅基地

文章浏览阅读1w次,点赞4次,收藏55次。摘要AGV(即自动导向小车)是一种集控制、定位、各种传感器技术于一体的设备。随着智能车技术的不断发展,智能车的应用范围和功能都将大为拓展,现已逐渐用于工业与民用领域。但是由于负载变化、使用环境条件恶劣等原因,在实际运用时AGV小车在定位及控制上依然有许多难点需要攻克。本文即针对上述难点,研究并设计了一种新型的驱动方式和控制系统,利用模糊控制与PID控制相结合的方法,在开机初期误差矫正快,后期平稳,可以迅速跟踪期望轨迹。在实验状态下,运行速度为1米每秒时,0.5米的误差约5秒即可消除,达到稳定状态。引言_四轮agv传递函数

Android XML文件使用-程序员宅基地

文章浏览阅读230次。转自:http://www.cnblogs.com/zhengtao/articles/1924940.html一、布局文件:在layout目录下,使用比较广泛;  我们可以为应用定义两套或多套布局,例如:可以新建目录layout_land(代表手机横屏布局),layout_port(代表手机竖屏布局),系统会根据不同情况自动找到最合适的布局文件,但是在同一界面的两套不同布局文

std::thread和std::this_thread的详细说明-程序员宅基地

文章浏览阅读2.5k次,点赞3次,收藏13次。std::thread类来表示执行的各个线程。执行线程是实际上是执行一系列指令,可以在多线程环境中与其他此类序列同时执行,同时共享相同的地址空间。std::this_thread命名空间包含了对当前线程的一些基本操作,如获取当前线程id、休眠当前线程、让渡当前线程的时间片给其他线程等。_std::this_thread

jQuery 父元素选择器 parent() 和 parents()_jquery父元素选择器-程序员宅基地

文章浏览阅读7.7k次。jQuery的父元素选择器小编很少使用,但却看到不少web开发者们经常使用。小编个人是不太推荐使用父元素选择器的。因为如果是列表的情况下,在循环时可以将当前的索引绑定给需要点击的按钮,通过索引查找元素。本篇文章在小编不推荐的情况下,还是决定写一篇。先来一段 HTML结构代码<table class="table table-bordered" id="user..._jquery父元素选择器

杰理之MCLK 主时钟【篇】_mclk wclk 区别-程序员宅基地

文章浏览阅读84次。也称IIS系统时 钟,一般是采样频率的256倍、512倍,384倍。假设采样率是48K,MCLK输出的时钟是采样的256倍,则MCLK会输出 48K*256 = 12.288MHz。_mclk wclk 区别

小白如何从零开始设计并开发一个微信小程序?-程序员宅基地

文章浏览阅读3k次,点赞45次,收藏10次。微信小程序官网:https://mp.weixin.qq.com/cgi-bin/wx微信小程序官方文档:https://developers.weixin.qq.com/miniprogram/dev/framework/微信小程序API:https://developers.weixin.qq.com/miniprogram/dev/api/微信小程序开发的简要过程(包括制作、提交审核、发布、下载小程序码等):1. 小程序原型设计 开发前,最好先做个原型,把自己的需求理顺。我.

随便推点

【Win10】打开控制面板提示:操作系统当前的配置不能运行此应用程序-程序员宅基地

文章浏览阅读1.2w次,点赞2次,收藏19次。win10系统,打开控制面板,提示 操作系统当前的配置不能运行此应用程序_操作系统当前的配置不能运行此应用程序

神经网络压缩 剪枝 量化 嵌入式计算优化NCNN mobilenet squeezenet shufflenet_基于数据压缩的mec网络中系统能效的优化方法-程序员宅基地

文章浏览阅读1.1w次,点赞5次,收藏58次。性能提升方法本文github链接1. 小模型 mobilenet , 更精细模型的设计,紧致网络设计 mobilenet squeezenet shufflenet 123MobileNet逐通道卷积 + 普通点卷积 SqueezeNet 1∗1 和3∗3 卷积较少通道数量 ShuffleNet..._基于数据压缩的mec网络中系统能效的优化方法

高并发场景以及应对技巧-程序员宅基地

文章浏览阅读2.7k次。业务系统高并发(High Concurrency)限流: 鉴于只有少部分用户能够秒杀成功,所以要限制大部分流量,只允许少部分流量进入服务后端。分流:负载就是问题,高并发问题。均衡就是解决手段。削峰:对于秒杀系统瞬时会有大量用户涌入,所以在抢购一开始会有很高的瞬间峰值。高峰值流量是压垮系统很重要的原因,所以如何把瞬间的高流量变成一段时间平稳的流量也是设计秒杀系统很重要的思路。实现削峰的常用的方法有利用缓存和消息中间件等技术。异步处理:秒杀系统是一个高并发系统,采用异步处理模式可以极大地提高系统并_高并发场景

登录界面转换实现html,一个登录界面的PS设计和HTML/CSS实现-程序员宅基地

文章浏览阅读341次。这样的登录界面可用在网站、桌面软件、Web软件等上面,你可以根据自己的需求改变界面配色。好的,先看看界面最终设计的效果:1、创建登录界面的背景在Photoshop中,选择“圆角矩形工具”,设置半径为10px。将前景色设置为#aeaeae。然后绘制如下的矩形框。尺寸大小取决于你自己。下面为这个登录背景框添加图层样式:透明度为 40%添加阴影:渐变叠加:从黑到白,具体参数如下:这时背景框的效果如下:2..._登录框效果图如何做成html

EM算法 - 2 - EM算法在高斯混合模型学习中的应用_em算法在高斯混合模型中的应用-程序员宅基地

文章浏览阅读8k次,点赞5次,收藏15次。声明: 1,本篇为个人对《2012.李航.统计学习方法.pdf》的学习总结,不得用作商用,欢迎转载,但请注明出处(即:本帖地址)。 2,由于本人在学习初始时有很多数学知识都已忘记,所以为了弄懂其中的内容查阅了很多资料,所以里面应该会有引用其他帖子的小部分内容,如果原作者看到可以私信我,我会将您的帖子的地址付到下面。 3,如果有内容错误或不_em算法在高斯混合模型中的应用

【玩转华为云】手把手教你用Modelarts基于YOLO V3算法实现物体检测-程序员宅基地

文章浏览阅读2k次。本篇推文共计2000个字,阅读时间约3分钟。华为云—华为公司倾力打造的云战略品牌,2011年成立,致力于为全球客户提供领先的公有云服务,包含弹性云服务器、云数据库、云安全等云计算服务,软..._modelarts yolo weights 文件 bbs 华为云

推荐文章

热门文章

相关标签