The Current Challenges With Using Linux On Airplanes

solidsnail@programming.dev to Linux@lemmy.ml – 20 points –
The Current Challenges With Using Linux On Airplanes
phoronix.com

cross-posted from: https://programming.dev/post/368257

Thoughts?

24

Well, NASA trusts Linux enough to send it to Mars. They build rockets, so it should be good enough for flying busses. Unless you don't trust your software engineers, but then having them build a custom microkernel OS instead sounds not much better.

Every NASA crewed launch to ISS from US soil is on a stack that uses Linux for avionics: Falcon 9 and Dragon 2. The Starlink constellation is also a massive deployment of Linux nodes in space.

The backup NASA commercial crew system from the 737 Max people hasn't flown people yet and probably won't this year, perhaps never. They somehow managed to have two critical software failures on their first orbital flight test, either of which would have caused loss of vehicle without intervention. Both should have been caught with comprehensive testing.

That is rich coming from the people that programmed the Boeing 737 MAX...

Yeah, if the first argument is "Linux does not have the safety culture", the first thing should be for the question of "do the current offerings have it" to show up.

What ?

I work in ATC (air traffic control) and everything runs on Linux, from radars correlation to flight data processing.

And it’s not just us, most Air navigation service provider in the world works the same way.

Honestly just anti-foss rambling. Nothing is stopping them to make a custom hardened kernel with what they need. What they want is someone else to cater for them.

are there any points in their slide deck which you can really say are inaccurate? as a long-time Linux proponent myself, I actually can't.

https://www.linux.com/news/boeing-joins-the-elisa-project-as-a-premier-member-to-strengthen-its-commitment-to-safety-critical-applications/

ELISA (Enabling Linux in Safety Applications) Project announced that Boeing has joined as a Premier member, marking its commitment to Linux and its effective use in safety critical applications. Hosted by the Linux Foundation, ELISA is an open source initiative that aims to create a shared set of tools and processes to help companies build and certify Linux-based safety-critical applications and systems

I imagine this means they're contributing both actively and financially to Linux.

I agree that a small, special purpose OS would probably be more suitable for safety-critical systems. On the other hand I highly doubt that the safety-culture is better at Boeing than in the Linux ecosystem.

I'd expect it to be about the same, with 737 MAX, yes, on one side and too many examples on the other.

You forget to take into account that every Boeing employee knows they are building systems that can kill people if things go wrong. Meanwhile on Linux a lot of bugs really don't matter that much, especially in -rc and otherwise non LTS versions.

Taking that into account their safety culture is much worse.

For a company building bloody airplanes - yes, I totally agree.

The only real "problem" would be the lack of certifications, which are quite hard to get.

Real Time Operating Systems (RTOS) are normally used for these tasks, but, AFAIK there are already projects using linux with patches to make it run a RTOS kernel.

In my opinion, I think it all depends on what part of the plane it is running. If it is a core sensor, providing real time data, it makes a lot of sense to use a RTOS. It needs to prove it can run its tasks on time, and the scheduler needs to be understandable. There's also a lot of overhead with running a full OS with processes, which don't make sense for a sensor which only function is to provide data over a CAN/LIN bus.

But, for other things, like dashboard visualizations, music for the aircraft, entertainment, and those non-critical-realtime needs, then it makes a lot of sense to run linux. After all, you'd get access to a lot of already built software and a working dev environment.

And don't get me wrong, this is clearly BS from boeing to keep selling their closed source software. There are already open source RTOS systems, like FreeRTOS. I do not mean to keep those real time systems closed, but to use a full OS where it makes sense and a RTOS where that makes more sense. Both open source!

Isn't hard real time in the kernel now?

I remember there were talks about merging the patches and making it an option when building. I don't know the current status of that.

On real time operating systems, like freertos, not only the kernel is real time but everything else is too. Like: you can guarantee your call on the I2C and SPI won't take more than 5ms, for example, even with hardware issues. The whole environment is built around the hardware realtime concept.

LinuS does not have a software engineering culture

What?

Something something personal attack on Linus, whom still manages to this day every merge in master.

You know, he has no software engineering culture developing his software engineering masterpiece over 20 years, as opposed to the impeccable software engineering culture at Boeing.

Absolute clowns.

A bunch of bullshit so that Boeing can sell the shit they want to sell.

I'd be interested in hearing what they are using for safety-critical OS. Notice they said "software engineering" and not "OS", which makes me think they're running on Windows.

Most Windows drivers also run in kernel mode.^[https://learn.microsoft.com/en-us/windows-hardware/drivers/gettingstarted/user-mode-and-kernel-mode]

For avionics, I doubt that they would use a traditional os. As far as I'm aware, Microsoft doesn't have safety-certified builds of Windows with a real time kernel. Certifying a Linux build would also be a huge and costly endeavor. What they are likely using is a certified RTOS, like Vxworks, RTEMS, ThreadX, SafeRTOS, etc., or even Ada with the Ravenscar profile. You don't really "develop" applications for these, you instead incorporate them as libraries inside your application and compile the RTOS into your application, and then run it on bare metal. Infotainment systems on the other hand will use more traditional OSes.

A lot of the presentation seems to be rather typical of the aerospace industry, which is all about safety. Im not too convinced that this is due to Boeing being Boeing, but rather that DO-178 compliance is a bitch, ITAR can be another bitch, and certifying not only a single build of the Linux kernel but also an entire distro build will be a superhuman effort. At best it'll take a long time with a sizeable team. Not sure that would Boeing be filling to fund that.

Yeah, coming from nuclear, all of the buzzwords make sense. Ofc, nuclear has decided blindly trusting windows for everything is cyber security so... πŸ˜‚πŸ˜­

I doubt they run on windows tbh. If they take issue with with monolithic design of Linux, then windows would be an even bigger problem.

Also, most of the devices in question are probably small controllers, incapable of running windows. (Microsoft are struggling to run it on arm so...)