Windows Updateでしばしば不具合がでるわけ(メカAG)

写真拡大

今回はメカAGさんのブログからご寄稿いただきました。
■Windows Updateでしばしば不具合がでるわけ(メカAG)
このところWindows Updateを行うとパソコンが起動しなくなる等の重大な不具合が少なくない。ちまたではMicrosoftはアップデートをリリースする前にチェックしないのか?と。

まあユーザーにしてみればある日突然パソコンが起動しなくなるというのはたまったもんじゃないわけで、気持ちはわかるし怒りは正当なのだが、ちょっとプログラムを作る側からの話(別に俺はMicrosoft関係者じゃないけど)。

   *   *   *

推測だけどこれらの不具合というのは、基本的にはMicrosoft側のプログラムのミスじゃないと思うんだよね。では何が問題か?すでにインストールされているMicrosoft製以外のアプリやドライバ。

ユーザーが自分でインストールしたものもあれば、メーカー製のパソコンなら買った時からインストールされているものもあるだろう。ノートPCなどではその製品に固有のデバイスをサポートするためにメーカー製のドライバなどが最初から組み込まれていることも多い。

   *   *   *

こうしたプログラムの中には、潜在的にバグがあるものも少なくない。間違った処理をしているのだけど、たまたまそれが顕在化してないので発見されず使われている。

んでMicrosoftがWindowsのプログラムを修正してしまうと、それまでたまたま運良く動いていたプログラムが動かなくなってしまう。これは珍しいことでは全然なくて、そのためにMicrosoftは主だったアプリやドライバで動作チェックし、必要なら対策をとるようにしている。

ときどき「これをインストールするとWindowsの互換性が向上します」というパッチは、この処理をしている。Windowsの新しいバージョンがリリースされるとき、相当念入りにチェックはするものの、世の中に無数にあるアプリやドライバをすべてはしきれない。リリース後もそういう問題が見つかれば対処しているわけだ。

   *   *   *

だったら最初から問題なさそうな方法で修正すればいいじゃないかと思うかもしれないが、これは難しい。というかほとんど不可能。あちら立てればこちら立たず。

じゃあどうやってMicrosoftは問題に対処してるかといえば、個々の問題のあるアプリやドライバのリストを持っていて、個々のソフトウェアごとに例外的な処理をする。

簡単にいえば、もともとのWindowsにバグがあって、アプリはそのバグを前提にしたプログラム担っている場合、なまじWindows側のバグを修正してしまうと、アプリが正しく動かなくなってしまう。なのでそのアプリが動いている時だけ、Windowsは「わざと」バグがあった時と同じ動きをする。

   *   *   *

すでにあるプログラムは、もともとWindowsにバグを作ってしまったMicrosoftの責任だから、Windows側で面倒をみましょう。でもこれから新たに作るプログラムは、バグのないWindowsを前提にしてくださいね、と。

これはWindows3.0(1990年発売)の頃からある仕組み。プログラムのバグ取りは、正しく直せばいいというだけでなく、いろいろ難しいというお話(笑)。

執筆: この記事はメカAGさんのブログからご寄稿いただきました。

寄稿いただいた記事は2014年10月28日時点のものです。