写点什么

Linux 内核源码结构(1)

  • 2020-04-04
  • 本文字数:1085 字

    阅读完需:约 4 分钟

Linux内核源码结构(1)

在上一期中,我们介绍了 Linux 内核发展的历史,也介绍了与其相关的 Unix 和 GNU 的相关知识。从这一期开始,我们将介绍 Linux 内核的源码结构。我们将先根据 Linux 源码的目录结构进行分析,到本文章发布前,Linux 4.19 的最新版本为 Linux 4.19.94,我们将依据 openEuler 开源社区源码并参考 Linux 4.19.94 版内核源码进行分析。

一、Linux 内核源码的目录结构分析

下图列出了截至文章发表前 openEuler 开源社区 kernel 目录下的目录结构[5]:





其中各个文件夹中源代码的功能如下表所示[1] [3]:


目录/文件名源码功能简介
/Documentation说明文档,对每个目录的具体作用进行说明。
/arch不同CPU架构下的核心代码。其中的每一个子目录都代表Linux支持的CPU架构。
/block块设备通用函数。
/certs与证书相关。
/crypto常见的加密算法的C语言实现代码,譬如crc32、md5、sha1等。
/drivers内核中所有设备的驱动程序,其中的每一个子目录对应一种设备驱动。
/include内核编译通用的头文件。
/init内核初始化的核心代码。
/ipc内核中进程间的通信代码。
/kernel内核的核心代码,此目录下实现了大多数Linux系统的内核函数。与处理器架构相关的内核代码在/kernel/$ARCH/kernel。
/lib内核共用的函数库,与处理器架构相关的库在/kernel/$ARCH/lib。
/mm内存管理代码,譬如页式存储管理内存的分配和释放等。与具体处理器架构相关的内存管理代码位于/arch/$ARCH/mm目录下。
/net网络通信相关代码。
/samples示例代码。
/scripts用于内核配置的脚本文件,用于实现内核配置的图形界面。
/security安全性相关的代码。
/sound与音频有关的代码,包括与音频有关的驱动程序[2]。
/toolsLinux中的常用工具。
/usr该目录中的代码为内核尚未完全启动时执行用户空间代码提供了支持。
/virt此文件夹包含了虚拟化代码,它允许用户一次运行多个操作系统。
COPYING许可和授权信息。
CREDITS贡献者列表。
Kbuild内核设定脚本,可以对内核中的变量进行设定。
Kconfig配置哪些文件编译,那些文件不用编译[4]。
Makefile该文件将编译参数、编译所需的文件和必要的信息传给编译器。

二、结语

本期我们根据 openEuler 的目录参考 Linux 目录结构简要介绍了 openEuler kernel 中各个子目录的功能,下一期我们将结合 Linux 内核的 Kernel Map 介绍 Linux 内核的基本功能和抽象层级 。


参考文献


[1]https://www.cnblogs.com/CaesarTao/p/10600462.html


[2]http://blog.chinaunix.net/uid-30374564-id-5571674.html


[3]https://blog.csdn.net/wangyachao0803/article/details/81380882


[4]https://blog.csdn.net/jianwen_hi/article/details/53398141


[5]https://gitee.com/openeuler/kernel


2020-04-04 16:592850

评论

发布
暂无评论
发现更多内容

凤凰项目(Phoenix Project)精要 - 随笔 - 中

Anliven

读书笔记 团队管理 DevOps 运维 团队效能

第60期 | GPTSecurity周报

云起无垠

乘云数字受邀Zabbix MeetUp济南站,分享《DataBuff在打造可观测性数据底座上的探索》

乘云数字DataBuff

可观测性 zabbix Meetup

MobPush iOS端 扩展业务功能设置

MobTech袤博科技

Java 开发者 产品动态

人工智能|思维链

测吧(北京)科技有限公司

测试

MIAOYUN原厂认证证书上线,快来GET您的新证书!

MIAOYUN

云原生 智能运维AIOps 培训与认证 MIAOYUN 工程师成长

向日葵 or Todesk?刚需垂直场景如何选择合适的远控付费方案

编程猫

IT服务管理成熟度评估

Anliven

项目管理 运维 效能度量 IT服务管理 团队效能

如何用数据驱动业务增长?火花思维落地“数据飞轮”的实践模式

新消费日报

凤凰项目(Phoenix Project)精要 - 随笔 - 下

Anliven

读书笔记 团队管理 DevOps 运维 团队效能

2024快应用开发者大会亮点揭秘,携手AI共塑未来十年服务分发新格局

科技热闻

Databend 开源周报第 154 期

Databend

无需业务改造,一套数据库满足 OLTP 和 OLAP,GaiaDB 发布并行查询能力

百度Geek说

企业号2024年7月PK榜

计算机视觉与面部识别:技术、应用与未来发展

天津汇柏科技有限公司

计算机视觉

PHP 与淘宝详情 API 的融合:构建智能电商应用

api开发

万字长文年中盘点,2024上半年大模型技术突破与应用展望

可信AI进展

人工智能

PHP 调用 1688 详情 API 接口的实战攻略

api开发

数业智能心大陆:把AI心理咨询师装进口袋

心大陆多智能体

人工智能 智能体 AI大模型 心理健康 数字心理

Mac经典单机游戏推荐:星际争霸母巢之战 for Mac 汉化版

你的猪会飞吗

Mac游戏下载 Mac游戏推荐 Mac游戏分享

【等保测评】24年无锡等保测评机构名单

行云管家

等保 等级保护 等保测评 无锡

一分钟让你知道等保合规堡垒机定义以及重要性

行云管家

等保 堡垒机 等级保护 等保合规

解析微店商品详情的 API 接口获取之道

Noah

软件测试 / 人工智能丨思维链

测试人

软件测试

为什么说知识图谱 + RAG > 传统 RAG?

可信AI进展

人工智能

MobPush Android端 SDK API

MobTech袤博科技

开发者 产品设计 产品动态

Linux内核源码结构(1)_软件工程_华为云开发者联盟_InfoQ精选文章