写点什么

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

评论

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

第三章 小结

姜 某某

组合模式

俊俊哥

设计模式 组合模式

架构师第三周作业

G小调

5G勾勒出的人间烟火,正在点亮智慧城市的日月星辰

脑极体

架构师训练营第三周总结-设计模式的应用

Cloud.

Week3作业

熊威

Atlassian套件玩转持续交付

跟YY哥学Jira

持续集成 CI/CD 持续交付 Jira Bamboo

设计模式示例

imicode

第三周学习总结

G小调

单例模式和组合模式

allen

架构师训练营第三周总结

时来运转

架构师训练营作业3

索隆

第三周作业

技术小生

极客大学架构师训练营

架构师训练营第三周学习总结

whiter

极客大学架构师训练营

基于Jira的产品需求全生命周期管理实践

跟YY哥学Jira

项目管理 需求管理 Agile Jira Reports

第三周作业

刘卓

Nginx 从入门到实践,万字详解!

前端下午茶

nginx 反向代理 服务器 代理

第三章学习总结

武鹏

作业一

Thrine

都在讲DevOps,但你知道它的发展趋势吗?

禅道项目管理

DevOps 自动化

架构师训练营 -Week 03 命题作业

华乐彬

极客大学架构师训练营 作业

架构师训练营 - 第三周 - 学习总结

Anrika

架构师 极客大学架构师训练营

设计模式 之 组合模式

技术小生

极客大学架构师训练营

Week4命题作业

星河寒水

极客大学架构师训练营

【架构师训练营】week 3 homework

eazonshaw

如何编写高质量代码之设计模式

imicode

架构师训练营 week3

devfan

了不起的 Webpack HMR 学习指南(含源码分析)

Geek_z9ygea

Java 大前端 Web webpack

第三周学习总结

刘卓

架构师week3作业

平淡人生

架构师week3总结

平淡人生

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