linux源码目录结构介绍 - Go语言中文社区

linux源码目录结构介绍


Linux内核源代码包括三个主要部分:

1. 内核核心代码,包括各个子系统和子模块,如:Process Scheduler 进程管理、Memory Manager 内存管理、VFS 虚拟文件系统、Network 网络子系统、IPC 进程通信。以及其它的支撑子系统,例如电源管理、Linux初始化等。

2. 其它非核心代码,例如库文件(因为Linux内核是一个自包含的内核,即内核不依赖其它的任何软件,自己就可以编译通过)、固件集合、KVM(虚拟机技术)等。

3. 编译脚本、配置文件、帮助文档、版权说明等辅助性文件。

下图示使用ranger命令看到的内核源代码的顶层目录结构,具体描述如下:

arch: 体系结构相关的代码,例如arm, x86等等。

    arch/arm/mach-xxx: 芯片相关源码。

    arch/arm/plat-xxx: 平台相关源码。

block: 提供块设备的层次

crypto: 加密、解密相关的库函数。

Documentation、README: 帮助、说明文档。

drivers: 各种设备驱动源码。

firware: 保存用于驱动第三方设备的固件。

fs: VFS子系统。

include: 内核头文件,需要提供给外部模块(例如用户空间代码)使用。

init: Linux系统启动初始化相关的代码。

ipc: IPC(进程间通信)子系统。

kernel: Linux内核的核心代码,包含了进程调度子系统,以及和进程调度相关的模块。

lib: 实现需要在内核中使用的库函数,例如CRC、FIFO、list、MD5等。

mm: 内存管理子系统。

net: 不包括网络设备驱动的网络子系统。

sample: 一些示例代码。

Kconfig、Kbuild、Makefile、scripts: 用于内核编译的配置文件、脚本等。

security: 提供安全特性(SELinux)。

sound: 音频相关的驱动及子系统,可以看作“音频子系统”。

tools: 一些常用工具,如性能剖析、自测试等。

usr: 用于生成initramfs的代码。

virt: 提供虚拟机技术(KVM等)的支持。

COPYING: 版权声明。

MAINTAINERS: 维护者名单。

CREDITS: Linux主要的贡献者名单。

REPORTING-BUGS: Bug上报的指南。

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/lingyi_cai/article/details/82849578
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-06-27 21:55:42
  • 阅读 ( 926 )
  • 分类:Linux

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