From Earth to Space with Linux and SpaceX

From Earth to Space with Linux and SpaceX Cybersecurity

On May 30, the SpaceX Crew Dragon, the first private spacecraft and the first manned spaceflight in the United States in nine years, successfully launched NASA astronauts Bob Behnken and Doug Hurley. They were taken by SpaceX’s reusable Falcon 9, powered by rocket fuel and Linux.

Like supercomputers, Internet of Things (IoT) devices, and many critical devices, the Falcon 9 flies with Linux. SpaceX software engineers explained several years ago how the programming of Falcon 9 works.

The developers said at the time: “The Flight Software team is made up of approximately 35 people. We write all the code for Falcon 9, Grasshopper applications [la fusée d’essai du Falcon 9] and Dragon; and we do the basic work of the platform, also on these vehicles; we also write simulation software; we test the flight code; we write communication and analysis software, deployed in our ground stations. We are also working on mission control to support active missions. ”

Ordinary dual-core x86 processors

The on-board operating system of the Falcon 9 is a stripped-down Linux running on three ordinary dual-core x86 processors. The flight software itself works separately on each processor and is written in C / C ++.

Ordinary? Yes, ordinary. You see, the spacecraft processors are far from the latest and most efficient. They are developed for spacecraft, which takes years – if not decades – to go from the drawing board to launch. For example, the International Space Station (ISS) operates with Intel 80386SX 20 MHz processors from 1988. We do not know, however, which chips are used by the Falcon 9. There is a good chance that their design will be at least ten years older than what you would buy in store now.

Of course, if these old chips work for the station command and control demultiplexer (C & C MDM), they are not very useful for anything else. For their daily work, astronauts use HP ZBook 15s on Debian Linux, Scientific Linux and Windows 10. Linux systems act as remote terminals for C & C MDM, while Windows systems are used for email, the Web and hobbies.

Triple redundancy

In general, the chips that go into space are not ordinary chips. Processors that remain in space must be radiation-hardened. Otherwise, they tend to break down due to the effects of ionizing radiation and cosmic rays. These custom processors go through years of design work and then other years of testing before being certified for spaceflight. For example, NASA predicts that its next-generation versatile processor, an ARM A53, a variant you may know of the Raspberry Pi 3, will be ready to operate in 2021. As the first stage of the Falcon 9 arises on its own, its chips don’t need to be cured by radiation.

Why three processors? This is because, as explained on StackExchange Space Exploration, SpaceX uses an “Actor-Judge” system to provide security through redundancy. In this system, each time a decision is made, it is compared to the results of the other kernels. In case of disagreement, the decision is rejected and the process is restarted. It is only when all the processors give the same response that a command is sent to the PowerPC microcontrollers.

These controllers, which drive the rocket motors and the aileron fins, receive three commands from each of the x86 processors. If the three command strings are identical, the microcontroller executes the command, but if one of the three is bad, the controller follows the last correct instruction. If things go completely wrong, the Falcon 9 ignores commands from the malfunctioning chip.

The purpose of this triple redundancy is to give it the fault tolerance it needs without having to pay for expensive space-specific chips. Modern aircraft, like the new Airbuses, use a similar approach in their electric flight systems.

Flight software written in C ++

Before even seeing a flight, SpaceX tests its software and flight hardware on a table. There, they can perform flight simulations, with catastrophic failures, without losing a rocket.

The Dragon spacecraft also runs on Linux with flight software written in C ++. The ship’s touch screen interface is rendered using Chromium and JavaScript. Astronauts have physical buttons to control the spacecraft if there is a problem with the interface.



Rate article
Add comment