使用Linux与关键应用:喜欢混合油和水吗?

Linux的崛起一直没有陨石。最初为基于Intel X86架构的个人计算机开发,它现在在最微小的嵌入式设备上运行,但也可以根据世界上最快的500个最快的超级计算机上找到 Top500是一个独立的基准项目。它是手机(以Android的形式),消费电子,车载信息娱乐(IVI),网络设备的普遍存在,......列表几乎是无穷无尽的。


来源: Aakash Kumar / Pixahive

Linux只是一种操作系统,如任何其他操作系统,但其免费的开源状态提供明显的商业优势。严格来说,术语“Linux”专门指的是内核 - 操作系统的一部分促进硬件和软件之间的交互。熟悉的Linux桌面发行版,如debian,fedora和Ubuntu补充,即Linux内核,带支持的系统软件和由GNU项目提供的库。

Linux在这些桌面机器上的相对罕见充当提醒Linux对突出的突出并没有在所有部门和环境中同样分布。特别是,安全关键嵌入式软件的世界提出了一个基本的阻塞问题,因为该标准的可追溯性需求需要遵守这些系统。由于嵌入式项目已经发展到复杂的计算机系统,构建技术将各种模块聚集在一起,并且围绕安全的要求变得越来越复杂。没有人可以完全了解每个模块是如何构建的,也不知道代码如何在模块之间交互。

嵌入式Linux的警报器

想象一下,以安全关键应用程序的一个很好的想法启动。它可能是一个工业控制器,也许或创新的汽车制动系统,但现在考虑到改变寿命的医疗设备的具体例子。寻求FDA在美国批准的痛苦中有一个痛苦的世界,而欧盟的MDR / IVDR合规规定要求遵守最佳实践,而不是那样清晰。但是现在,没有确定的想法可以全部工作 - 主要重点是科学;软件仅仅是一个结束的手段。概念证明(POC)似乎是一个逻辑的地方。稍后担心认证。

在这种情况下,预算可能会紧张,并且Linux的选择是一个禁智的人。您可以在几分钟内下载它,并有充满咨询,支持和指导的互联网。它不需要开发席位费,没有许可 - 如果您需要帮助,那么有一个大规模的开发人员专业知识才能呼吁。什么可能出错? 

有什么问题?

一些挑战可以很容易地处理。例如,标准Linux没有这些扇区中许多应用程序可能需要的实时功能。在Premempt_RT补丁形式的实时Linux的开发代表了Linux基础对这些问题的答案,并且在需要寻求替代方案时,仍然有关硬实时应用的适用性(见 实时Linux内核:Premempt_rt的调查。 ACM计算调查)。它还尚未完善它可以合并到MainLine Linux内核中的点,尽管这是其开发人员的最终目标。

那些个人的质量如何? Linux内核和系统软件的开发人员主要是软件专业人员。在Linux基金会之外的内核的许多贡献者是其正常就业的一部分,所以他们的专业性并非有问题。事实上,开源软件(OSS)可能更多“correct” (开源倡议,2018年)因为通过每个人都可以访问,所以源代码被一个大型社区持续分析,任何人都可以在找到它们时修复错误。 这反过来意味着最终用户不必等待下一个官方版本。 

到目前为止,一切都很好。但这些项目的功能安全标准必须遵守必须遵守的核心目标,包括IEC 61508(国际电工委员会,2010),ISO 26262(国际标准组织,2018)和IEC 62304(国际电工委员会,2010年)分别为我们的工业,汽车和医疗例子。这些标准放下了一个开发生命周期,该循环被设法在质量保证,配置管理,变更管理和验证/验证方面确保严谨:

质量管理: 在任何关键系统的核心中,任何强大的质量管理过程,通常都是ISO 9001(国际标准组织,2015年)的最低限度。作为概括,开源软件环境中的质量管理趋于较小的刚性。也就是说,遵守诸如ISO 9001的标准确保仅定义和遵循该过程,并且产品质量是可重复的,不一定高。

更换管理层: 任何能够在开源开发中找到错误的人的缺点是它绕过了正式更改控制过程。

配置管理: 通常,两个开源项目和更传统的发展都使用存储库(例如Git,SVN),该存储库提供受控环境,而不仅是最新的开发版本,而且为构建,候选者和实际版本的受控环境提供控制。

验证和验证: 关键任务软件的关键问题区域在验证和验证活动中。安全案例要求证据支持软件适合目的的论点;也就是说,它符合记录的要求。

与许多扇区特定的功能安全标准相同,ISO 26262描述了汽车发展的V模型(图1)。

点击查看完整大小的图片

图1:用于将自动刀具链应用于ISO 26262过程指南的传统序列。 (来源:LDRA)

这需要通过完整的生命周期,验证和验证设计,验证和验证实现来进行可追溯性。采用开源解决方案时,这些阶段都难以实现。

功能安全标准通常还建议采用语言子集(通常称为编码标准),例如所描述的流行指南 臭马克拉。经验证据表明,采用此类准则在开源社区内很少,也许是因为指导方针本身不是开源。

网络结果是您可以根据所选功能标准开发示例性质量的应用软件。但是,如果您的操作系统还没有实现质量水平 - 同样重要的是,并不提供质量的证据 - 那么您的系统无法符合符合要求。

ELISA项目

Linux基金会对这个难题没有陌生人。 2019年2月, 在安全应用程序中启用Linux (伊利安斯) 开源项目 被推出,目的是帮助公司“构建和认证基于Linux的安全关键应用程序和系统,其失败可能导致人类生命丧失,重大财产损失或环境损害。“ 虽然这是一个值得称赞的目标,并且该项目被一些非常重要的支持者支持,如ARM,BMW和TOYOTA,它仍然是明天的愿望,如果您的开发项目是今天的。

