学习Linux也有一段时间了,具体来整理一下Linux源码的目录结构和文件系统的目录结构,便于加深记忆。
一、Linux源码的目录结构
首先上一张截图linux 内核源码下载,如下所示:
再看各个文件的介绍,借用一下其他资源。
arch:这个为目录是构架相关,上面储存了许多CPU构架,例如arm,x86,MIPS,PPC等,
处理器原厂提供一套Linux内核的源码,这么在这个目录下都有一套针对具体处理器CPU的子目录。每位CPU的子目录,又进一步分解为boot,mm,kernel等子目录linux系统界面,分别控制系统引导,显存管理,系统调用,动态调频,显存率设置部份等。
在arch目录中有关键的平台文件。任何一款支持Linux的处理器,都有一部份内核代码是针对特定的处理器来提供的,具体的实现就是通过平台文件。
迅为4412的平台文件,是arch→arm→mach-exynos→mach-itop4412.c。
arch→arm→boot目录linux 内核源码下载,默认编译生成的内核镜像是在这个目录下。
在arch→arm→kernel目录中,有针对具体CPU处理器的代码qq linux,有相关内核特点实现方法,如讯号处理等。这一部份其实是芯片厂商做好了,4412的这部份就是三星早已做好的部份。
在arch→arm→lib目录中,有一些和硬件相关库函数,旁边学习驱动的时侯会使用到。
在arch→arm→tools目录中,包含了生成镜像的工具。
block:在linux中block表示块设备(以块(多个字节组成的整体,类似于磁道)为单位来整体访问),比如说SD卡、iNand、Nand、硬盘等都是块设备。你几乎可以觉得块设备就是储存设备。block目录下放的是一些linux储存体系中关于块设备管理的代码。
crypto: