linux内核源码结构

转自:https://www.cnblogs.com/amanlikethis/p/3641504.html

补充了一部分新内容。

一、源码结构表

目录名描述
arch体系结构相关的代码,对于每个架构的CPU,arch目录下有一个对应的子目录,比如arch/arm、arch/i386
block块设备的通用函数
crypto常用的加密和散列算法(如AES、SHA等),还有一些压缩和CRC校验算法
drivers所有的设备驱动程序,里面每一个子目录对一个一类驱动程序,比如drivers/block为块设备驱动程序,drivers/char为字符串设备驱动程序,drivers/mtd为NorFlash、NandFlash等存储设备的驱动程序
fsLinux支持的文件系统的代码,每个子目录对应一种文件系统,比如fs/jffs2、fs/ext2、fs/ext3
include内核头文件,有基本头文件(存放在include/linux/目录下)、各种驱动或功能部件的头文件(比如include/media/、/include/mtd、include/net)、各种体系相关的头文件(比如include/asm-arm、include/asm-i386/)。当配置内核后,include/asm/是某个include/asm-xxx/(比如asm-arm)的链接
init内核的初始化代码(不是系统的引导代码),其中的main.c文件中的start_kernel函数时内核引导后的第一个函数
ipc进程间通信的代码
kernel内核管理的核心代码,与处理器相关的代码位于arch/*/kernel/目录下
lib内核用到的一些库函数代码,比如crc32.c、string.c,与处理器相关的库函数代码位于arch/*/lib目录下
mm内核管理代码,与处理器相关的内存管理代码位于arch/*/mm
net网络支持代码,每个子目录对应于网络的一个方面
security安全、密钥相关的代码
sound音频设备的驱动程序
usr用来制作一个压缩的cpio归档文件:initrd的镜像,它可以作为内核启动后挂接的第一个文件系统
Documentation 内核文档
scripts用于配制、编译内核的脚本文件
virt虚拟化相关代码,比如kvm
certscertificate相关
samples各主要功能示例代码
security

安全相关代码

tools各种相关工具,如各种listener,monitor等

二、源码结构图 

 

kernel/sched/路径下:

  • autogroup.* - 用于实现autogroup,将属于同一个会话(session)的task自动分配到同一个进程组。有助于提高IO密集型任务的性能。
  • clock.c - 实现高精度调度时钟。
  • completion.c - 实现完成量(类似信号量),它允许一个线程告诉另一个线程某个工作已经完成。
  • core.c - 调度器核心功能,例如__schedule()函数实现。
  • cpuacct.c - 实现cpu accounting。会自动生成报告来显示cgroup中任务所使用的CPU资源。
  • cpudeadline.* - 实现cpu heap,被deadline.c使用。
  • cpufreq.c - 和cpufreq相关的调度代码。cpufreq可以动态地提供刚好足够的主频给CPU。
  • cpufreq_schedutil.c
  • cpupri.* - cpu priority management,进程优先级。
  • cputime.c - cpu accounting cgroup controller。
  • deadline.c - deadline调度器类。
  • fair.c 调度器类。
  • debug.c
  • idle.c idle调度器类。
  • isolating.c CPU隔离
  • loadavg.c 负载均衡。
  • membarrier.c 内存屏障。
  • pelt.* - Per-entity load tracking,基于过去的调度信息来预测未来该进程对CPU的需求.
  • psi.c - Pressure Stall Information 提供了一种评估系统资源压力的方法。
  • rt.c - RT调度器类。
  • stats.* - 实现/proc/schedstat,用于展示有关scheduler性能相关的统计信息。
  • stop_task.c - stop task相关功能。
  • swait.c - (simple wait queue) implementation。
  • topology.c 和cpu topology (smp) 有关。
  • wait.c - wait queue相关。
  • wait_bit.c

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值