目前Linux在航天器飞行软件中的使用情况(2017)

2020-06-06 12:00:58

航天器机载计算机负责控制航天器平台、有效载荷或其他机载设备。他们的特定于任务的软件允许与地面或其他机载计算机进行通信。传统上,车载软件是用汇编语言、Ada、C或C++在接近硬件的地方编写的,有没有实时操作系统(RTOS)[1]。随着航天器计算机硬件能力的提高,航天器软件变得越来越大和复杂,处理从有效载荷数据处理到运载火箭第一级降落在远洋驳船上的任务越来越多。航天器将继续包括非常小的嵌入式系统,这些系统可以在没有操作系统(OS)的情况下开发,但一些系统也将拥有大型软件库,这需要高效的软件开发过程和现有软件模块的重用。在过去的十年里,越来越多的人在航天器上的软件中使用Linux。本文介绍了航天器机载计算机和软件的共同特点,并讨论了使用机载Linux的潜在好处和缺点。这篇文章的重点是航天器上的航空电子软件,即与航天器一起飞入轨道的航天器控制代码。其他类型的计算机不包括在此分析中;例如,国际空间站上的许多笔记本电脑运行Linux[2]。

将需要重用现有的软件模块,并使用ffi经验丰富的流程和工具。

以汇编语言、Ada、C或C++编写,接近硬件,使用或。

把运载火箭的fi第一级降落在远洋驳船上。宇宙飞船仍将。

自动测试系统,但有些系统也会有很大的软件库,这需要很好的ffi。

然后探讨了板载fi的不足之处。最后,本文给出了。

用于完成其特定任务的计算机硬件资源和接口,例如。

操作系统是一个可选组件,在许多情况下根本没有使用过。在……里面

几条行刑线索。不管怎么说,最近Ada的使用量已经减少了。

都是从头开始编写的,所以最终结果往往是非常紧密耦合的,并且。

每个系统都有不同的用途和不同的软件包时代和应用。

内核通常由引导加载程序启动,并且在嵌入。

I2C和串行端口[6]。CAN是已在。

库,通常用于取代桌面应用程序中使用的标准GNU C库。

Linux被设计为通用操作系统,因此不直接支持。

本节回顾了Linux在各种航天器中的使用。分析仅限于选择

fi第一次在航天器上使用linux的研究可能可以追溯到nasa fligh tlinux。

从1999年到2002年的项目。该项目旨在提供在轨演示-。

Linux。内核和解压缩程序被fi划分在一个大约为-1的空间内。

最大为400kB,系统只有4MB可用RAM。提供Linux。

例如JAVA。内核设置例程被修改为支持UOSAT-12硬件。内核设置例程被修改(modified)以支持UOSAT-12硬件。

计划中的UoSat-12测试非常原始,比如打印“你好,世界!”到一个。

分析只集中在成功的fl自己的任务上。alto-1,如图3所示。3,预计。

作为一个额外的优点,fit;perl和python进行了评估,但是shell脚本被取消了。

fly linux最早的立方体卫星之一是QuakeSat,它是一个3U立方体卫星。

操作系统采用DIAMOND系统公司提供的Linux版本。LIN UX是。

被计时到66 MHz,系统有32MB的RAM和192MB的闪存。

用于存储的磁盘。除了linux之外,flight软件还包括大约10,000行。

能够存储一天的命令和数据。SchedulefiLes已上载到。

该计算机有8MB内存和4MB非易失性fl闪存。16位。

功能是选择微控制器的原因之一,因为它允许更多的功率用于。

以便更具可扩展性。软件是用C语言编写的,因为它具有很好的集成性

Ipex是由加州保利圣路易斯·奥比斯波和喷气推进公司开发的1公斤立方体卫星。

NAND闪存和16 GB microSD卡。使用Linux2.6.30。卫星地址-。

System V初始化过程用于启动和重启fl灯的主要组件。

非易失性存储非常丰富,而很难上传大量的软盘。

Android操作系统基于Linux,至少有两个项目使用了。

在其有效负载中,Digi-Wi9C单板计算机上的µClinux和Google上的Android。

例如远程登录协议。任务的目的之一是测试转移。

