DSO让Linux成为完美的实时操作系统

时间:2022-10-17 06:29:51

DSO让Linux成为完美的实时操作系统

以前,电子产品的主要市场都是企业机构用户,家电产品或者供个人使用的电子产品屈指可数,不过是电视机、电冰箱、收音机等寥寥数种。如今,消费电子产品市场的迅猛发展正在改变电子工业的基本格局,成为举足轻重的大市场。很多智能消费电子产品需要通过操作系统来实现各种复杂的功能,因此,选用什么样的实时操作系统就成为开发商所面临的重要问题。

市场新挑战

伴随着消费电子产品在品种和数量上的激增,电子产业遇到两大挑战:第一,与面向企业机构的电子产品相比,消费电子产品的生产销售批量都非常大,因而产品成本控制就显得更为重要。第二,消费电子产品推出新款式、新型号的周期更短,面临的市场压力更大,而逐个产品单独开发的传统模式已经赶不上市场竞争的要求。

为了应对上面提到的第一个挑战,也就是降低操作系统的成本,制造商很容易想到的是Linux。然而,将Linux用于消费电子产品,又遇到了两个问题:第一,Linux的实时性如何保证;第二,Linux作为一种开放源代码的平台,其可靠性、应用开发规范和技术支持与服务都缺乏值得信赖的依靠。这些问题如果处理不好,往往会造成更大的成本和麻烦。

如果既能在操作系统及开发工具为Linux提供支持,又能解决Linux的实时性问题,这显然是众多消费电子产品制造商的一大福音。风河系统(windRiver Systems)公司的VxWorks实时操作系统和Workbench集成化开发平台在业界享有盛誉,又将DSO(Device Software Optimization,设备软件优化)方法论并应用于Linux,推出了相应的开发平台Platform for Consumer Devices的Linux版,并且从FSMLabs购买了实时Linux技术,可以为客户提供完善的硬实时Linux解决方案。

消费电子的实时性需求

与PC基本上都运行同一种操作系统不同,消费电子产品中的操作系统可算是花样繁多,这是因为消费电子产品本身就是五花八门,不像PC那样具有标准化的硬件结构。

目前消费电子产品在结构上基本可以分为三类:低端产品通常基于ASIC或者SoC,采用廉价的处理器,配备的程序存储器容量通常在256KB~1MB的范围内,基本上都是由单一开发团队完成软件开发。例如,入门级的数码相机和喷墨打印机就是典型的低端产品。

中端产品的特征是程序存储器容量在1~2MB的范围内,常常需要多个软件开发团队协同工作。数码摄像机就属于这类产品。

高端产品的程序存储器容量可能达到32MB以上,也会采用性能更高的处理器,有较大规模的软件开发团队协作完成。智能手机和机顶盒显然都属于高端产品。

不同的产品类型对操作系统的要求也有所不同。低端产品在人机交互方面比较简单,通常只是通过几个按键来实现。当使用者按下这些按键后,一定会跟随着一系列的反应和处理动作,这些处理动作在发生的时间和顺序都有非常严格的要求。例如,在数码相机上按下快门键,就会启动测光、聚焦、感光成像和图像存储等一系列动作,每个动作所用的时间都必须严格控制。再比如在喷墨打印机中,必须把图像数据转换成喷墨命令传递给控制马达,马达将喷头移动到指定的位置并精确地喷出墨水。喷墨打印机的打印速度是其市场竞争力的重要指标,这就给时序控制提出了更高的要求。而且,低端产品由于销售批量很大,需要严格控制成本,所以一般都采用性能不高的处理器,因而给软件的实时性提出了更高的要求。

高端产品通常采用价格和性能都比较高的处理器,而且有时会配备协处理器。另外,像智能手机、机顶盒之类的设备,人机交互非常多。一般认为,电子器件的反应速度比人的动作快得多。高性能的处理器,加上动作较慢的人工操作,使有些人认为在高端消费电子产品对实时性的要求没有那么高,但事实并非如此。因为高端消费电子产品在功能上常常覆盖了低端产品。例如,智能手机几乎都配有照相功能,而且还要通过无线网络来传送照片;机顶盒之中会有DSP部件,用来进行IP路由和视频解码。

一般来说,高端消费电子产品都需要与比较多样化的设备配合使用,无论从功能的多样性和实时性两方面看,都对操作系统的实时性提出了非常严苛的要求,同时也需要更多的中间件和服务支持。

让Linux的实时性由软变硬

