内核技术点合集

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

1. 内核核心代码,包括第 3 章所描述的各个子系统和子模块,以及其它的支撑子系统,例

如电源管理、Linux 初始化等

2. 其它非核心代码,例如库文件(因为 Linux 内核是一个自包含的内核,即内核不依赖其它

的任何软件,自己就可以编译通过)、固件集合、KVM(虚拟机技术)等

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

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

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

kernel/ ---- Linux 内核的核心代码,包含了 2.2 小节所描述的进程调度子系统,以及和进程调

度相关的模块。

mm/ ---- 内存管理子系统(2.3 小节)。

fs/ ---- VFS 子系统(2.4 小节)。

net/ ---- 不包括网络设备驱动的网络子系统(2.5 小节)。

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

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

arch//mach- ---- 具体的 machine/board 相关的代码。

arch//include/asm ---- 体系结构相关的头文件。

arch//boot/dts ---- 设备树(Device Tree)文件。

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

block/ ---- 提供块设备的层次。

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

drivers/ ---- 设备驱动

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

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

security/ ---- 提供安全特性(SELinux)。

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

usr/ ---- 用于生成 initramfs 的代码。

firmware/ ---- 保存用于驱动第三方设备的固件。

samples/ ---- 一些示例代码。

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

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

COPYING ---- 版权声明。

MAINTAINERS ----维护者名单。

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

REPORTING-BUGS ---- Bug 上报的指南。

Documentation, README ---- 帮助、说明文档。

相关教程:

Linux内核,进程间通信组件的实现

红黑树,在Linux内核的那些故事

Linux内核,让你不知如何下手的地方

arch linux引导不启动_Linux 内核源代码的目录结构相关推荐

  1. Linux 内核源代码的目录结构

    Linux 内核源代码的目录结构 Linux 内核源代码包含如下目录. ● arch :包含和硬件体系结构相关的代码,每种平台占一个相应的目录,如i386.arm. arm64.powerpc.mip ...

  2. python源码提取_Python提取Linux内核源代码的目录结构实现方法

    今天用Python提取了Linux内核源代码的目录树结构,没有怎么写过脚本程序,我居然折腾了2个小时,先是如何枚举出给定目录下的所有文件和文件夹,os.walk可以实现列举,但是os.walk是只给出 ...

  3. 【lLinux驱动】linux内核源码目录结构

    linux内核源码目录结构 代码目录结构 在阅读源码之前,还应知道Linux内核源码的整体分布情况.现代的操作系统一般由进程管理.内存管理.文件系统.驱动程序和网络等组成.Linux内核源码的各个目录 ...

  4. Linux内核源代码分析-目录

    第一部分 Linux 内核源代码 arch/i386/kernel/entry.S 2 arch/i386/kernel/init_task.c 8 arch/i386/kernel/irq.c 8 ...

  5. linux引导和启动程序

    1.BIOS/Bootloader: 一上电,硬件强制让cpu的cs:ip寄存器指向bios程序的位置,从bios程序开始执行,由pc机的BIOS (0xFFFFO是BIOs存储的总线地址)把boot ...

  6. linux内核在什么目录结构,Linux Kernel 目录结构说明

    核心源程序的文件按树形结构进行组织,在源程序树的最上层你会看到这样一些目录: · Arch :包括了所有和体系结构相关的核心代码.它的每一个子目录都代表一种支持的体系结构,例如i386就是关于inte ...

  7. Linux内核源码目录结构及含义

    Linux内核源码包含多个目录,每个目录有不同的含义,以linux-4.9.253源码为例: 不同的Kernel版本源代码目录组织稍有不同,内核源码下载地址: HTTP        https:// ...

  8. linux mysql 装哪里_linux 下 mysql 安装目录在哪里

    linux 下 mysql 安装目录在哪里.linux mysql 安装介绍: linux 服务器 RedHat 5.0.server. MySQL 版本: 下载地址链接:http://dev.mys ...

  9. Linux系列(一):简介与目录结构

    1.Linux简介 1.1.起源 Linux出现于1991年,是由芬兰赫尔辛基大学学生Linus Torvalds和后来加入的众多爱好者共同开发完成 1.2.Linux特点 多用户,多任务,丰富的网络 ...

最新文章

  1. springboot配置
  2. oracle+测试权限,Oracle测试题
  3. 反馈速度小于 200ms!“弹窗”功能让你极速触达用户内心
  4. c++ *.h和*.cpp在编译中的作用
  5. Unix——系统调用和库函数调用概念区别和联系
  6. Ubuntu解除端口占用
  7. d3 选择元素 api
  8. Docker 以 docker 方式运行 jenkins
  9. stats | 使用(偏)自相关函数判断ARMA模型的阶数
  10. C Tricks(九)—— 获取文件大小与申请数组空间
  11. tortoise清理本地分支_使用TortorliseGit(小乌龟)删除本地分支,远程分支
  12. Atitit 战略之道 attilax著 v4 r88
  13. 下十页分页php,织梦二次开发实现栏目分页前十页后十页功能
  14. js获取文件的后缀名
  15. 诺基亚Nokia的PC套件导出短信乱码问题解决(转)
  16. arcgis重心迁移分析_ArcGIS支持下三峡库区适度人口重心迁移研究
  17. python程序设计总结报告_把PPT 总结报告上传
  18. vs未能加载项目文件。未能找到路径 c#笔记5
  19. Extra Credits: Where Did Survival Horror Go? 额外加分: 恐怖求生游戏去哪了?
  20. 无人机集群任务规划方法研究综述论文解读

热门文章

  1. object转成实体对象_Object.assign 原理及其实现
  2. mysql 数据怎么导出_mysql怎么导出数据
  3. linux 查找 jdk 安装路径
  4. 皮一皮:有这样的妈妈挺有趣的...
  5. JVM的YGC,这次被它搞惨了!
  6. 2021泰晤士世界大学排名公布,中国137所高校上榜!
  7. 每日一皮:我觉得明明很好用啊,谁知道客户是这样用的呢?
  8. 何时(不)使用Java抽象类
  9. No such file or directory: jupyter-1.0.0.dist-info\\METADATA
  10. tx2 numba opencv