它的目的是测试太阳帆在太空中的展开情况。轻型TSail-1航空电子设备

由两块具有不同ff任务的处理器板组成。主站负责处理。

暂时失去控制。由于以下原因,逗号分隔值file超出了界限。

导致主计算机重新启动,临时fiXing问题,并允许错误。

要在轨道上应用的fix。在bugfix之后,太阳帆部署成功。

通过使用数十到数百颗立方体卫星组成的星座,以高刷新率对地球进行观测。这个。

行星使用的DOVE卫星系列由eff等中的三个单元立方体卫星组成。

工业将电子产品压缩到非常小的尺寸,从而使其成为一间房。

整合到单包时代。每颗卫星的成本都很低,而且是可消耗的-有

然后运行Ubuntu服务器。0.5 TB的固态存储可用于支持。

成像操作。Planet选择LINUX是为了能够快速重启fiGure操作系统。

国际空间站,并计划在不久的将来进行人工测量。这个。

正如埃隆·马斯克(Elon Musk)所说,该公司的目标是最终建立人类的存在。

fl轻型计算机由三个计算机单元组成,每个计算机单元有两个独立的处理器。

配饰。“龙”号飞船总共至少有54个直接或间接(di-fferent off-the-Shelter)处理器,

而F Alcon 9至少有30个。不能因为成本而避免抗辐射部件,

C++能够利用这些环境的庞大开发人员社区-

他们办公桌上的fl之夜电脑。他们还在迭代和开发新的版本-。

这是对未来任务中使用的计算机的设想,目的是从经验中学习。

车辆,也用于他们的测试车辆,如蝗虫。他们的Linux版本是。

原始代码的百分比。Spacex还制作了他们自己的任务规格fic modifications。

添加到内核中,并且还添加了自定义驱动程序。内核已经被仔细地。

因此,航空电子代码已经在fligt中得到了验证。共享代码库也意味着。

BUG在所有平台上都会被fi限制。反应时间是发射的主要差异所在。

SpaceXGNUight软件开发人员使用大量标准fl工具,如gcc、gdb

至少可以追溯到1999年的FlightLINUX项目,当时identifi发现了一些问题。

本节考虑使用fi的潜在好处和缺点。

在航天器fifl软件中使用linux好处与在嵌入式软件中使用linux的好处相似。

一般的系统。y aghmour[6]和hallinan[8]已经认识到了以下fifit。

·Linux代码库可以信赖,因为它被广泛采用,并且-。

F urthermore,Birrane等人的研究成果。[5]是否发现了使用linux的更多优点(fic benefit)。

在flIGH计算机中使用,具有很小的电子ff,包括数据压缩,

软件代码是免费提供的,检测到任何可能存在的错误,并提供更多fi服务

快,并且fiXES可以被提供回通信单元。开发人员还可以。

向软件添加有用的功能,并使其可供其他用户使用。几乎所有的。

本文所研究的项目考虑了linux源代码的可用性,有益于fi。

他们,因为他们可以fi和问题,测试莫迪fi阳离子,并轻松地进行定制。

如果这个额外的软件是flo wn,则它必须经过验证,并与。

实际使用的软件,或者必须验证额外的软件是否。

可以忽略不计。如果系统存在“额外的”软件,则不会造成性能问题。

有足够的空闲内存和处理能力-选择可能更便宜

另一方面,还可以定制Linux,使其在很少的资源上运行[9]。

一个主要缺点是Linux没有被设计成RTOS。何伟,

添加功能是为了使Linux更加实时友好。在某些情况下,硬盘的数量。

仍然存在的约束,一种选择是使用专用控制器来处理它们,或者。

Craveiro等人的研究成果。[7]和Rufino等人。[32]描述航空项目,该项目有研究-。

fi版的AIR体系结构如图所示。7.在此场景中,一个微内核。

Linux的可用性:Craveiro等人。特别要注意的是,这允许使用许多。

一名口译员。然而,必须确保linux的使用不会造成ff等问题。

AIR体系结构确保了linux分区的fix量的处理时间。

因为如果较高优先级的y任务是,则空闲任务可能会无限地阻塞linux应用程序(indefi)。

成功地将其用于商业任务。它们可能是fl空间中最多的。

