18
$\begingroup$

There are quite many industrial Linux adaptions around, like in your router's firmware or the Android OS. On long term, probably any spacecraft will need to run more or less standard profiles of software packages, like navigation, communication.. the more OSS (Open Source Software) the better I think. We all should know the value delivered by OSS community to Earth's industries. (assume also that there will be a rise of avionics open hardware, too).

So the question - is there any ongoing approach for a "Linux for Spacecraft" distro?

$\endgroup$
  • $\begingroup$ What I usually see is a commonly developed middleware that can run on multiple platforms, but I have upvoted your question because I am curious if anyone has gone through the effort of making some kind of common distro. $\endgroup$ – called2voyage Jun 7 '17 at 20:25
21
$\begingroup$

Updates: Added Astro Digital and Planet Labs at bottom.

There isn't a specific Linux distribution for spacecraft. At least not yet. I have heard of groups that basically took Buildroot to build only as much Linux system as they needed for a satellite. Beyond that, they needed to provided the customized middleware or applications.

It is tempting to put Linux on a low-cost small satellites (i.e., CubeSats), one needs to remember that these satellites have extremely tight power budgets, dictated by how much power they can muster from photovoltaic panels. That is, this is an environment in which code efficiency and low power consumption far outweigh programmer productivity.

As for groups working on Linux in spacecraft, here are a couple that can be publicly discussed -- Tyvak (actively) and Boeing (because NASA and AF require it). (And now I've added Astro Digital below.)

Tyvak Nano-Satellite Systems maintains its own Linux distribution for flight software. See: Tyvak capabilities

They have built radiation-tolerant boards for CubeSat avionics. In fact, they use to have a specific ARM-based space avionics board on their website, running Linux. But I don't see it by name anymore. (I recall the name "Intrepid"; someone might find this in some published research papers.)

Boeing recently got the contract to develop a High Performance Spaceflight Computing (HPSC) Processor Chiplet for NASA and the Air Force. The chiplet is to be a quad-core ARM Cortex-A53 using rad-hard by design (RHBD) standard cell libraries. The software requirement for the chip is to run a combination of Linux and real-time OS. The Air Force wants this for their advanced satellite designs. NASA knows it needs advanced processors with greater autonomy capability in deep space robotic as well as human spaceflight missions. See: Boeing to develop next-generation radiation-hardened space processor based on the ARM architecture

There are a couple of other commercial CubeSat companies that I believe use Linux in their satellites, but I can't readily find this on their web pages. For what its worth, the two I'm thinking of both do Earth observation, and have large server farms on the ground.

Update: one of the other companies I had in mind is Astro Digital; their former name is Aquila Space. Their Corvus-BC has (or did have) Linux running on ARM Cortex-A8. Aquila Space slides from 2015 About a year ago, I attended a talk by Astro Digital, where one of them said even the aerospace engineers (non-computer scientists) could program the spacecraft because they were using Python. I raised my hand to check. "Wait. Python on the spacecraft?" Yes. I grinned as any serious Pythonista should at this point. :-) Note that as CubeSats go, the Astro Digital spacecraft are pretty large. They have 6U and 16U designs, with solar panel arrays geared to feed them.

Update: I also had in mind Planet Labs, now simply known as "Planet". Turns out there is a Space Stack Exchange question that addresses this. They have their own internal distro that they tweak for their fleet of satellites.

$\endgroup$
  • $\begingroup$ @uhoh 'Power required to perform the functions necessary', more likely. Memory allocation, for example, would naturally require more memory onboard - and it takes power to run memory. For a stick of DDR3, I'm coming up with numbers in the 5W range - quite a bit if you're on a tight power budget. Of course, satellites probably aren't using DDR3, but the point stands - the lighter your software, the lighter your hardware needs to be, which translates to less power required. $\endgroup$ – Undo Jun 8 '17 at 3:57
  • $\begingroup$ @Rick0xfff "...this is an environment in which code efficiency and low power consumption far outweigh programmer productivity." What is 'code efficiency' exactly? Number of lines of source? milliJoules per iteration? Memory allocation? $\endgroup$ – uhoh Jun 8 '17 at 4:00
  • 1
    $\begingroup$ @uhoh: The last two plus number of tasks you can run per given time (it is related but not necessarily proportional). The problem is that industrial electronics will fry in space so you end up needing to program for a 100MHz CPU with 4MB of RAM or something. At which point all the things we take for granted as programmers become critically scarce. $\endgroup$ – slebetman Jun 8 '17 at 5:02
  • 1
    $\begingroup$ SpaceX uses Linux on all their flight hardware (not sure if in the spirit of the question, but anyhow) space.stackexchange.com/questions/9243/… $\endgroup$ – 0xDBFB7 Jun 8 '17 at 12:58
  • 1
    $\begingroup$ @uhoh: I used "code efficiency" loosely, but millijoules to accomplish a task, e.g., execute a function, is roughly correct rather than source code lines. For tight dedicated real-time tasks where no paging has to happen, it makes sense to get rid of MMUs. But if you have a diverse workload changing with time and mission phase, then the flexibility of an MMU is very useful, which is why NASA postulates Linux in a deep space mission with a high degree of autonomy. $\endgroup$ – Rick 0xfff Jun 9 '17 at 4:52
11
$\begingroup$

Kubos corporation (disclosure: I work at Kubos) have a cubesat-specific Linux distro and a real-time operating system (RTOS), for cubesats with tighter power and processing budgets, since, as noted by Rick 0xfff, above, smaller cubesats don't get much of a power budget.

Kubos have, as suggested in his answer, taken Buildroot and created a lightweight Linux for the Innovative Solutions in Space OBC and the Pumpkin (BeagleBone Black-based) OBC.

The RTOS runs on several inexpensive dev boards (MSP430F5529, STM32F407 Discovery, MicroPython), and the ClydeSpace and NanoAvionics OBCs.

EDIT: our github repository for the software contains our open source code for the operating systems.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.