列出所有内核_openEuler 内核系列 | Linux内核源码结构

本文由罗宇哲撰写,介绍了Linux内核源码的目录结构,特别是基于openEuler开源社区的Linux 4.19.94版本。内容涵盖了kernel目录下的主要子目录及其功能,为读者提供了理解Linux内核结构的基础。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

作者:罗宇哲,中国科学院软件研究所智能软件研究中心

原文链接:http://suo.im/60R7Mb

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

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

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

08b0a1a0ad794c4100bd3420822d3bb3.png

c38ae278568331b5a2343ad1fe37b64b.png

43cefac734363b0c08db391f145cd6d9.png

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

目录/文件名源码功能简介
/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与音频有关的代码,包括与音频有关的驱动程序[3]
/toolsLinux 中的常用工具。
/usr该目录中的代码为内核尚未完全启动时执行用户空间代码提供了支持。
/virt此文件夹包含了虚拟化代码,它允许用户一次运行多个操作系统。
COPYING许可和授权信息。
CREDITS贡献者列表。
Kbuild内核设定脚本,可以对内核中的变量进行设定。
Kconfig配置哪些文件编译,那些文件不用编译[4]
Makefile该文件将编译参数、编译所需的文件和必要的信息传给编译器。

二、结语

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

参考资料

[1]

目录结构: https://gitee.com/openeuler/kernel

[2]

下表所示: https://www.cnblogs.com/CaesarTao/p/10600462.html

[3]

驱动程序: http://blog.chinaunix.net/uid-30374564-id-5571674.html

[4]

编译: https://blog.youkuaiyun.com/jianwen_hi/article/details/53398141

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值