嵌入式操作系统封装层的设计与实现

作者: 何先波,钟乐海,芦东昕   发布日期:2006-09-16 21:55   查看数:0
中文摘要:

  文中对嵌入式操作系统封装的必要性作了较详细地论述,并以商用嵌入式操作系统 VxWorks 对通信类产品的封装为例对封装层的设计与实现进行了探讨。

英文摘要:

  In this thesis , the necessity of encapsulated layer in embedded operating system is disussed in detail. And its design and implementation are explored by encapsulating communication products on commercial embedded system , Vxworks.


1  前言
     所谓嵌入式操作系统的封装是指为了能缩短特定领域的 嵌入式系统软件的开发周期,增强嵌入式操作系统功能和实 现嵌入式程序的可移植性、可维护性和代码继承性而对所使 用的特定嵌入式操作系统的再“加工”。 嵌入式操作系统封装层的目的之一是将具体的底层实现 细节进行屏蔽,给上层具体应用软件编程者提供统一规范的 调用接口。特别是对底层不同操作系统之间差异的屏蔽,大 大降低了应用软件开发人员的开发难度,也使开发出的应用 软件有较好的可移植性、可维护性和代码继承性。另外,针对 许多商用实时操作系统核心部分源码的不开放性,封装层一 般会对进程调度、内存分配等核心功能进行重新定义和优化, VOS 层位于嵌入式操作系统与应用程序之间,参与对许多对 象的管理,使用户能跟踪到一些比较靠近内核的东西,对原有 操作系统的适用性和效率都有所提高,而且可提供丰富的调 试手段和实时监控功能。提高了关键应用的效率从而使得程 序的可调试性增强,有利于早期发现故障,缩短项目的开发时 间。由于嵌入式实时操作系统封装层的使用,使得一个项目 中很多基本功能都可以在这个封装层实现,而这个封装层是 一个经过测试的、可重用的模块,它基本上是比较可靠的。一 个软件的核心部分比较可靠,可以大大增加该软件的稳定性。
2. 1  VOS(Virtual Operating System) 层
     与操作系统为了隔离具体的硬件环境而设计出HAL 层 (硬件抽象层) 类似,VOS 层的功能就是为了隔离下层所使用 的不同的操作系统,从而给程序员提供一个与下层具体操作 系统无关的统一的接口。封装层其他部分或应用程序只需调 用VOS 提供的标准功能接口,VOS 层识别该接口调用后,直 接或间接地路由到下层具体OS 提供的相应接口调用。由于 应用程序对具体的嵌入式操作系统的依赖减少,从而便于上 层应用软件在不同操作系统之间移植。VOS 层的设计主要考 虑给上层应用提供一个什么样的与具体操作系统和硬件平台 无关的调用接口集,这是VOS 实现的基础。该调用接口集必 须建立在对所使用的各种操作系统提供的API 以及对大量的 应用软件调用需求进行分析的基础上,同时要考虑到操作系 统的发展趋势以及应用软件程序员的认同程度,类POSIX 接口规范应是一个比较好的参考。 一般而言,嵌入式操作系统得提供消息队列、调度控制、 内存管理、时钟管理、I/ O 驱动等基本接口,对这些接口功能 的实现也可采取先实现一个最小的操作原语闭集,然后在实 际应用中再做相应的扩充。考虑到C 库是各种常见操作系 统都提供了的,因此VOS 层实现主要考虑标准C 库以外的功 能接口的实现,如进程或线程、信号量、计时器等。 下面以嵌入式操作系统VxWorks 与通用操作系统 Windows NT的互斥信号量为例利用组件和面向对象的思想通 过虚函数机制考虑VOS 实现方法,其它的实现与此类似。 该方法的基本思想是通过抽象类的成员函数提供统一的 调用接口,通过对抽象类的继承对应到具体使用的操作系统, 借鉴组件实现方法与虚函数功能最终完成路由。
2. 5  文件系统
     在封装层中,最好考虑屏蔽底层文件系统的差别。底层 操作系统的文件系统可以是rt11 (VxWorks 提供的文件系统) , msdos 文件系统等,上层使用相同的访问接口。文件的存储介 质相对上层应用也应是透明的,可以使用硬盘,也可以使用闪 存(Flash) ,内存等。同时封装层的文件系统还可考虑提供嵌 入式的交叉管理功能,前台的文件管理Shell 可以与后台的文 件管理器相连,支持操作维护台对前台文件系统进行的维护 管理。另外很多嵌入嵌入式操作系统未提供文件访问的安全 机制,封装层可根据具体的应用领域实现部分功能。具体的 封装实现可参照Linux 文件系统的实现方法。
2. 6  系统监控
     在封装层设计中系统监控主要考虑要完成对系统中与上 层应用无关的系统软硬件资源的监控,如CPU 使用情况,内 存使用率,任务堆栈使用率,各个上层应用任务的运行次数, 运行时间等等。同时还可考虑提供阈值告警,系列错误统计 及上报等功能。该层的实现可考虑用一专门的任务(进程/ 线 程) 来定期地收集统计相关信息。 VxWorks,操作系统封装层,应用编程接口(API)