• 内核开发基础2——Linux内核源代码


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

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

    | --x86 /* 英特尔cpu及与之相兼容体系结构的子目录*/
    | |--boot /*引导程序*/
    | | |--compressed /*内核解压缩*/
    | |--tools /*生成压缩内核映像的程序*/
    | |--kernel /*相关内核特性实现方式,如信号处理、时钟处理*/
    | |--lib /*硬件相关工具函数*

    2. block目录
    部分块设备驱动程序
    3. crypto目录
    加密、压缩、CRC校验算法
    4. documentation
    内核的文档
    5. drivers目录
    设备驱动程序

    6. fs目录
    存放各种文件系统的实现代码。每个子目录对应一种文件系统的实现,公用的源程序用于实现虚拟文件系统vfs。
    | |--devpts /* /dev/pts虚拟文件系统*/
    | |--ext2 /*第二扩展文件系统*/
    | |--fat /*MS的fat32文件系统*/
    | |--isofs /*ISO9660光盘cd-rom上的文件系统*/
    7. include目录
    内核所需要的头文件。与平台无关的头文件在include/linux 子目录下,与平台相关的头文件则放在相应的子目录中。

    8. init目录
    内核初始化代码
    9. ipc目录
    进程间通信的实现代码
    10. kernel目录
    Linux大多数关键的核心功能都是在这个目录实现。(调度程序,进程控制,模块化)

    11. lib目录
    库文件代码
    12. mm目录
    mm目录中的文件用于实现内存管理中与体系结构无关的部分(与体系结构相关的部分在哪里实现?)

    13. net目录
    网络协议的实现代码
    | |--802 /*802无线通讯协议核心支持代码*/
    | |--appletalk /*与苹果系统连网的协议*/
    | |--ax25 /*AX25无线INTERNET协议*/
    | |--bridge /*桥接设备*/
    | |--ipv4 /*IP协议族V4版32位寻址模式*/
    | |--ipv6 /*IP协议族V6版*/

    14. samples
    一些内核编程的范例
    15. scripts
    配置内核的脚本
    16. security
    SElinux的模块

    17. sound
    音频设备的驱动程序
    18. usr
    cpio命令实现
    19. virt
    内核虚拟机

  • 相关阅读:
    Linux下基于PAM机制的USB Key的制作
    IP-route管理路由
    Linux下CPU主板监控工具lm_sensors
    两个网卡隔离方法
    关机后内存的数据是怎么丢失的呢?
    6.0 移动端页面布局
    CyberPlayer 使用教程
    5.10 HTML5 音频和视频
    让Ecshop网店系统用户自动登陆
    設定 Bootstrap/SASS/Bower/gulp (Windows平台)
  • 原文地址:https://www.cnblogs.com/laojie4321/p/2442905.html
Copyright © 2020-2023  润新知