Everyone who writes safety critical software should read this
Walter Bright
newshound2 at digitalmars.com
Thu Oct 31 16:11:59 PDT 2013
On 10/31/2013 2:24 PM, eles wrote:
> On Thursday, 31 October 2013 at 18:46:07 UTC, Walter Bright wrote:
>> On 10/31/2013 9:00 AM, eles wrote:
>> What if the hardware fails? Such as a bad memory bit that flips a bit in the
>> perfect software, and now it decides to launch nuclear missiles?
>
> If that happens, any software verification could become useless. On the latest
> project that I'm working on, we simply went with two identical (but not
> independently-developed, just identical) hardwares, embedded software on them.
>
> A comparator compares the two outputs. Any difference results in an emergency
> procedure (either a hardware reboot through a watchdog, either a controlled
> shutdown - to avoid infinite loop reboot).
What I posted on HN:
------------------
All I know in detail is the 757 system, which uses triply-redundant hydraulic
systems. Any computer control of the flight control systems (such as the
autopilot) can be quickly locked out by the pilot who then reverts to manual
control.
The computer control systems were dual, meaning two independent computer boards.
The boards were designed independently, had different CPU architectures on
board, were programmed in different languages, were developed by different
teams, the algorithms used were different, and a third group would check that
there was no inadvertent similarity.
An electronic comparator compared the results of the boards, and if they
differed, automatically locked out both and alerted the pilot. And oh yea, there
were dual comparators, and either one could lock them out.
This was pretty much standard practice at the time.
Note the complete lack of "we can write software that won't fail!" nonsense.
This attitude permeates everything in airframe design, which is why air travel
is so incredibly safe despite its inherent danger.
https://news.ycombinator.com/item?id=6639097
More information about the Digitalmars-d
mailing list