03_内核源码组织架构

发布时间 2024-01-08 23:44:20作者: Qing-Huan

一、Linux内核特征

  1. Linux内核组织形式为整体式结构
  2. 进程调度方式简单而有效
  3. 支持内核线程(或称为守护进程)
  4. 支持多种平台的虚拟内存管理
  5. 虚拟文件系统
  6. 模块机制
  7. 增加系统调用
  8. 面向对象

二、Linux内核五大子系统

image

三、系统数据结构

在Linux内核中使用频率较高的数据结构:

  1. task_struct:代表一个进程数据结构指针形成一个task数组
  2. mm_struct:代表进程的虚拟内存
  3. inode:代表虚拟文件系统中的文件、目录等对应的索引节点

四、Linux内核源码组织

  • Linux内核版本有两种:稳定版与开发版。
  • Linux内核版本号由3组数字组成,第一组数字:目前发布的内核主版本;第二组数字:偶数为稳定版本,奇数为开发中版本;第三组数字:错误修补次数。

源码目录解析:

序号 文件夹 释义
01 arch 不同平台体系
02 block 块设备驱动
03 certs 与认证和签名
04 crypto 内核常用加密、压缩算法
05 Documentation 描述模块功能和协议规范
06 drivers 驱动程序(USB总线、PCI总线、显卡驱动)
07 firmware 二进制固件
08 fs 虚拟文件系统代码
09 include 内核源码依赖绝大部分头文件
10 init 内核初始化代码,联系到内存各组件入口
11 ipc 进程间通信实现:共享内存、信号量、管道等
12 kernel 内核核心代码,包括进程管理、IRQ、时间等
13 lib C标准库的子集
14 mm 内存管理相关实现
15 net 网络协议代码:TCP、ipv6、wifi、以太网实现等
16 samples 内核实例代码
17 scripts 编译和配置内核所需脚本
18 security 内核安全模型相关代码:selinux
19 sound 声卡驱动源码
20 tools 与内核交互
21 usr 用户打包和压缩内核的实现源码
22 virt /kvm虚拟化目录相关支持实现
23 COPYING 许可和授权信息
24 CREDITS 贡献者列表
25 Kbuild 内核设定脚本
26 Kconfig 开发人员配置内核时所需
27 MAINTAINERS 目前维护者列表
28 Makefile 编译内核主要文件
29 README 编译内核信息
30 REPORTING-BUGS 如何报告问题的信息