Linux系统的组成:
用户空间(user space)包括应用程序(user applications) 和 GNU库(gnu glibc);内核空间(kernel space)包括系统调用接口(system call interface),内核(kernel),体系结构相关代码(archecture Dependent code);
ARM的7种工作模式:
1. 未定义指令异常(und)
2. 数据访问种止(abt)
3. 用户模式(usr)
4. 快速中断(fiq)
5. 外部中断(irq)
6. 系统模式(sys)
7. 管理模式(svc)
内核的架构:
1.进程管理
2.内存管理
3.虚拟文件系统
4.系统调用接口
5.网络协议
6.体系结构
7.设备驱动
内核的目录结构:
Arch(architecture):内核所所支持的各种cpu体系结构,比方说x86,arm等,每个目录下面又有mm,kernel,boot等子目录,分别包含内存管理,系统调用,系统调用等功能
fs; 文件系统
block; 部分快设备驱动程序
mm: 内存管理,一般是与体系结构无关的代码,与体系结构有关的代码放在arch的相应子目录下
net; 网络协议
drivers: 设备驱动
lib: 库文件
sound: 音频
include: 与平台无关的头文件,放在include/linux,与平台有关的头文件放在相应的目录下
documentation: 内核的文档,不同版本的文档放在该目录下
usr: cpio命令的实现,cpio命令的功能是将内核镜像文件和根文件系统拷贝到/boot目录下
crypto: 加密,压缩,CRC校验算法
virt; 虚拟文件系统
samples: 一些内核编程的例子
stripts: 配置内核的脚本
一般移植内核,只需改动arch和drivers目录的内容,根据硬件的不同,裁剪所需的内核