由于采用不同的技术,各种操作系统的实时性也有所不同。操作系统可大致划分为实时操作系统(Real-time OS)和分时操作系统(Time-Sharing OS)两类。在一个分时操作系统中,计算机资源会被平均地分配给系统内所有的工作。分时系统的设计原则是最大限度地利用处理器资源,尽量不让处理器处于空闲状态,而各项任务需要花多长时间来完成,这一点并不重要;而在一个实时操作系统之中,最关注的是确保在规定的时间内完成确定的任务。在许多应用系统中,在确定的时间内完成任务是至关重要的,一个小小的误差就会造成很大的损失。数码相机的曝光时间误差只是影响到照片的质量,而航空控制系统的时间误差可能会关系到乘客的生命安全。

可见,在实时操作系统中,系统必须在特定的时间内完成指定的应用,具有较强的“刚性”,而分时操作系统贝《注重将系统资源平均地分配给各个应用,不太在意各个应用的进度和完成时间。不过,就算是实时操作系统,其“刚性”和“柔性”的程度也有所不同,因而有了所谓的“硬实时(hard real-time)”和“软实时(soft real-time)”。硬实时系统有一个刚性的、不可改变的时间限制,它不允许任何超出时限的错误。超时错误会带来损害甚至导致系统失败、或者导致系统不能实现它的预期目标。软实时系统的时限相对比较灵活,它可以容忍偶然的超时错误,失败造成的后果并不严重,例如在网络中仅仅是轻微地降低了系统的吞吐量。

Linux本身原来并不是为了实时应用而设计的操作系统。为了在Linux系统中增加实时性,典型的方法是采用“架空”Linux kernel的方法,使得实时进程得以尽快的被执行。所以,这种系统中的实时任务其实并不是一个Linux的进程,而是一个Linux的可加载的Kernel模块(loadable kernelmodule),或者一个实时驱动程序的架构,算不上是真正的实时Linux。但由于出现得早,且其架构很符合自动控制的需求,因此使用者非常多。

风河系统公司从FSMLabs购买的硬实时Linux技术RTLinux是一个完整的版本,把Linux kernel、文件

系统和工具链,与RTCore硬实时执行技术结合起来,形成了一个基于Linux的完整硬实时解决方案。测试验证表明,针对不同的测试基准,其性能可以达到软实时Linux系统的2~5倍。

简单地说,RTCore是一个为了达到实时性而进行的“中断抽象”。这种实时执行技术提供了一个硬件抽象层,可以管理系统中所有的硬件中断,处理所有的实时响应。当所有的实时请求都处理完后,才把非实时性的工作交给标准的Linux kernel。这种做法可以获得双重好处,一方面为应用提供了必须的硬实时能力,另一方面又不需要对标准Linux进行任何修改,从而可以保证对于第三方应用以及其他Linux进程的完全兼容。

以DSO方法实现全面提升

电子产品的开发普遍存在“继承性”,大多数新产品都是在上一代产品的基础上升级更新,增加新的功能特性,丢弃旧的功能。与传统市场相比,消费电子产品具有更强的时尚性,更新换代的周期可能缩短到几个月。相应地,消费电子产品开发的模式必须紧跟市场变化的节奏。传统上那种每个产品都从头开始开发,以及单个产品的开发团队独自工作的模式已经跟不上形势,只有在整个企业范围内实行标准化、系列化、组合式和迭代式的开发模式,尽可能增加软件模块的重复使用,才能降低开发成本、缩短产品上市时间,在市场上占据有利地位。这种新的开发模式,就是如今设备软件开发领域常常提到的DSO(Device Software Optimization,设备软件优化)方法论,如图所示。

DSO方法论是总结过去25年来企业网络化和分布式计算领域逐渐积累起来的策略、方法和最佳实践,致力于优化设备软件的开发流程。DSO把过去多年的经验归纳为以下几个方面,并以此作为自己的支柱。第一,在整个产品开发项目生命周期中实现工具和流程的标准化;第二,采用集成化的开发和运行时环境,包括支持商业化的硬件、中间件、操作系统和开发框架;第三,吸收和利用由开放源代码社区产生的代码、工具和协议;第四,减少对私有技术的依赖,尽量采用符合业界标准的参考解决方案;第五,以工程项目和市场需求为依据,对开发人员进行灵活有效的管理,摆脱私有技术的锁定。

设备软件生命周期的发展趋势正在走向集成化、构件化、可重用、标准化、开源以及开发技能的归一化。电子产品制造商和软件工具提供商必须寻求开放、集成化并且基于行业标准的方法,才能符合DSO的要求,并满足质量和开发效率的要求。

有了DSO方法论和硬实时技术的加持,消费电子开发商已经可以放心地采用Linux作为其产品的操作系统平台。商用级Linux和OMAP处理器的高级多媒体功能特性可以为电子设备制造商提供支持丰富多媒体应用和移动应用的Linux平台系统,进一步降低这些应用从开发到上市的时间和成本。

上一篇:基于Intel PXA270的Windows CE5.0下Boot Loade... 下一篇:Windows XP Em bedded中基于文件的写入过滤器