史上とは?/ プロミス
[ 329] 「史上最悪のソフトウェアバグ」ワースト10を紹介(上) | WIRED VISION
[引用サイト] http://wiredvision.jp/archives/200511/2005111501.html
トヨタ自動車は先月、何もしないのに警告灯が点灯し、ガソリンエンジンが突然停止するとの報告を受け、ハイブリッド車『プリウス』約16万台を無償修理すると発表した。しかし、今回のプリウスの問題は、これまでの大規模な自動車のリコールと違い、ハードウェアが原因ではなかった――ハイテクを駆使したこのスマートカーに組み込まれたプログラムのバグが原因だった。 今回の問題により、プリウスはバグを抱えるコンピューターの仲間入りをした。史上初のコンピューター・バグは1945年、『ハーバード・マーク2』のFパネルの70番リレーに虫が挟まった時にまでさかのぼる。乗算器と加算器のテスト中、異常に気づいた技術者が、この部分に蛾が挟まっているのを見つけたのだ。原因となった蛾は、「バグ(虫)が実際に見つかった最初のケース」との説明文とともに、業務日誌にテープで貼り付けられた。 それから60年が経ったが、コンピューター・バグはいまだに存在しつづけ、絶滅する気配はない。ソフトウェアとハードウェアの境界があいまいになる中、プログラムのミスが日常生活に影響を与えることもますます増えている。もはやバグの生息地は、オペレーティング・システム(OS)やアプリケーションの中にとどまらない――今では携帯電話やペースメーカー、発電所や医療機器にもバグは潜んでいる。そして今回は車にも発見されたわけだ。 大混乱を引き起こしたバグをリストアップするのは簡単だ。だが、その重大性に順位を付けるとなると難しい。たとえば、ワームに悪用され、インターネットを数日間にわたってマヒ状態に追い込んだセキュリティーの脆弱性と、国中の電話システムが丸一日機能不能になるきっかけを作ったタイプミスと、どちらがより深刻だろうか? その答えは、あなたが電話をしたいのか電子メールをチェックしたいのかで変わってくる。 多くの人は、人命にかかわる事態を起こすバグが最悪のものだと考えている。もちろんその数は少ないが、1980年代後半、放射線治療装置『セラック25』がプログラムミスによる誤動作を起こし、放射線障害で死者が出たケースなどは、安全が非常に重視される用途にやみくもにソフトウェア的手段を用いることへの警告として知られている。 ただし、このようなシステムを研究する専門家は、あるソフトウェアによりごく少数の死者が出るとしても、こうした危険性にばかり焦点を当てていては、処理能力の向上が切に望まれている分野への新技術の導入が進まなくなる恐れがあると警告する。結局は、ソフトウェアが導入されなかったために命を落とす人のほうが、バグによる事故での死者よりも多くなりかねないというのだ。 ともかく、バグが尽きないことだけは確かなようだ。以下に、ワイアード・ニュースが選ぶバグの歴代ワースト10を年代順に挙げていく……あくまで現時点までのことだが。 1962年7月22日――火星探査機『マリナー1号』:マリナー1号は打ち上げ時に予定のコースを外れたが、これは飛行ソフトウェアのバグが原因だった。地上の管制センターは大西洋上でロケットを破壊した。事後調査により、鉛筆で紙に書かれた数式をコンピューターのコードに置き換えるときにミスが起き、これが原因でコンピューターが飛行コースの計算を誤ったことが判明した。 しかし、技術者たちも知らなかった事実があった――セラック20およびセラック25に使われたOSは、正式な訓練も受けていないプログラマーが1人で作成したもので、バグが非常にわかりにくい構成になっていたのだ。「競合状態」と呼ばれる判明しにくいバグが原因で、操作コマンドを素早く打ち込んだ場合、セラック25ではX線用の金属製ターゲットをきちんと配置しないまま高エネルギーの放射線を照射する設定が可能になっていた。これにより少なくとも5人が死亡し、他にも重傷者が出た。 |
プロミスのサイトです。