首页 > 系统相关 >Linux内核源码介绍-内核源码树

Linux内核源码介绍-内核源码树

时间:2024-09-22 18:55:33浏览次数:9  
标签:fs Linux 源码 内核 哔哩 相关 chenxiaosong user

建议点击这里查看个人主页上的最新原文

点击这里在哔哩哔哩bilibili在线观看配套的教学视频

点击这里在哔哩哔哩bilibili在线观看配套的加餐视频(就是一些补充)

点击跳转到内核课程所有目录

我们以社区最近的一个LTS(longterm support,长期维护版本)v6.6的代码来讲接下来的课程。

内核源码树根目录每个文件夹的描述如下(按字母顺序):

  • arch: architecture的缩写,体系结构相关。我们着重介绍arch/x86/arch/arm64/,在每个体系结构目录下,boot/是启动相关,configs/是配置相关,include/头文件相关,mm/内存管理相关,等等。
  • block: 块设备IO层相关。
  • certs: 认证相关。
  • crypto: 加密API,加密、散列、压缩、校验等算法。
  • Documentation: 文档,要多看,很有用。也可以看在线文档: https://www.kernel.org/doc/html/latest/
  • drivers: 设备驱动程序相关。
  • fs: 文件系统相关。我们主要介绍fs/目录下VFS(虚拟文件系统)相关的,还会介绍几个具体的文件系统,如fs/ext2/fs/xfs/fs/proc/fs/sysfs/等,当然具体的文件系统不会介绍得很详细,只说一个大概,主要还是以VFS的讲解为主。
  • include: 内核头文件相关。
  • init: 内核引导和初始化相关。
  • io_uring: 5.1版本引入的高性能异步IO框架,主要是为了加快IO密集型应用的性能。
  • ipc: 进程间通信相关。
  • kernel: 进程相关,包括进程管理和进程调度。
  • lib: 可以看成是一个标准C库的子集,如strlenmmcpysprintf等函数。
  • LICENSES: 许可证。
  • mm: 与体系结构无关的内存管理代码,注意与体系结构相关的代码在arch/mm/目录下。
  • net: 网络子系统,如TCP/IP等网络协议的实现。
  • rust: 内核除了C语言外采用的一门新开发语言,和C性能差不多,目前暂时主要用于驱动开发。
  • samples: 示例代码,很好的学习资源,不要放过。
  • scripts: 脚本文件,如make menuconfigmake scripts_gdb等都是调用这个目录下的脚本。
  • security: 安全模块,比如复杂的selinux
  • sound: 语音子系统相关。
  • tools: 开发工具相关。
  • usr: 早期的用户空间代码(initramfs),比如有打包和压缩用的cpio等。注意,usr的全称是Unix System Resources,不是user,不是user,不是user。为什么要强调不是user呢,因为有太多太多的人读成了user,咱们专业点,读成u, s, r,一个单词一个单词的读。
  • virt: 虚拟化相关,如kvm

上面是文件夹,接下来介绍根目录下的文件:

  • COPYING: 许可证。
  • CREDITS: 贡献者。
  • Kbuild: 内核顶层目录的Kbuild, 在进入子目录之前准备全局头文件并检查完整性。
  • Kconfig: 内核配置。
  • MAINTAINERS: 维护者名单。
  • Makefile: 设置编译参数。
  • README: 描述文档在哪里。

标签:fs,Linux,源码,内核,哔哩,相关,chenxiaosong,user
From: https://blog.csdn.net/chenxiaosongcsdn/article/details/142300182

相关文章