1 开源开放的Linux
1994年3月Linux1.0发布,代码量17万行。
1996年6月Linux2.0发布,代码约有40万行,可以支持多种处理器。
1998年,Redhat Linux出现。
2000年以后,Linux发展迅速。从桌面到服务器到嵌入式领域。
Linux没有独立的知识产权。
Linux体系结构是公开的,原代码是开放的,系列的免费开发工具和开发环境,大量的免费文档,广泛的技术支持。
Linux的缺点:Linux是非实时的操作系统,而嵌入式系统一般都要求实时。Linux本身需要的硬件资源较多,而嵌入式系统是资源有限的。
2 嵌入式Linux的特点
嵌入式Linux基于Linux,但不完全相同。 嵌入式Linux有对实时性的要求。
嵌入式Linux的定制内核:采用Microkernel,特点是内核体积小,占用的资源少。
它继承了Linux的优点。可以进行定制化的改造。对嵌入式硬件有非常好的支持。
典型的嵌入式Linux:RTLinux,Android,Moblin。
Android的特点:完整的,开放的,免费的手机平台。它包括了操作系统,中间件,用户界面和应用软件,这是一个平台而不单单是个操作系统。
Moblin更多的是为带数据互联功能的移动设备设计。
3 ARM-Linux操作系统的内存管理:
存储管理是一个很大的范畴。存储管理机制的实现和具体的CPU以及MMU的结构关系非常紧密。操作系统内核的复杂性相当程度上来自内存管理,对整个系统的结构有着根本性的深远影响。
MMU-内存管理单元:其主要作用是两个方面:地址映射和对地址访问的保护和限制。MMU可以内置在芯片中,也可以作为协处理器。
ARM存储管理机制是按段进行地址映射方式和页面映射方式管理。
4 MMU相关的最主要的寄存器有三个:控制寄存器,地址转换表基地址寄存器,域访问控制寄存器。
5 ARM-Linux内核将4GB虚拟地址空间分为两个部分:高端的1G为系统空间,低端的3G为用户空间。
6 ARM的CSPR
程序状态寄存器CSPR:保存ALU中的当前的操作信息,控制允许和禁止中断,设置处理器的运行模式。
寄存器R13在ARM指令中常用作堆栈指针
7 ARM堆栈模式
用户模式(usr)
ARM处理器正常的程序执行状态。
快速中断模式(fiq)
用于高速数据传输或通道处理。
外部中断模式(irq)
用于通用的中断处理。
管理模式(svc)
操作系统使用的保护模式。
数据访问终止模式(abt)
当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护。
系统模式(sys)
运行具有特权的操作系统任务。
未定义指令中止模式(und)
当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真
7 ARM-Linux的中断响应和处理
struct hw_interrupt_type {
const char * typename;
unsigned int (*startup)(unsigned int irq);
void (*shutdown)(unsigned int irq);
void (*enable)(unsigned int irq);
void (*ack)(unsigned int irq);
void (*end)(unsigned int irq);
void (*set_affinity)(unsiged int irq,unsigned long mask);
};
8 嵌入式Linux文件系统简介
嵌入式文件系统要为嵌入式系统的设计目的服务,不同用途的嵌入式操作系统下的文件系统在许多方面各不相同。
嵌入式Linux常用文件系统:第二版扩展文件系统(Ext2fs),JFFS,YAFFS。
9 Linux文件系统框架和特性
现代操作系统都提供多种访问存储设备的方法
Linux文件系统有两条独立控制设备驱动的途径
通过设备驱动的接口
通过文件管理器接口
10 嵌入式Linux与Windows Mobile
嵌入式Linux:开放开源,有开源社区的支持,由多个公司开发,支持嵌入式Linux的厂商众多,应用领域广泛,免费。
Windows Mobile:部分开放,由微软开发维护,有微软的技术支持,有相关开发社区,支持的厂商众多,应用领域比较广泛,版权/许可证费用。