一枪收养

目前,在任务关键字项目中,无法使用,不受控制和逐步使用开源操作系统。但是,这并不意味着OSS根本不能使用(如果知识产权是一个问题,许多OSS许可证要求任何派生代码也是OS,必须返回到存储库)。

Linux是一个与任何其他外部开发的软件包(例如库或驱动程序)不同的开源包,因为它应该被视为未知谱系(或汤)的软件以及应用于IT的完整验证和验证过程 - 以及在基本包的任何更改的情况下重新删除,只能通过托管的变更控制过程引入。

ISO 26262'V'模型图中示出了形式测试工具的传统应用。面临在开源操作系统上建立标准兼容应用程序的任务的团队将需要遵循更务实的方法,不仅是因为代码已经存在,而且因为代码本身可能是唯一可用的详细的“设计”文档。”换句话说,现有代码有效地定义了系统的功能而不是任何文档。

一般来说,对于图书馆或司机来说,这可能是一个实际命题。但思考回医疗设备的例子,这样的发展团队真的想花时间逆向工程的操作系统吗?例如,即使通过使用Yocto最小化OS足迹,例如,这种练习将需要了解对低级软件的了解,这是最好是一个重大分心,并且在最糟糕的情况下,在应用程序开发人员的舒适区之外可能很好。

今天的务实解决方案

如果所有概念证明开发将在可证明的操作系统上完成,那么其中许多人甚至都不会开始。任何务实的解决方案都必须承认以某种形式使用Linux几乎是不可避免的。

在这之后发生了什么,这取决于时间尺寸。发展需要多长时间?什么时候ELISA会变成年龄?

可移植性是任何便携式操作系统接口(POSIX)兼容开发的主要优点之一。虽然许多Linux实现不是完全POSIX兼容,但完全可以限制它们的功能对这些功能,并且仍然具有更适用于构建实用系统的工具包。

即使应用程序开发从沙箱“黑客IT并查看”方法到正式记录的,兼容的开发生命周期,即使是扩展开发团队也完全实用,以便以这种方式继续利用Linux。这意味着执行所选择的功能安全标准所需的所有验证和验证活动,包括要求跟踪,编码标准的应用,单元测试(图2),结构覆盖分析以及所需的其他任何其他方式。

点击查看完整大小的图片

图2:使用LDRA工具套件执行单元测试。 (来源:LDRA)

最终将在市场上被评估时,将估计的一天来。 ELISA可能是可以部署的,在这种情况下,前方的道路很清楚。但是,如果没有,则有几个POSIX符合性,商业上可获得的RTOS,例如来自认证的QNX和Lynx的RTOS。原则上,它是一个简单的任务,重新编译您的应用程序,为您的商业RTOS提供单一许可,重新运行新环境中的动态分析测试,并达到市场!

为了使这一实践命题,项目早期考虑有两个关键因素。

POSIX合规性和一致性: 术语“合规性”和“一致性”似乎是同义词,但要小心!图3突出显示了可能的微妙不匹配度,捕获简称的捕获基于POSIX规范之间的边界的模糊,以及在实践中实施的内容。

点击查看完整大小的图片

图3:开放组’架构合规性和一致性的例证。 (来源:LDRA)

这提出了关于假设便携性的问题。例如,如果您开发了一个系统部署包含不合形特征的RTOS,则任何RTO的变化可能涉及至少部分重写。

现在假设您的原始系统使用完全POSIX符合性RTOS,并且您所选的替换是一致性的,但不完全符合。如何确定新操作系统实现代码库中杠杆的所有功能?

全自动测试和需求可追溯性: “重新运行新环境中的动态分析测试”是一个指令短语的东西,但如果所有这些测试都是通过手动手段执行的,那么即使事情顺利进入,可能会有相当大的开销。

现在假设转移到所认证的RTO的选择,需要部分重写。跟踪对要求的任何影响,设计和测试很容易成为项目管理头痛,在项目最不受欢迎的时候。  

确保完全集成,自动化的测试和需求可追溯性可以最大限度地减少影响,使得必要的重新测试变得容易,并且他们的执行简单地重新运行它们。

点击查看完整大小的图片

图4:使用LDRA工具套件改变要求的影响分析。 (来源:LDRA)

结论

现在,使用Linux作为最安全关键型应用程序的首选操作系统不是一个选项。但这并不意味着它无法在这种应用程序的发展期间使用。

如果ELISA或类似的发展使其成为可实现的目标可能会改变。但是,如果不是,POSIX中固有的可移植性为从概念证明转换为可证明项目提供了一个选择。 

使实际命题需要仔细使用POSIX功能,以及如果在将应用程序从Linux移植到符合标准的替代方案时,则重新测试的无缝机制。 


马克斯特福德 是技术专家 LDRA软件技术 。 Mark拥有超过30年的工程申请软件开发经验,并在英国和国际上致力于开发和管理的许多重要的工商项目。自2001年以来,他曾与寻求在安全和安全性关键环境中实现符合符合软件开发的开发团队,与DO-178,IEC 61508,IIRA和Rami 4.0等标准一起使用标准。 马克赢得了诺丁汉特伦特大学的科学学士学位,他是一个超过20年的特许工程师。他现在担任LDRA软件技术的技术专家。

相关内容:

更嵌入, 订阅嵌入式’S每周电子邮件时事通讯.

发表评论

本网站使用AkisMet减少垃圾邮件。 了解如何处理评论数据.