论文部分内容阅读
在嵌入式软件开发中,操作系统起了越来越来重要的作用,现在商用的操作系统很多,如VxWorks,QNX,WinCE等。但是这些商用操作系统都价格不菲,这就增加了嵌入式产品的成本。Linux作为开源软件,可以免费获得,而且它具有功能很强大、广泛的平台支持的特点,在嵌入式开发中具有广阔的前景。 本文《DOPRA的OSAL中Linux相关模块的设计与实现》是项目《将IAD132从VxWorks移植到Linux》的一部分,这个项目是为了研究Linux作为嵌入式操作系统的可行性。IAD132一种窄带盒式接入设备,DOPRA(Distributed Objected Programming Real-time Architecture,分布式面向对象可编程实时架构)是IAD132使用的软件平台,它是一个操作系统性质、中间件级别的软件平台,它屏蔽了操作系统的差异,向上提供了统一的接口。OSAL(Operating System Adapter Level,操作系统适配层)是DOPRA中与操作系统直接相关的一部分,目的是实现与操作系统相关的各种模块并封装起来,为上层模块提供统一的接口。 本文主要涉及OSAL中Linux相关模块的设计与实现,通过封装Linux提供的API(Application Programming Interface,应用编程接口)实现信号量模块、读写锁模块、IO管理模块、系统时间管理模块、任务管理模块、内存管理模块,并针对用户态和内核态分别实现。文中详细描述了嵌入式Linux环境的搭建,包括:库函数的选用、交叉编译器的制作、内核的裁减和修改、文件系统的选择等。 通过对IAD132的移植研究,可以发现:Linux内核态的性能和VxWorks相当;Linux用户态的性能会有大幅度下降,主要受进程间切换和系统调用的影响,但是如果将丰要业务放在同一个进程,并且通过内核态和用户态共享内存的方法回避系统调用,就可以在用户态实现接近内核态的性能。只要使用合适的产品模型,IAD132使用Linux作为嵌入式操作系统时的性能与使用VxWorks时不相上下。可以说,Linux作为嵌入式操作系统是完全可行的。