Linux内核源码目录简介

news/2025/2/21 19:17:34/文章来源:https://www.cnblogs.com/fuhao2/p/18729885

目录介绍

  • arch:体系结构相关的代码,对于每个架构的CPU,arch目录下有一个对应的子目录,比如 arch/arm/、arch/i386/等。
  • block:块设备的通用函数。
  • crypto:常用加密和散列算法(如AES、SHA等),还有一些压缩和CRC校验算法。
  • drivers:所有的设备驱动程序,里面每一个子目录对应一类驱动程序,比如drivers/block/为块设备驱动程序,drivers/char/为字符设备驱动程序,drivers/mtd/为NORFlash、NANDFlash等存储设备的驱动程序。
  • fs:Linux支持的文件系统的代码,每个子目录对应一种文件系统,比如fs/jffs2/、fs/ext2/、fs/ext3/。
  • include:内核头文件,有基本头文件(存放在include/linux/目录下)、各种驱动或功能部件的头文件(比如include/media/、include/mtd/、include/net/)、各种体系相关的头文件(比如include/asm-arm/、include/asm-i386/)。当配置内核后,include/asm/是某个include/asm-xxx/(比如include/asm-arm/)的链接。
  • init:内核的初始化代码(不是系统的引导代码),其中的main.c文件中的start_kernel函数是内核引导后运行的第一个函数。
  • ipc:进程间通信的代码。
  • kernel:内核管理的核心代码,与处理器相关的代码位于arch/*/kemel/目录下。
  • lib:内核用到的一些库函数代码,比如crc32.c、string.c,与处理器相关的库函数代码位于arch/*/lib/目录下。
  • mm:内存管理代码,与处理器相关的内存管理代码位于arch/*/mm/目录下。
  • net:网络支持代码,每个子目录对应于网络的一个方面。
  • security:安全、密钥相关的代码。
  • sound:音频设备的驱动程序。
  • user:用来制作一个压缩的cpio归档文件:initrd 的镜像,它可以作为内核启动后挂接(mount)的第一个文件系统(一般用不到)。
  • Documentation:内核文档。
  • scripts:用于配置、编译内核的脚本文件。
  • tools:用与构建和调试内核的工具代码。
  • modules:目录存放了已建好的、可动态加载的模块。
  • Copying:目录下是GPL版权申明。
  • ReadMe:文件提供内核的各种编译方法;生成文件的查看方法,如nmvmlinux丨sort丨less。
  • Reporting-bugs:目录里是有关报告Bug的一些内容。
  • Rules.make:目录里是各种Makefilemake所使用的一些共同规则。
  • Config:隐藏文件。Make oldconfig和make defconfig会把生成的默认的configuration放到文件.config中。执行Make之后会根据Makefile上下层级依赖关系编译整个系统,.config作为编译各个模块的依据。
  • samples:一些示例代码。
  • virt:提供虚拟机技术(KVM等)的支持。
  • firmware: 保存用于驱动第三方设备的固件。
  • COPYING: 版权声明。
  • MAINTAINERS:维护者名单。
  • CREDITS:Linux主要的贡献者名单。
  • REPORTING-BUGS: Bug上报的指南。
  • README:帮助、说明文档。

根目录和大部分子目录下都有Makefile和Kconfig两个文件,内核的配置和编译就依赖于这两个文件。

Linux kernel Makefile 的规则:Linux内核Makefile体系可以分为五部分:

  • Makefile:位于内核源代码根目录的Makefile.称为TOPMakefile。
  • .config:内核配置文件。
  • arch/arch_name/Makefile:各个体系结构独立代码中的Makefile 成为Arch Makefile。
  • kbuild Makefile:整个源代码目录中约有500个这样的Makefile。
  • scripts/Makfile.*:适用于各种Kbuild Makefile的一般规则。

参考

  • https://blog.csdn.net/weixin_45264425/article/details/125947416
  • https://www.cnblogs.com/myitm/archive/2011/08/11/2135561.html
  • http://www.360doc.com/content/23/1230/21/277688_1109342627.shtml
  • http://www.wowotech.net/linux_kenrel/11.html
  • https://blog.csdn.net/weixin_42703045/article/details/129268099

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/887749.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关于 xrlong 是神的论证

xrlong orz搜索内容搜索结果__________________________________________________________________________________________本文来自博客园,作者:CuFeO4,转载请注明原文链接:https://www.cnblogs.com/hzoi-Cu/p/18729881

idea插件+cursor使用技巧

cursorignore配置# Compiled files *.class *.jar *.war# Build directories target/ build/# IDE files .idea/ *.iml .vscode/ .project .classpath .settings/# Logs *.log logs/# Temporary files *.tmp *.bak *.swp# Maven specific .mvn/ mvnw mvnw.cmd# Spring Boot spe…

设计测试用例方法 -经验方法(三种)

1、基于经验的测试技术之错误推测法 错误推测法也叫错误猜测法,就是根据经验猜想,已有的缺陷,测试经验和失败数据等可能有什么问题并依此设计测试用例2、基于经验的测试技术之异常分析法 系统异常分析法就是针对系统有可能存在的异常操作、软硬件缺陷引起的故障进行分析,依…

DeepSeek 即将发布 5 个开源项目;Cartesia Voice Changer:声音转换、克隆和实时语音翻译丨日报

开发者朋友们大家好:这里是 「RTE 开发者日报」 ,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE(Real-Time Engagement) 领域内「有话题的 技术 」、「有亮点的 产品 」、「有思考的 文章 」、「有态度的 观点 」、「有看点的 活动 」,但内容仅代表编辑…

Spring复习-注解开发

@Component 基本Bean注解,主要是使用注解的方式替代原有xml的 标签及其标签属性的配置使用@Component 注解替代标签使用:再类上使用 @Component(value = "userDao") //若没有配置value,默认使用类名作为beanName public class UserDaoImpl implements UserDao { }…

测试用例编写技巧

一、用例模板 模板1:模板2:模板3:二、用例的来源 (1)公司就有模板 (2)自己设计模板 (3)用例管理工具种导出模板 三、写用例的核心要素 用例编号、用例标题、前置条件、用例步骤,预期结果、优先级(必填) 系统名称、模块名称、用例创建时间、用例类型、实际结果、执行…

利用deepseek,体验ai写代码

vscode利用cline接入火山引擎deepseek,免费体验ai写代码。注册火山引擎,开通deepseek服务进行火山引擎官网https://www.volcengine.com/,进行注册。进入控制台,访问火山方舟在左侧下拉菜单选择开通管理,开通模型,由于我已经开通过R1模型,以DeepSeek-R1-Distill-Qwen-32B…

测试用例编写

模板1:模板2:模板3:二、用例的来源(1)公司就有模板(2)自己设计模板(3)用例管理工具种导出模板三、写用例的核心要素用例编号、用例标题、前置条件、用例步骤,预期结果、优先级(必填)系统名称、模块名称、用例创建时间、用例类型、实际结果、执行时间(非必填项)四…

TEN 现已接入智谱 GLM-Realtime丨社区来稿

就在上周,三星 Galaxy S25 系列全球首发。基于最新 Galaxy AI 的三星 Galaxy S25 系列手机是三星在全球范围内首次推出具有视频通话功能的原生 AI 智能硬件产品。三星 Galaxy S25 系列背后的智谱最新实时音视频通话 GLM-Realtime 模型,今天已经以插件形式接入 TEN。现在你可以…

Canvas._left will be removed, DO NOT USE IT

问题:SignaturePad 手绘板,在电脑端可以绘制,在小程序端绘制以后不显示。开发者工具打印日志:Canvas._left will be removed, DO NOT USE IT.原因:真机使用时确实无法获取该canvas的实例属性_left.解决:通过微信小程序的wx.createSelectorQuery()方法得到query筛选器,通…

实战解析传统发电站智能化改造-第二期(带图带教程)

传统发电站的智能化改造,如同为老工匠配备高科技工具,提升效率与精准度。改造后的发电站兼具传统与智能,更高效、环保,适应现代能源需求。智慧系统搭建平台是连接感知层和应用层的桥梁,将原始数据转化为有价值的信息,为智能决策和应用提供支持。上期介绍了传统发电站改造…

PostgreSQL技术大讲堂 - 第80讲:duckdb数据库

PostgreSQL第80讲:主题:duckdb数据库 内容介绍: 1、duckdb身世之谜 2、duckdb性能为什么秒杀众多数据库 3、安装duckdb时如何跳过众多的坑 4、duckdb的使用和管理 5、duckdb、pg_duckdb、pg三个数据库性能大比拼 主讲老师:CUUG数据库老陈,PG中文社区委员、CCF数据库专委会…