一.内核结构
/arch 所有硬件结构特定的kernel代码。多平台设计所用,如i386,alpha,arm(与体系结构相关的代码都存放在arch//和include/asm-/目录下。如arm体系则是arch/arm和include/asm-arm.);
/drivers 内核中所有的设备驱动程序,如usb和sound;
/fs 所有的文件系统的代码,如ntfs,ext3,jffs2等;
/include 建立内核代码时所需要的大部分库文件,这个模块利用其他模块重建内核。该目录也包括了不同平台需要的库文件,如asm-arm是arm平台需要的库文件;
/init 内核的初始化代码,内核从此处开始工作;
/ipc 进程间通信代码;
/kernel 主内核代码;
/mm 所有内存管理代码;
/net 和网络相关的代码,如atm,ipv6等;
一般在每个目录下都有一个.depend文件和一个Makefile文件。这两个文件都是编译时使用的辅助文件。
1./arch
linux系统能支持如此多平台的部分原因是因为内核把sourcecode清晰地划分为与体系结构无关部分和体系结构相关部分。/arch包含与体系结构相关的代码.其中每一个目录代表一种硬件平台,such as arm,i386.对任何平台,都必须包括以下几个目录:
/boot:启动内核所使用的部分或全部平台特有代码;
/kernel:存放支持体系结构特有的(如信号处理和SMP)特征的实现;
/lib:存放告诉的体系结构特有的(如strlen和memcpy)通用的函数的实现;
/mm:存放体系结构特有的内存管理程序的实现;
/math-emu:模拟FPU的代码。对于arm处理器来说,此目录用mach-xxx代替。
So,移植工作的重点就是 /arch目录下的文件。
2./dirvers
所有的设备驱动程序。它占整个内核发行版本代码的一半以上,非常庞大。有些驱动程序是与硬件平台无关的而有些是相关的。
3./fs
所有的文件系统的代码。如ntfs,ext3,jffs2等。一般来说,文件系统也
阅读(932) | 评论(0) | 转发(1) |