Linux内核组织结构详解

概要:本文内容包含 Linux源码树结构分析Linux Makefile分析Kconfig文件分析Linux内核配置选项分析。这些知识是为了理解内核文件的组织形式,为具体移植内核做知识准备。

Linux内核组织结构详解_第1张图片

一, Linux源码树结构分析

对Linux源码树下个子目录内包含的内容进行列表罗列:

  1. arch:体系结构相关的代码,每一个子目录代表一种架构
  2. block:块设备的通用函数
  3. crypot:常用加密和散列算法、压缩和CRC校核算法
  4. fs:Linux支持的文件系统,每一个子目录代表一种文件系统
  5. include:内核头文件:基本头文件(include/linux )、驱动或功能部件头文件(例:include/mtd )、体系相关头文件(linux/asm-arm )
  6. driver:所有的驱动程序,每一个子目录代表一类驱动程序
  7. init:内核的初始化程序,其中main.c中的start_kernel函数是内核引导后执行的第一个函数
  8. ipc:进程间通信代码
  9. kernel:内核管理的核心代码,与体系相关的代码在/arch/$(ARCH)/kernel
  10. lib:内核用到的库函数,与处理器相关的库函数位于/arch/$(ARCH)/lib
  11. mm:内存管理代码,与处理器体系相关的位于/arch/$(ARCH)/mm
  12. net:与网络相关的代码,每一个子目录对应于网络的一个方面
  13. security:安全、密钥相关的代码
  14. sound:音频相关的驱动程序
  15. usr:用来制作一个压缩的cpio归档文件:initrd的镜像,它可以作为内核启动后挂载的第一个文件系统
  16. script:用于配置、编译内核的脚本文件
  17. Documet:内核文档

文章福利】小编推荐自己的Linux内核技术交流群:【865977150】整理了一些个人觉得比较好的学习书籍、视频资料共享在群文件里面,有需要的可以自行添加哦!!!前100名进群领取,额外赠送一份价值699的内核资料包(含视频教程、电子书、实战项目及代码)

二,Linux Makefile分析

主要从三个方面讲解:编译哪些文件如何编译文件如何连接文件

(1)Linux Makefile的分类

  1. 顶层Makefile:总体上控制着内核的编译
  2. arch/$(ARCH)/Makefile:决定哪些和体系相关的代码参加编译
  3. .config:配置文件,内核配置时产生,所有的Makefile都根据这个文件编译内核(包括顶层的和各分成的Makefile)
  4. scripts/Makefile.*:Makefile公用的通用规则、脚本等
  5. */Makefile:负责该目录下文件的编译

(2)编译哪些文件

顶层Makefile决定哪些目录中的文件将编译进内核

    init-y      := init/
    drivers-y   := d

你可能感兴趣的:(Linux内核,linux,驱动开发,运维)