在Linuxuence中,指的是行业中其他地方采用fl的速度。看起来很可能是使用。

LINUX在航天器中的flLIGHT软件将继续发展,主要受以下因素的推动:

他们的F Alcon9火箭认为Linux可以很好地用于硬实时系统。Linux。

将不是所有系统的解决方案;有些系统仍然最好在低级编写,如果没有。

如果要使用Linux,硬件需要能够运行它。婴儿床硬件,

用于通过复制硬件来构建具有现成电子设备的健壮系统。

在太空中使用LINUX不一定与地面应用程序有很大的不同-ff。

许多“地面”软件和实用程序可以重复用于空间应用。

部署linux的简单性可能是有欺骗性的:可能相对容易地获得。

更大的eff港口。Linux是复杂的,在Linux上构建的系统也会很复杂,因此。

例如第3.5节中讨论LightSail-1磁盘超过fl的问题。一些系统。

使用LIN UX开发可能很快,但很难测试;另一方面,同样。

系统可以用相同的ff命令从头开始编写,并且非常容易测试。

对基于linux的系统进行验证和验证的diffi狂热可能是。

Linux在各种航天器中的使用很可能会持续增长。SpaceX。

为linux开发的“地面”也可以被带到太空,只需很少的电子ff命令。

Linux的普及可能是它将继续存在的最大原因之一。

[5]E.Birrane,K.Bechtell,C.Krupiarz,A.Harris,A.Mick和S.Williams,“Lin UX。

[7]J.Craveiro,J.Rufino,C.Almeida,R.Covelo和P.V.Enda,“Embedded LINUX。

[9]C.Huffine,“小卫星上的Linux”,Linux Journal,2005年3月1日。[在线]。

[10]A.Kestil¨a,T.Tikka,P.。首页--期刊主要分类--期刊细介绍--期刊题录与文摘--期刊详细文摘内容

方法和数据系统,第一卷。2,第1号,第121-130页,2013年。[在线]。现有:

[11]M.Long,A.Lorenz,G.Ro dgers,E.T apio,G.T.Ran,K.Jac Kson,R.Twiggs,

[12]S.Flagg,T.Bleier,C.Dunson,J.Doering,L.DeMartini,P.Clark e,L.Fran Klin,

J.Seelbach,J.Flagg,M.Klenk等人的“使用纳米卫星作为。

[13]M.Surratt、H.H.Loomis、A.A.Ross和R.Duren,“Challenges of Remote FPGA。

[17]首页--期刊主要分类--期刊细介绍--期刊题录与文摘--期刊详细文摘内容。

[18]J.Doubleday,S.Chien,C.Norton,K.Wagstaff,D.R.Thompson,J.Bellardo,

[19]首页--期刊主要分类--期刊细介绍--期刊题录与文摘--期刊详细文摘内容

D.Mellor,A.Schofield和R.Linehan,“STRAND-1:使用$500。

[20]首页--期刊主要分类--期刊细介绍--期刊题录与文摘--期刊详细文摘内容。

[21]G.Manyak和J.M.Bellardo,“Polysat的下一代航空电子设计”

[22]首页--期刊主要分类--期刊细介绍--期刊题录与文摘--期刊详细文摘内容。

和J.F.Oley,“LightSail Program Status:One Down,One To Go”,“Procee Dings of of”。

J.W.Olfe,“PhoneSat in-flight Experience Results”,“小卫星系统和。

[24]书名/作者声明:[by]C.Boswizen,J.Mason,P.。克鲁帕和S·斯潘纳克,“来自星球的结果”

[25]B.Everard,“行星实验室:将Linux放入太空”,Linux卷:第8期,6月

[31]P.Wo Oster,D.Boswell,P.Stak em和J.Cowan-Sharp,“Open Source Software for。

[32]J.RufiNo、J.Craveiro和P.。Verissimo,“建立一个时间和空间分割的。

..。最近空间系统的商品化正在推动开源和商业现成(COTS)技术的更广泛采用;正是由于这个原因,对手通常会为这些技术制造漏洞-大量采用。Linux目前被用来控制运载火箭、卫星,未来可能还会控制载人飞船。[18]机载计算机使用与其他系统通信的特定于任务的软件控制航天器平台和有效载荷。..。

