寻求一个低风险的方式通过DO-178B认证
显而易见地,以一个通过DO-187B认证的操作系统包,需要成千万个:人-工作日和数百万美金。对于航空方面的项目,DO-178B认证是一个非常苛刻并且昂贵流程。随着项目越来越来复杂,安全性要求越来越高,通过类似DO-178B这样的认证已经逐渐成为了共识,也成了项目的标准要求qn包括医疗设备和通讯系统,适用于所有高安全性,主可靠性的产品。DO-178B已经成了一个标准的项目安全性、可靠性的指引。这个指引包括在系统和软件生命周期方面。DO-187B的步骤和目标必要有可追溯性,只就需要空前多的文档去说明软件的开发过程和软件的维护步骤。这个可说明性需要大量的时间和精细的工作。为此,许许多多的厂商为了通过这个认证,甚至为了写125行源代码,而花了 人 - 三个月 的工作量。
为了详细说明软件开发的流程,这个标准当然要描述到一些开发中的一些结构问题。当中就包括了Partitioning(隔离技术), 因此,包括错误,严格分析和测试和独立模块会被隔离,这在一个高安全,可靠的系统中,将会令人信服。为了加快产品上市的时间,降全面认证的成本,厂商必须找到一个通过认证的操作系统包。
这意味着软件包:
Address pertinent architectural considerations such as partitioning for fault containment.
Deliver mandatory data to further expedite certification.
Rock-solid基础 – LynxOS
LynuxWorks在1988年开遵照DO-178B的规范来开发LynxOS。
LynxOS-178 OS包的内核就是LynxOS。LynxOS从1988年是一个硬实时的Unix系统,从推出那一天起,经过了上千万次的实际产品的测试,千锤百炼。Safety-critical系统的开发者欣喜地发现,他们找到了一个如果低故障率的嵌入式产品,对LynxOS充满了信心。对于采用了其它操作平台的项目,要已经投入多得多的人力物力,才能达到他们所预期的效果。
Partitioning – 隔离程序错误的方式
LynxOS-187一个非常著名的特点,就是同时在一个空间支持多硬分区。每一个分区是被严格隔离开的。因此,当一个分区出现问题的时候,不会影响到其它分区。一个分区包括其独特的计算时间,储存器空间,资源。这一个很好的办法去保证所有的资料可以被使用,同时又隔离了其它分区的问题。
在LynxOS-178当中,硬分区的功能通过一个Virtual Machines(虚拟机)实现。每一个应用(任务,进程)只在一个硬分区里内运行,就象在一个独立的CPU在运行一样。独立的硬分区可以调用所有处理器的资源和变量名空间。这样的保护方式,让开发工程师降低了开发的压力,每一个模块可以独立开来。最后组为一个复杂的系统。Partition通过Virtual-Machine Configuration Table(VCT虚拟机配置表)来管理,这是LynxOS-178强制要求的。
Time partitioning—ARINC 653-like scheduler (调度)
The LynxOS kernel has been enhanced in the DO-178B release to provide features that specifically address key DO-178B architectural considerations. The one such enhancement has been the addition of an ARINC 653-like scheduler, driven by a 1msec timer. This configurable, fixed cyclical time-slicing scheduler provides the time partitioning required for guaranteed availability of CPU time when running safety-critical applications.
Memory partitioning (存储器分区)
硬性的存储器分区可以通过处理器中的MMU自动处理。这个机制使得出错可以限制在特定的内存区域内,与此同时,每一个虚拟机所控制的内存大小,就是该分区内所使用的内存大小。LynxOS-178完全支持MMU,这就可以提供一个高可靠性的特性,包括保护内存功能和极高处理性能(通过hardware-mapped 地址保护对区分每一个虚拟机,或者说是硬分区)。通常在LynxOS-178系统当中,MMU的功能主要是协调在不同分区中的任务和进程。这就保证了每一个任务只能强制性地、可靠地运行在它本身所在的地址空间当中。这个功能降低了工程师的开发难度,因为项目当中的每一个任务中以单独地去认证。并且之间没有关连性。
要求100%的代码均被测试过
一个非常重要,也是非常昂贵的DO-178B A级认证的要求,就是测试。众所周知的Structural Coverage测试。对于DO-178B的A级,每一行源代码必须进行Modified Condition/Decision Coverage(MCDC)测试。如果代码比较复杂,这些测试可能需要上百万美金的费用。而LynxOS-178 100%通过MCDC的测试。如果在LynxOS-178平台上进行开发,那么工程师就可以专注于应用部分,而不必花大量的精力的操作系统上面。同时,操作系统这部分也不需要重要进行认证。
快速升级,快速通过认证
LynxOS-178支持可更换的、模块化 (Mountable) 的文件系统,保证了独立任务的执行和动态设备驱动。这个特性,使得应用程序和设备驱动成为独立的模块,而不是跟所有的程序混在一起执行。在LynxOS-178的系统中,每一个模块(每一个驱动,每一个应用)均在不同的分区当中执行。彼此之间是独立的。对于认证来说,当某一个模块被修改时,只需要重新认证、测试这一个模块就可以了。从而大大加快了开发的流程。给工程师提供了前所未有的便利。