zoukankan      html  css  js  c++  java
  • linux内核源码目录结构分析

    前言

    在查看Linux源码的时候,发现里面的代码都是按照目录整理好的。所以去查看了一下Linux源码的目录结构,主要转自知乎的一篇文章以及一篇别人的博客
    Linux内核源码有几千万行,包含源文件和工程文件有48374个,这里顺便贴一下一个Linux在线源码
    下面内核目录以linux-3.14内核作为讲解:

    结构分析

    | /arch | arch是architecture的缩写。所有与体系结构相关的代码都在这个目录以include/asm-*/目录中。Linux支持的每种体系结构在arch目录下都有对应的目录,又进一步分解为boot,mm,kernel等子目录:
    --arm arm及与之相兼容体系结构的子目录
    --boot 引导程序,以及在这种硬件平台上启动内核所使用的内存管理程序的实现。
    --compressed 内核解压缩
    --tools 生成压缩内核映像的程序
    --kernel: 存放支持体系结构特有的诸如信号量处理和SMP之类特征的实现。
    --lib: 存放体系结构特有的对诸如strlen和memcpy之类的通用函数的实现。
    --mm: 存放体系结构特有的内存管理程序的实现。
    除了这3个子目录以外,大多数体系结构在必要的情况下还有一个boot子目录,包括了在这种硬件平台上启动内核所使用的内存管理程序的实现。 |
    | :--: |:--: | :--: |
    | /block | 块设备通用函数 |
    | /crypto | 常见的加密算法的C语言实现代码,譬如crc32、md5、sha1等|
    | /Documentation | 提供文档帮助。关于内核的一些说明信息,在这个目录下会有帮助手册。 |
    | /drivers | 内核中所有设备的驱动程序,其中的每一个子目录对应一种设备驱动 |
    | /firmware| 固件代码|
    | /fs | Linux支持的文件系统代码,及各种类型的文件的操作代码。每个子目录都代表Linux支持的一种文件系统类型 |
    | /include | 内核编译通用的头文件 |
    | /init | 内核初始化的核心代码 |
    | /ipc | 内核中进程间的通信代码 |
    | /kernel | 内核的核心代码,此目录下实现了大多数Linux系统的内核函数。与处理器架构相关的内核代码在/kernel/$ARCH/kernel |
    | /lib | 内核共用的函数库,与处理器架构相关的库在/kernel/$ARCH/lib |
    | /mm | 内存管理代码,譬如页式存储管理内存的分配和释放等。与具体处理器架构相关的内存管理代码位于/arch/$ARCH/mm目录下 |
    | /net | 网络通信相关代码 |
    | /samples | 示例代码 |
    | /scripts | 用于内核配置的脚本文件,用于实现内核配置的图形界面|
    | /security | 安全性相关的代码 |
    | /tools | Linux中的常用工具 |
    | /usr | 内核启动相关的代码 |
    | /virt | 内核虚拟机相关的代码 |

  • 相关阅读:
    (转)简洁常用的栏目切换js.可以直接使用
    (转)MVC3+EF4.1学习系列(十)MVC+EF处理树形结构
    欧拉图
    SPFA算法——最短路径
    uva 10608 FRIENDS
    scau 1077 韩信点兵
    最短路径的几种算法的路径问题(floy , dij , spfa)
    最大流(BFS)
    hdu 3459 Flow Problem
    并查集
  • 原文地址:https://www.cnblogs.com/T1e9u/p/13734661.html
Copyright © 2011-2022 走看看