“硬实时”为Linux注入新活力
将Linux作为电子设备的软件开发和运行平台,这早已成为设备软件领域的热门话题,这的确可以为电子产品制造企业带来不少好处。然而,由于Linux一直都只能提供软实时(soft real-time)性能,而在汽车控制、工业控制、电信基础建设等诸多需要硬实时性能的应用中,都无法采用只有“软实时”能力的Linux,这就使得许多对时间较为敏感的应用都成为Linux难以涉入的禁地。
最近,美国风河系统公司从FSMLabs购买了硬实时Linux技术——RTLinux,并将其与风河全球领先的Linux设备软件平台的结合,为电子设备制造商提供一套成熟、可靠的全新技术,用于开发和部署各种基于Linux的下一代应用,满足电子设备制造商们对“硬实时(hard real-time)”特性的需求,例如功能型手机、需要高容量流媒体的数字图像应用以及包括车辆避撞系统在内的各类车载应用等。其中,集成RTLinux技术的Wind River Platform for Consumer Devices, Linux Edition可以把各种基于Linux的高速包交换设备软件应用提升到一个全新的高性能级别。
那么,就让我们一起来了解一下,“硬实时”和“软实时”有什么样的区别,哪些场合必须有“硬实时”的软件系统来实现,以及怎样才能获得真正具有“硬实时”特性的Linux平台。
实时性的“软”和“硬”
实时操作系统 (Real-time OS) 是相对于分时操作系统 (Time-Sharing OS) 的一个概念。在一个分时操作系统中,计算机资源会被平均地分配给系统内所有的工作。在分时系统中,各项任务需要花多长时间来完成,这一点并不重要;而在一个实时操作系统之中,最关注的是每个任务在多长时间内可以完成。简单地说,实时和分时操作系统最大的不同在于 “时限(deadline)”这个概念。
从上述区别中可以看出,在实时操作系统中,系统必须在特定的时间内完成指定的应用,具有较强的“刚性”,而分时操作系统则注重将系统资源平均地分配给各个应用,不太在意各个应用的进度如何,什么时间能够完成。不过,就算是实时操作系统,其“刚性”和“柔性”的程度也有所不同,就好像是系统的“硬度”有所不同,因而有了所谓的“硬实时(hard real-time)”和“软实时 ( soft real-time)”。硬实时系统有一个刚性的、不可改变的时间限制,它不允许任何超出时限的错误。超时错误会带来损害甚至导致系统失败、或者导致系统不能实现它的预期目标。软实时系统的时限是一个柔性灵活的,它可以容忍偶然的超时错误。失败造成的后果并不严重,例如在网络中仅仅是轻微地降低了系统的吞吐量。
当你从事设备软件开发时,首先需要知道该系统究竟属于硬实时、软实时还是非实时系统,这一点很重要。这三种系统所要求的编程技术和规范存在很大差别。
风河公司认为,硬实时与软实时之间最关键的差别在于,软实时只能提供统计意义上的实时。例如,有的应用要求系统在95%的情况下都会确保在规定的时间内完成某个动作,而不一定要求100%。在许多情况下,这样的“软性”正确率已经可以达到用户期望的水平。比如,用户在操作DVD播放机时,只要98%的情况都能正常播放,用户可能就满意了;而发射卫星、控制核反应堆的应用系统,这些系统的实时性必须达到100%,是绝对不允许出现意外的。
何时需要“硬实时”?
几乎在每个行业垂直市场都有大量的应用系统要求必须采用硬实时才能达到。例如,在网络基础设施市场,电信应用的关键业务常常就对硬实时、软实时和超高速包传输提出了综合性的要求。在许多对服务水平有特定要求的话音和其它媒体流传输应用中,对硬实时的要求显然超出了市场上现有通用操作系统所能提供的水平。高吞吐量以及高密度数据交换网络也会令简单的网络堆栈和传统In-House的嵌入式操作系统陷入性能拙劣的泥潭。
即使在当今的消费电子市场,移动电话中的调制解调器控制和应用处理都离不开硬实时技术,以便减少芯片组的数量,降低硬件成本。特别是手机设计者希望采用单核处理器来实现这些功能的时候就更是如此。在数字音响和视频设备中,更是不乏硬实时技术的大量应用。数码相机的快门只要被按下,就必须跟随一连串确定的动作,否则就无法拍出高质量的照片。
更严重的情况是,在有些领域系统出错可能导致重大的损失,甚至是人命关天的。例如航空与国防应用中的指令控制、导航、安全、武器控制等,还有飞机驾驶模拟系统等应用,都需要将复杂的计算、存储、显示和机电控制系统有条不紊地协调起来。工业生产流水线,特别是在化工、电力、交通等行业,都有许多精确度极高的机电控制系统。所有这些应用,毫无疑问都必须建立在硬实时技术的基础之上。
怎样获得真正的硬实时Linux?
如果我们在整个业界寻找最具有硬实时性的操作系统,大家公认的一定是风河系统公司的VxWorks。以此为参照,可以让我们对市场上可供选择的实时性Linux操作系统有一个更为清晰的认识。
首先,VxWorks与Linux相比,实现硬实时性的方式是完全不同的。VxWorks从最基础的架构开始就是按照硬实时性的标准来设计的,因此从操作系统整体架构,到其中的每一个组成部分,都具有无可挑剔的硬实时性。
Linux本身原来并不是为了实时性而设计的操作系统。为了在Linux系统中增加实时性,典型的方法是采用“架空”Linux kernel,使得real-time进程得以尽快的被执行。所以,这种系统中的实时任务(real-time task) 其实并不是一个 Linux的进程,而是一个Linux的可加载的Kernel模块( loadable kernel module),或者是一个实时驱动程序的架构,算不上是真正的real-time Linux。但由于它出现的早,且其架构很符合自动控制的需求,因此使用者非常多。
风河系统公司最近从FSMLabs购买的硬实时Linux技术——R
TLinux,是一个完整的发布版本,把Linux kernel、文件系统和工具链(toolchain)与RTCore硬实时执行技术结合起来,形成了一个基于Linux的完整硬实时解决方案。风河公司经过测试验证发现,针对不同的测试基准,其性能可以达到软实时Linux系统的2-5倍。
简单地说,RTCore是一个为了达到实时性而进行的“中断抽象”。这种实时执行技术提供了一个硬件抽象层,可以管理系统中所有的硬件中断,处理所有的实时响应。当所有的实时请求都处理完后,才把非实时性的工作交给标准的Linux kernel。这种做法可以获得双重好处——一方面为应用提供了必须的硬实时能力,另一方面又不需要对标准Linux进行任何修改,从而可以保证对于第三方应用以及其他Linux进程的完全兼容性。
也许有人会问,现在已经有开放源代码的硬实时Linux,为什么风河公司还有花钱去买过来,再补充到自己原有的Linux平台之中呢?风河公司认为,购买RTCore技术可以让Wind River Linux平台拥有成熟并且经过实用测试硬实时能力,立刻向电子设备厂商提供相应的解决方案。尽管在开放源码社区可以获得实时Linux技术,但是RTLinux是唯一提供商业化支持与服务的硬实时Linux解决方案。还有些宣称具有实时性的Linux解决方案,并不一定具有硬实时能力,而且更重要的是,在这种平台上所开发的应用软件很难在多种架构平台之间移植。
总之,风河公司购买并融合RTCore技术,将会使Wind River Linux平台的客户在获得硬实时特性的同时免于受到GPL的限制。因为风河公司所购买的TRLinux包括专利、版权、商标和相关的产品权利,从而可以不受限制地服务于新型的Linux设备软件市场。由此获得的知识产权将会为无数致力于基于Linux的实时应用解决方案开发人员提供有力的支持。从此开始,放眼整个设备软件市场,几乎找不到像风河系统公司这样拥有最全面、完整的实时系统解决方案提供商。
评论