一段时间以来,“我们应该做些什么来保护我们的太空资产?”已经被提出并讨论过了。虽然还没有一个被广泛接受的答案,但一些部分的答案是已知的,例如对关键系统使用多因素身份验证,使用适当密钥管理的加密通信链路,以及在执行在轨软件升级之前向您的左肩撒盐。其他方法(如使用量子通信和核心系统的正式方法验证)在广泛采用之前需要进一步的研究和开发,此外,执行的适当程度往往不清楚。例如,“使用多因素认证”可以通过向手机发送文本消息或通过使用硬件令牌来同样满足,该硬件令牌通过生物特征识别解锁并保存在安全建筑的保险箱中。从技术上讲,这两种解决方案都是“使用多因素身份验证”,但显然是不同的。使用基于风险的方法来评估适当的程度,取决于对这些风险的适当共识和适当的对策。为了推动业界的对话,这个问题被重申为“我们应该做些什么来保护我们的太空资产?”并被摆到各种组织面前。这篇论文包含了这样的部分答案的集合。如前一篇论文“小卫星的大风险”[54]中所述,所提出的解决方案还可以作为服务实施,以便以低成本实现快速和广泛的行业采用。

..。源代码的可访问性和可移植性,多年的工业和科学研究,以及大量实现的算法和库,使Linux成为商业和专业方法的强大替代品,在嵌入式环境中也是如此(Henkel 2006)。此外,欧洲航天局(欧空局)和美国国家航空航天局(美国航天局)都考虑将实时Linux用于空间和地面应用,包括关键任务软件(STakem 2001;Braga等人)。2008年;Leppinen 2017)。..。

实时应用的功能性和非功能性需求的增加、混合临界计算的出现以及降低成本的必要性正导致人们对在实时域中使用COTS硬件的兴趣的增加。在这个场景中,由于对硬件设备和外围设备的丰富支持以及良好的编程环境,Linux内核正在成为软件方面的一个有价值的解决方案。然而,Linux已被开发为通用操作系统,随后出现了几种在内核中引入实际实时功能的方法。其中,由内核维护人员开发的preempt_rt补丁的目标是提高内核直接修改现有内核代码的可预测性并减少延迟。本文旨在提供关于构建基于Linux的实时系统的最先进方法的综述,重点介绍PROMPT_RT、其发展,以及为了使PROMPT_RT更上一层楼应该解决的挑战。最后,我们将介绍一些已经从引入此补丁中受益的应用程序和用例。

..。促进软件重用的一种方法是使用现有的现成软件模块来完成许多任务任务,同时只编写一小部分特定于任务的应用程序代码。实现这一点的一种方法是使用嵌入式Linux[1],这一点在大学和新领域的公司中尤为普遍。然而,这些项目中只有一些公布了他们是如何构建基于Linux的机载软件系统的。..。

航天器的机载计算机处理地面发送的遥控命令,向地面提供遥测,处理机载数据,并控制航天器平台和有效载荷。一艘航天器可能有一台或几台处理不同任务的机载计算机。机载软件通常使用专门的实时操作系统,并且通常根据每个任务的需要进行定制,从而导致软件项目跨越数年。此外,通常只有开发的一部分

经过十年的实验纳米卫星项目,在过去的几年里,在更复杂的科学和商业任务中利用纳米卫星的趋势越来越大。更复杂的纳米卫星任务通常涉及更长的目标寿命、复杂的仪器和复杂的地面操作。这些任务可以通过尽可能使用商用现成(COTS)部件来实现比传统卫星更低的成本,但COTS部件在太空中可能不会在较长时间内可靠运行,而且更雄心勃勃、寿命更长的任务需要比实验纳米卫星更高的可靠性。传统航天工业开发的组件以可靠和坚固而闻名,但与纳米卫星的要求相比,它们通常过于昂贵和笨重。使用为地面安全关键应用(如汽车使用)设计的组件,与航天级组件相比,可以在保持可靠性的同时节省成本。本文考虑将德州仪器公司的Hercules TMS570系列微控制器系列用于阿尔托大学正在开发的纳米卫星任务的星载数据处理(OBDH)系统。几个缔约方,包括。

..