写点什么

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:592930

评论

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

电子电器组装行业MES系统解决方案

万界星空科技

mes 万界星空科技mes 电子mes 电子行业 电子电器行业

TiDB v8.5 LTS 新版本解密

TiDB 社区干货传送门

数据库前沿趋势 8.x 实践

SQL Server 迁移到 TiDB

TiDB 社区干货传送门

TiDB数据库的垃圾回收机制

TiDB 社区干货传送门

监控 管理与运维

如何区分产品研发管理和研发项目管理?实用指南

易成研发中心

项目管理 产品研发 产品研发管理

淘宝商品详情API:如何通过商品ID获取全面信息

代码忍者

API 接口 pinduoduo API

百度多模态大模型内容安全解决方案获WitAwards 2024年度大奖

百度安全

「混合专家模型」可视化指南:A Visual Guide to MoE

Baihai IDP

程序员 AI LLMs MoE 混合专家模型

电脑重装系统后硬盘数据可以恢复吗?系统重装后以前的文件怎么找回来?

阿拉灯神丁

EasyRecovery 数据恢复软件 电脑 备份 & 恢复 系统还原

Linux 文件处理命令:掌握文件管理的利器

测试人

软件测试

空壳产品之路:直面自身的缺点

iofomo

产品 设计 工具 摸鱼 微信分身

利用官方授权API接口item_get_app,深度挖掘淘宝/天猫APP商品详情数据

代码忍者

API 接口 pinduoduo API

百度智能云 VectorDB 优势项目数量并列 TOP 1

Baidu AICLOUD

Milvus Zilliz 向量数据库 VDB

从 Oracle 迁移到 TiDB (OGG)

TiDB 社区干货传送门

基于 TiDB Vector 开发的 TiDB AI 小助手上线啦!招募 200 名试用体验官,开启高效问题解决之旅

TiDB 社区干货传送门

星辰资讯 | TiDB v7.5.4 & v8.4.0 发版

TiDB 社区干货传送门

版本升级

金字塔原理:解决问题的高效思维框架

易成研发中心

项目管理 金字塔原理

利用人工智能 ChatGPT 提升测试开发能力:通往高效之路

测试人

软件测试

一文解读GaussDB(DWS)监控运维诊断优化能力

华为云开发者联盟

sql 数据仓库 GaussDB

探究亚马逊详情API接口:开发与应用

科普小能手

API API 接口 亚马逊API 亚马逊商品详情API 亚马逊API接口

小公司如何做好项目管理工作?管理者的实战经验

易成研发中心

项目管理 程序员 项目软件管理

SqlServer 到 TiDB(DATAX)

TiDB 社区干货传送门

从 DB2 迁移到 TiDB (CDC)

TiDB 社区干货传送门

我们是如何实现 TiDB Cloud Serverless 的 - 成本篇

TiDB 社区干货传送门

TiDB Cloud

鸿蒙Navigation拦截器实现页面跳转登录鉴权方案

龙儿筝

鸿蒙

从 MongoDB 迁移到 TiDB

TiDB 社区干货传送门

量子计算与人工智能的交汇:科技未来的新引擎

天津汇柏科技有限公司

人工智能 量子计算

数据规模超 1PB !揭秘网易游戏规模化 TiDB SaaS 服务建设

TiDB 社区干货传送门

集群管理

智源六周年 | 矢志星海,奋楫争先

智源研究院

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