上天了,Docker容器已经上天了

Docker:老子就是牛

网友:[汗]

Docker: 老子第一

网友:@#%^

Docker: 又不服的么?不服的请不要说话

网友:你咋不上天呢?

于是,今年6月13日,一枚火箭从瑞典基律纳发射升空,附带运载280公斤的科学实验器具;其中有一台树莓派Zero主机上跑的balenaOS跑了Docker容器。Docker容器终于上天了。

来自德国航空航天中心(Deutsches ZentrumfürLuft und Raumfahrt)的IT工程师兼地面控制器Nico Maas一直在研究开发用于探测火箭的替代机载计算机(OBC)的项目。这些火箭也被称为研究火箭,主要设计用来做科学研究,会携带科学仪器和其他有效载荷,运行于短的亚轨道飞行,并进行实验和测量。为了在收集数据时候不收地球大气的影响,卫星的飞行高度通常要大于100公里的卡尔曼线。

这类卫星通常附带的主机(OBC)为Microchip ATmega328(与某些Arduino平台板上的芯片相同),尽管对简单应用很有用,但涉及高吞吐量数据采样和加密的更复杂项目的项目时候就有点力不从心了,需要更大计算能力的主机。

Apex项目

为了取代陈旧的Microchip ATMEGA328P作为商用卫星COTS附带的主机(OBC),并为各种高速传感器和图像采集应用提供了功能更强大的系统,Nico团队开发了高级处理器,加密和安全性实验的apex。Apex系统的如下图:

Apex项目包括一个带有高清摄像头的Raspberry Pi Zero,两个ESP32-PICO-D4微控制器以及一个通过i2c总线连接的传感器阵列。该系统还具有与卫星服务模块的连接,以便接收LO(提起),SoE(实验开始)和SoDS(数据存储开始)信号,并根据需要对其进行操作。

在此应用程序中,诸如树莓派这样的基于Linux的单片机遇到的最大问题是需要依赖高质量电源供电,而这样的电源在卫星上没法保证。在对板载SD卡进行写周期期间突然断电或电源不足,很有可能会损坏文件系统,从而导致设备无法启动和运行。当然,在此类应用主要存在于数据捕获的应用程序中,写周期几乎是连续的,所以导致文件系统损坏的风险更大。

为了减轻这类风险,Apex上的Raspberry Pi上使用了balenaOS操作系统,该系统设计用于可靠,高容错能力,恶劣网络条件下和意外的关机保护,非常适合卫星恶劣的环境。设备上科学实验应用通过balenaEngine在容器中运行,balenaEngine是为嵌入式设备量身定制的Moby/Docker容器引擎的实现。该操作系统包括一个管理器,支持启用多个容器应用程序。系统还提供了API,可以用来做重新启动,关闭等操作,确保容器在每次引导后都能正确启动和运行,并且能够避免某些损坏情况。

Nico的论文《apex: A new commercial off-the-shelf on-board computer platform for sounding rockets》,详细描述了该系统的架构、实现和其他一些细节,有兴趣的同学可以下载了解。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20191017A08AZO00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注腾讯云开发者

领取腾讯云代金券