(1)arch文件夹,arch是architecture的缩写,意思就是架构。arch里面有很多个不同的架构的CPU子目录,譬如ARM这种cpu的所有文件都在arm子文件目录下面
(2)block,英文是块的意思,在linux中block表示块设备(以块(多个字节组成的整体,类似于扇区)为单位来整体访问),SD卡,iNand,Nand,硬盘等都是块设备,可简单的认为块设备就是存储设备。block目录下面放的是一些linux存储体系中关于块设备管理的代码。
(3)crypto,英文意思就是加密,这个目录下放一些各种常见的加密算法,用C语言代码实现,譬如:crc32,md5,sha1等
(4)Documentation,里面放了一些文档
(5)drivers,驱动目录,里面 分类放好了linux内核支持的所有硬件设备的驱动源代码。
(6)firmware,固件。何为固件?固件其实是软件,不过这个软件是固化到IC里面运行的叫固件。就像S5PV210里面的iROM代码
(7)fs,fs就是file system,文件系统,里面列出来的是linux支持的各种文件系统的实现。
(8)include,头文件目录,公共的(各种CPU架构公用的)头文件都在这里,每种CPU架构特有一些头文件在arch/arm/include目录及其子目录下。
(9)init,初始的意思,这个目录下的代码就是linux内核启动时初始化内核的代码
(10)ipc,ipc就是inter process communication,进程间通信,里面是linux支持的IPC的代码实现。
(11)kernel,kernel就是内核,就是linux内核,所以这个文件夹放的就是内核本身需要的一些代码文件。
(12)lib,lib就是库的意思,里面都是一些公用的有用的库函数,注意这里的库函数和C语言的库函数不一样,在内核编程中是不能用C语言标准库函数,这里的lib目录下的库函数就是用来代替那些标准库函数的。在应用编程中,我们要把字符串变成数字用atoi,但是在内核编程中只能用lib目录下的atoi函数,不能用标准C语言库中的atoi;譬如在内核打印信息时不能用printf,要用这个lib库目录下的prink。
(13)mm,mm是memory mangement,内存管理,linux的内存管理代码都在这里。
(14)net,该目录下是网络相关的代码,譬如TCP/IP协议栈
(15)scripts,脚本,这个目录下全都是脚本文件,这些脚本文件不是linux内核工作时,而是用来辅助对linux内核进行配置编译生产的
(16)security,安全相关的代码,不需要去研究
(17)sound,音频处理相关的
(18)tools,linux中用到的一些有用的工具
(19)usr,目录下是initramfs相关的,和linux内核的启动有关,暂时不用管
(20)virt,内核虚拟机相关的,暂时不用管