Hacker News new | ask | show | jobs
by _whiteCaps_ 44 days 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.

5 comments

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.
Ah! I didn't know the term for it but I have often been stubborn in running a neglected platform as my dev environment for precisely this reason.

Sometimes it makes the system more complicated, but it definitely also reveals where the rough corners are.

I remember a secret storage server that used Shamir secret sharing to shard secrets across 5 different servers with 3 shards needed to read. But the real killer was that it ran on Windows Linux and a BSD and he even wrote it in different languages!. Just an amazing work of obsessive genius but I cannot remember the name or find it.
Yp, to make it even more robust, build for Windows too.
I'm not that much of a masochist :-P