• Linux内核源代码


    说明:只供学习交流

    一,目录结构

    Linux内核源代码采用树形结构进行组织,非常合理地把功能相关的文件都放在同一个子目录下,使得程序更具有可读性。

     

    二,目录结构

    arch目录

    archarchitecture的缩写。内核所支持的每种CPU体系,在该目录下都有对应的子目录。每个CPU的子目录,又进一步分解为boot,mm,kernel等子目录,分别包含控制系统引导,内存管理,系统调用等

    | --x86  /* 英特尔cpu及与之相兼容体系结构的子目录*/

    | |--boot   /*引导程序*/

    | | |--compressed   /*内核解压缩*/

    | |--tools  /*生成压缩内核映像的程序*/

    | |--kernel   /*相关内核特性实现方式,如信号处理、

    时钟处理*/

    | |--lib  /*硬件相关工具函数*/

     

    block目录

    部分块设备驱动程序

     

    crypto目录

    加密、压缩、CRC校验算法

     

    documentation

    内核的文档

     

    drivers目录

    设备驱动程序

     

    fs目录

    存放各种文件系统的实现代码。每个子目录对应一种文件系统的

    实现,公用的源程序用于实现虚拟文件系统vfs

    | |--devpts /* /dev/pts虚拟文件系统*/

    | |--ext2 /*第二扩展文件系统*/

    | |--fat /*MSfat32文件系统*/

    | |--isofs /*ISO9660光盘cd-rom上的文件系统*/

     

    include目录

    内核所需要的头文件。与平台无关的头文件在include/linux 子目录下,与平台相关的头文件则放在相应的子目录中。

     

    init目录

    内核初始化代码

     

    ipc目录

    进程间通信的实现代码

     

    kernel目录

    Linux大多数关键的核心功能都是在这个目录实现。

    (调度程序,进程控制,模块化)

    lib目录

    库文件代码

     

    mm目录

    mm目录中的文件用于实现内存管理中与体系结构无关的部分(与体系结构相关的部分在哪里实现?(arch/mm))

     

    net目录

    网络协议的实现代码

    | |--802       /*802无线通讯协议核心支持代码*/

    | |--appletalk         /*与苹果系统连网的协议*/

    | |--ax25             /*AX25无线INTERNET协议*/

    | |--bridge              /*桥接设备*/

    | |--ipv4          /*IP协议族V432位寻址模式*/

    | |--ipv6              /*IP协议族V6*/

     

     

    samples

    一些内核编程的范例

     

    scripts

    配置内核的脚本

    security

    SElinux的模块

     

    sound

    音频设备的驱动程序

     

    usr

    cpio命令实现

     

    virt

    内核虚拟机

  • 相关阅读:
    JS reduce方法的使用
    面试娱录
    sticky置顶功能影响了锚点定位
    postcss-px-to-viewport移动端自适应
    axios请求参数自动拼接到了地址那里
    ping 不通。无法访问目标主机
    JS前后台方法的相互调用
    SQL server2008 无法连接服务器
    Assembly.Load未能加载文件或程序集“”或它的某一个依赖项。系统找不到指定的文件
    JS判断IE和非IE
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3190214.html
Copyright © 2020-2023  润新知