Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Absolutely. When you have a system that absolutely must not fail ever, you want it to be set up so that all the code involved--not just the application but the system it runs on--can be manually reviewed in a practical timeframe. If you're running on any modern OS, even a really good, stable one, that's millions of lines of code that you're just hoping don't have any weird, undiscovered edge case interactions with your program.

On the other hand. Based on the article, it sounds like maintaining the nuclear launch system frequently involves working with soldering irons and microscopes, manually replacing individual wires, and it takes years of training to reach an acceptable skill level. That has the potential to be nearly as dangerous as unreliable code.



> If you're running on any modern OS, even a really good, stable one

I suspect here you're thinking about mainstream OSes, like Linux, one of the BSDs, etc.

But there are quite a few very small, well-tested (RT)OSes that are actively maintained and suitable for the "absolutely must not fail ever"[0] use case.

[0] Which is, of course, impossible, but you'll get a lot closer with a modern realtime OS written to purpose vs. a Linux-type deal.


absolutely must not fail ever

I know I'm being pedantic, but no such system exists. The best you can do is reduce the probability of failure to an acceptable limit.

Especially since this was a military system, some team, somewhere, estimated the Mean Time To Failure for this system and was satisfied with the answer.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: