Comment by _whiteCaps_

8 hours ago

I'm a big fan of Dissimilar Redundancies (but didn't know that was the term until today) for building system software.

Build for various Linux distros, and some of the BSDs. You'll encounter weird compile errors or edge cases that will pop up. Often times I've found that these will expose undefined behaviour or incorrect assumptions that you wouldn't notice if you were building for a single platform.

The engineering behind Artemis and SLS is a masterclass in safety-critical design. The quad redundant Primary runs on on a quadruple config PPC-750 CPU with the Green Hills Integrity OS and ARINC653 framework While the Back up is on a LEON 3 (SPARKV8) CPU using the VxWorks and NASA's CFS framework. (https://github.com/nasa/cFS)

NASA actually makes all this publicly available information available on their NTRS server.

Primary and BFS Info: https://ntrs.nasa.gov/api/citations/20190000011/downloads/20... Orion BFS: https://ntrs.nasa.gov/api/citations/20230002185/downloads/FS...

I recall OpenBSD operated in a similar way, building the system on various architectures, big and little endian, VAX, SPARC, Luna88K, etc. Quickly highlights any hardware assumptions and helped make base more robust.