One great thing about the blogowebs is that you never know what sorts of posts you might run across, and this post about self-modifying code and the Space Shuttle OS is a prime example of that:
And it reminded me of my days during the early 1990s working as a software engineer on the Space Shuttle operating system (FCOS). Many people don’t know that the Space Shuttle OS implements self-modifying code for the purpose of “fault-tolerance”. The Shuttle computer systems consist of four primary computers running the same software, and a fifth backup computer running different software that is equal in functionality. The goal is to be Fail Operational if one or more computers fail, and Fail Safe if all primary computers fail; this is called a Fail Operational/Fail Safe system.
An interesting read, especially if you’re a software developer who doesn’t work in embedded systems but likes to read about them.
One Response
Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.
Speaking of embedded operating systems…one day a long time ago (couple of years?), I decided I’d try to compile the Linux kernel from scratch. I was VERY impressed. Every step of the way, when you need to make choices as to what features to bake in, the installer tells you exactly how much space the feature will take, and how much total space you’ve taken up so far. So if you are targeting a 10 MB memory footprint, you can easily pare your your kernel to a small enough size to allow room for your other software. Also, there’s an amazing variety of hardware drivers and software you can load into the Kernel.