https://blog.csdn.net/qq_38892883/article/details/79557715
    arch:这个为目录是架构相关,里面存放了许多CPU架构,比如arm,x86,MIPS,PPC等,

    处理器原厂提供一套Linux内核的源码,那么在这个目录下都有一套针对具体处理器CPU的子目录。每个CPU的子目录,又进一步分解为boot,mm,kernel等子目录,分别控制系统引导,内存管理,系统调用,动态调频,主频率设置部分等。
    在arch目录中有关键的平台文件。任何一款支持Linux的处理器,都有一部分内核代码是针对特定的处理器来提供的,具体的实现就是通过平台文件。
    迅为4412的平台文件,是arch→arm→mach-exynos→mach-itop4412.c。
    arch→arm→boot目录,默认编译生成的内核镜像是在这个目录下。
    在arch→arm→kernel目录中,有针对具体CPU处理器的代码,有相关内核特性实现方式,如信号处理等。这一部分当然是芯片厂商做好了,4412的这部分就是三星已经做好的部分。
    在arch→arm→lib目录中,有一些和硬件相关库函数,后面学习驱动的时候会使用到。

    在arch→arm→tools目录中,包含了生成镜像的工具。
    Linux目录结构 - 图1

    Linux目录结构 - 图2
    block:在linux中block表示块设备(以块(多个字节组成的整体,类似于扇区)为单位来整体访问),譬如说SD卡、iNand、Nand、硬盘等都是块设备。你几乎可以认为块设备就是存储设备。block目录下放的是一些linux存储体系中关于块设备管理的代码。

    crypto:英文意思是加密。这个目录下放了一些各种常见的加密算法的C语言代码实现。譬如crc32、md5、sha1等。

    Documentation:里面放了一些文档。

    drivers:驱动目录,里面分门别类的列出了linux内核支持的所有硬件设备的驱动源代码。就是需要重点学习的部分。

    firmware:固件。什么是固件?固件其实是软件,不过这个软件是固话到IC里面运行的叫固件:就像S5PV210里的iROM代码。

    fs:fs就是file system,文件系统,里面列出了linux支持的各种文件系统的实现。

    include:头文件目录,公共的(各种CPU架构共用的)头文件都在这里。每种CPU架构特有的一些头文件在arch/arm/include目录及其子目录下。

    init:init是初始化的意思,这个目录下的代码就是linux内核启动时初始化内核的代码。

    如下图所示,部分目录如下。下面的这些目录,几乎不需要我们去动其中任何一个文件。
    Linux目录结构 - 图3
    ipc:ipc就是inter process commuication,进程间通信,里面都是linux支持的IPC的代码实现。

    kernel:kernel就是内核,就是linux内核,所以这个文件夹下放的就是内核本身需要的一些代码文件。

    lib:lib是库的意思,这里面都是一些公用的有用的库函数,注意这里的库函数和C语言的库函数不一样的。在内核编程中是不能用C语言标准库函数,这里的lib目录下的库函数就是用来替代那些标准库函数的。譬如在内核中要把字符串转成数字用atoi,但是内核编程中只能用lib目录下的atoi函数,不能用标准C语言库中的atoi。譬如在内核中要打印信息时不能用printf,而要用printk,这个printk就是我们这个lib目录下的。
    mm:mm是memory management,内存管理,linux的内存管理代码都在这里。
    net:该目录下是网络相关的代码,譬如TCP/IP协议栈等都在这里。

    Linux目录结构 - 图4
    scripts:脚本,这个目录下全部是脚本文件,这些脚本文件不是linux内核工作时使用的,而是用来辅助对linux内核进行配置编译生产的。我们并不会详细进入分析这个目录下的脚本,而是通过外围来重点学会配置和编译linux内核即可。
    security:安全相关的代码。不用去管。
    sound:音频处理相关的。
    tools:linux中用到的一些有用工具
    usr:目录下是initramfs相关的,和linux内核的启动有关,暂时不用去管。

    virt:内核虚拟机相关的,暂时不用管。
    Kbuild:Kbuild是kernel build的意思,就是内核编译的意思。这个文件就是linux内核特有的内核编译体系需要用到的文件。
    Makefile:这个是linux内核的总makefile,整个内核工程用这个Makefile来管理的
    ————————————————
    版权声明:本文为CSDN博主「月上柳梢free」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/qq_38892883/article/details/79557715