Windowsはどこがダメなのか。


Windowsは本質的に不安定となる要因を抱えていることは既に多くの人からの指摘がされているところである。
まぁ、XPもだいぶ出回ってやっぱりだめなのがわかったところで記念してまとめてみようと思う。

システムディレクトリをアプリケーションが書き換えてしまう。

アプリケーションをインストールした人なら誰でも気がつく事だが、WindowsのSYSTEMフォルダにプログラムをコピーしているものが非常に多い。
これは非常に驚くべきことである。
SYSTEMフォルダはWindowsの中核というかそのものであり、それを一般のアプリケーションが平気で書き換えているという現実がある。
どうやら最近のWindowsではユーザーがフォルダをあけて操作する事を禁止しているようである。
そのくせにアプリケーションはまだまだ書き換え放題である。

説明するまでもないことなのだが、改めて書いておこう。
例えばAアプリケーションはインストール時にSYSTEMフォルダにいれたA00.DLLにはいっているプログラムの一部ABを使って動作しており、
Bアプリケーションは同じくインストール時にSYSTEMフォルダに入れたB00.DLLを当てにして動作するとしよう。
このようにA00とB00というように異なった名前であればなんら問題はないのであるが、偶然の一致で同じ名前であったらどうであろうか。
AアプリのあとにBアプリがインストールされたら、AアプリはA00だと思ってB00を使う事になる。つまり動作の保証もあったものではないのだ。結果としてユーザーは全くわけのわからない動作に悩まされる事になる。
これはありえないことではない。しかし偶然の一致ということはそうそう起きることではない。
実際には以下のようなことがおきる。
AアプリはA00.DLLを利用して動作している。BアプリもA00.DLLを利用して動作している。
あなたもアンインストール時に「xxx.dllは他のプログラムで使われている可能性があります。削除しますか?」という質問をされたことがあるだろう。複数のプログラムがOS標準でないDLLを共用していることなどはちょっと色々アプリケーションを入れてしまえば日常茶飯事のことなのだ。
さて、ここでこの両者が全く同一であればなんら問題はない。
もしくは異なっていることを本来であればAアプリもBアプリも認識できれば問題はない。
バージョンの違うことが同じ名前のDLLがあることを示唆して異常動作の可能性を示唆できるからだ。
ところがこのことはある程度共通化されているDLL、あろうことかOSベンダーかそれに近いところが配布しているものにおいていくつかのバージョンが存在しそのバージョンの違いが認識できないということがあったそうだ。あろうことか日付まで同じなのにもかかわらず、ファイルサイズが異なり、実際にそのプログラムを利用してみると帰ってくる値や動作など仕様が微妙に異なるということが実際にあったそうだ。
これは氷山の一角であっておそらくこんなことはしょっちゅうおきていることなのだろう。

このようなことはOS自体に関しても生じている。
実際にあったことなのだが、あるアプリケーション、というかVisualBASICで書かれたものなのだが、Office987を導入したマシンでは正常に動くのだがそうでないものではどうも動作がおかしい、という事象が起きていた。作者はOffice98が導入されていたマシンで開発をしていたため問題ないと思っていたのだが頒布しはじめたら動かないマシンが多発して(もちろん動くものもあったが)調べていったらそのことが判明した。
COMポートをファイルとして開いて扱うものだったためそのあたりは厳密な仕様としては存在していない。おそらくバグか仕様変更かがあったのだとおもわれる。
同じようにExcelのマクロで外部コマンドを起動するようなものでも生じたことがあった。
ちなみにWindowsNT4ではOffice98が入っていても動かなかった。

OSにバグがあったりするのは致し方ない。

そのためにパッチをあてたり俗にいうサービスパックを導入する。それはかまわない。
サービスパックのバージョンを最新にそろえる、ということを行えばいいのだから。

しかし現実にはある不具合を解消するためにOfficeを導入するだとかあるアプリを使うためにあるアプリが存在しているのが前提とか(その機能の一部を流用するのなら話がわかるがどう考えてもあまり関係ない)わけのわからない状態が生じてしまう。
これは不具合対策をおこなう一般原則である、条件を揃える、ということが現実として不可能にしてしまっている。

だからいつまでたっても不安定さは本質的に取り除けない。

このようなあたりまえの一般原則さえもできないというのがWindowsが起こしてしまっている本質的問題ではなかろうか。

解決策はあるのか。

SYSTEMフォルダにコピーする、という作法は切れない。これはWindows3.1のころからずっと行ってきたため非常に汚れた作法であってもいまさら切れるものでもない。
となればMicrosoft自身がSYSTEMフォルダにはOSの基本システムはおかないようにしてしまう。
基本システムは仮に名前をつければKERNELフォルダとして絶対にそこは書き換えさせないこと。
そしてOSレベルでロックしてしまうこと。サービスパックなどOSを書き換えるパッチの類は仕方がない。
そのとき初めて開いて作業をさせる。

そしてSYSTEMフォルダは好き勝手にさせる。
最悪はKERNELフォルダ以外を一掃してしまえばとりあえずOS自体は動作するので不安定要因は消え去るはずだ。
これでとりあえずOS自体の問題はなんとかなるであろう。
不安定さはどうしても残るが解決はなんとかできる。

とはいうもののこれらはMicrosoftは自身で決してやらないだろう。なぜかといえばこの混乱で別の問題を隠しているからだ。そのことは今回の話題から外れていくからまた別の機会に。

勝手に暗黙に走るプログラムの問題

基本的にアプリケーションプログラムはスタートアップフォルダにショートカットなりをいれて動作させることになっていたはずだ。
古い作法ではSYSTEM.INIとかっていうのもあるが、まぁ、それはもうそろそろ禁止とすべきだろう。

しかしそれが全くを持って徹底されていない。

どうやらレジストリに登録すれば起動時導入ができるということらしい。全くふざけたことだ。

まぁ、これは「窓の手」などのソフトで見られるからまだいい。

さらに酷いのはInternetExplorerもそうだが勝手にOSの一部であるかのように暗黙のうちで起動してしまうものがある。
勝手にドライバを組み込んで(驚く事にそれをユーザーは管理できない)アプリケーションの一部が常駐してしまう。ウィルスチェッカーなどもそうである。
まぁ、ウィルスチェッカーはまだアンインストールできるからいいが、InternetExplorerはアンインストールがまっとうな方法ではできない。

これらが不安定要因を取り除けない大きな要因だ。

なぜこれが問題化といえば、問題があったりドライバなどのファイルが壊れたりしてもユーザーは手出しのしようがない。入れ替えもできない。再導入(修正導入)も不完全で直らない。削除さえもできない。
これはもうウィルスなみにたちが悪いと言わざるを得ない。

いくつかの事例を実際にあげてみよう。

なにやらエラーメッセージはだすがそれが一体どのアプリがおこしたのか表示しないというものがある。
起動時に「エラーが起きました」とOKボタンが表示されるだけである。
まったく人を馬鹿にしているとしか思えない。
ただ、エラーがおきたよ、といわれてもまったくをもって困ってしまう。
とりあえずOKを押しておいて問題はないようだ、となるといちいち起動時にOKを押すことに何の意味があるのかまったく理解できなくなってきてしまう。
なんらかの問題を内在していると意識させてもらっても解決の手がかりさえもないのでは単にうるさいだけである。

「このような場合はレジストリの不整合がおきたからです」、と解説されることがある。
不整合がおきたのならばその部分を削除してきれいにしてもらってもかまわないのだがいったいどこがおかしいのさえ手がかりも無いのだからどうしようもない。
起動時にDOS画面で文字化けしたエラーメッセージのようなものがでてキーを押さないと先に進まないということもあった。エラーメッセージを多分日本語で表示しようとしているのだろうが英語でもだしてくれなければいったいどうすれば直るのか全く皆目見当もつかない。
かくしてこのようなおかしなことは次々とおきればシステムが正常に動作することを期待するほうがおかしい。

OSと切り離せないアプリケーションの存在

OSとアプリの癒着の問題がある。
その境目ははっきりしておかなければいつまでたっても不安定である。
当のMSがInternetExplorer、つまりWebブラウザを強くOSに絡めてしまっている。これは本質的に非常に危険性を持っている。
頻繁にあったWebをみているだけウィルス感染をするであるとかOSごと落とされてしまうとか、本質的にはおきるほうがおかしな問題が生じている。
いわゆるブラウザクラッシャーというのは避けられない部分は当然ある。しかしながらそれはブラウザを殺せればそれで終わり、OSは依然としてなんら問題はなく動作をつづける、が普通である。
これはOSとアプリの分離する事によるもっとも大きな効果であり、当然やるべきことである。
いや、くっつけてしまうということは危険であってやってはならない、というほうが本来の筋であるか。
IntenetExploreでファイル操作ができるというのも本質的に非常に危険である。外部からの操作で個人のPCのファイル操作ができてしまうことが本質的にやりやすいからである。
セキュリティホールとかいって問題をすりかえているようだが、まるで障子紙で壁を作っているようなもので、ちょっとつっつけばすぐ破ける。いくら破れたところを貼り直したっていつまでたっても問題の解決にはならない。破ろうと思えばいつだって穴はあけられてしまう。

Outlookにしても同じようなことでIEエンジンを使っているからそのまま危険性は直結する。
つまりはIE経由で個人PCのメールシステムまで簡単にのっとりやすくできているのだから一般的にウィルスを作ったりメールを応用したハッキングなど実にたやすいことだろう。

これはいわば設計・構造的欠陥ともいえることであり、直るものではない。統合化を進めたがっているようだが、統合化というのは独裁政治と同じように非常な危険性を併せ持っているということを忘れてはならない。
その行き着く先は破滅しかない。

王道は、分割して統治せよ、である。
論議さえももうする意味もない。


アプリケーションを呑み込み肥大化するOS

ところがXPになって、そして次のものもさらに統合化、肥大化が進んでいくようである。

それが不安定要因をどんどんと増やしていくことに直結している。

一番の危険はいうまでもないInternetExplorerとOSとの融合である。
Windows95の終盤期に起きた実に驚くべき事態であった。
背景にNetscape潰しがあったにしろ、OSの進化のさせ方としてタブーをおかしたともいえる。

これによってウィルス感染の手段として非常に多用されていたりシステムクラッシュなどの致命的でかつ理不尽なさまざまな不具合はいまさらあげつらうこともないだろう。

それを評価しづらいこととしても、これによってIEの分、OSの起動が遅くなった。
IEは起動が速いからいい、などと能天気なことをいう人がいるのだが(笑)、OS起動時にその分遅くなって常駐してないときより余計にメモリを占有し、OSのパフォーマンスも落としている、というのは実験済みで事実として既にデータがでている。
NetscapeだってStarupにいれて常に起動待機させておけば使いたい時にすぐに起動できる。その程度の話だ。
必要がない、いや、動かしたくないときにも勝手に動作してしまうのとユーザーがちゃんと制御できるのといったいどちらがいいかといえば論議するまでもない。

IEの統合化によってファイルを操作するExploreさえもその操作によるウィルス感染のトリガーという危険性を負うことになった。
例えばhtmlファイルを選択しただけで感染するというものである。
ここまでくるとあきれてものがいえない。

まっとうな方法では削除できない、と述べたがこれはつまりやりようによっては削除が可能である、ということである。
いくつかのWebサイトにその方法が提示されている。
つまりMicrosoftのIEはOSに密着していて不可分であるというのは全くの詭弁であることを示している。
まあ、IEに危険性がないのであれば笑って見逃してもかまわないのだがそうはいかないから看過できない。

マルチメディアという美名の下に複雑化=危険性が増していく

不要なものは排除する、これが安定させるための王道である。
複雑さはそのまま不安定さに直結する。
マルチタスクはたくさんのプログラムを並行させて動作させる技術であるがこれは必ずしも完璧なものではない。
完璧ではない、のはMicrosoftだからとかそういう問題ではない。
マルチタスクというのはそれが本質的に持つ危険性を孕みながらもその利便性ゆえに利用をしていく技術なのである。
例えていうならたくさんの自動車が複雑にうごめく場所ではどうやっても必ず自動車事故がおきるようなものである。
たくさん動けば動くほど危険性は増していく。
逆に減らせば減らすほど安全な方向に行く。
ごくあたりまえの単純なことであり、その観点からいっても全く問題だらけである。

切り離せない大量の不要なプログラムたち

Windows95のころはまだよかった。
現在では選択インストールを行っても不要で導入回避できないものがてんこもりである。

私の使っているWindows2000で具体的にあげよう。
コントロールパネルをひらいただけでなんとも不要なものがいくつもある。
「FAX」「スキャナとカメラ」は全く縁がない。必要になれば導入するがなんで標準で入っているのやら。

そして「サウンドとマルチメディア」(そもそもこの2つを統合した意味がわからないのだが)を調べてみると
Microsoft WaveTableSotwareMIDI音源というものが導入されている。
大きなお世話だ。ためしに聴いては見たがまぁ、一言でいってカスである。昔のOPM音源など用のMIDI音源模倣よりはましではあるが、業界標準のSC音源でもGM音源でもXG音源でもないのだから音の質以前に実用に供しない。

さてRolandのSoftwareMIDIを導入しようとしたら単純にはうまくいかなかった。
なにかSoftwareMIDI音源が既に導入されているので導入できないという文句がでたのである。
インストーラーがタコなのかなんなのかわからないが、一度出力デバイスから外してやったら導入ができるようになったのでとりあえずはよかった。それにしても余計なことをやってくれているものである。

もう絶対使いもしないMSのMIDI音源ドライバは削除したいのだが削除できない。
ドライバとして存在しているはずなのにマルチメディア設定でなぜか存在していない。同レベルのはずのRolandのMIDIドライバはちゃんと見えているのだから見えないほうがおかしい。探し回るとハードウェアウィザードで非表示デバイスの表示をやってようやく見える。で削除を選んで作業はできるのであるが実際には削除ができない。再起動をするとなぜか復活しているのである(笑)。なんともゾンビのようだと形容せざるを得ない。
なぜ消したいかといえばソフトウェアMIDIはその音色データで少なくとも数Mバイトのサイズがあるのを知っているからである。
メモリに常駐されていればノートPCの貴重なメモリを無駄に占有されていることになるし勿論不安定要因となるからである。

この実例はまだ笑ってすませられることだ。しかし同じようなことが他にたくさん起こっていることは想像に難くはない。

もっと問題なのは価格が高騰していることである。
XPで三万円近いらしいではないか。

これは間違いなく「抱き合わせ商法」の疑いがあるといわざるを得ない。

IntenetExploreやOutlookは只だから、などと能天気にいう人がいるのだが、世の中に只などというものはない。
そもそもOSを買うのにお金を払っているではないか。
パンドルOSだとしてもパソコンを買うのにお金を払っているではないか。
その中にInternetExplorerなりOutlookExpressなりFontpageExpressなり標準についているアプリケーションの代金を強制的に支払わされているということを、当然の認識としてすべきことである。
単にどんぶり勘定で抱き合わせで組み込まれているだけなのだ。慈善事業ではないのだから決して只であるわけがない。

独占禁止法云々という難しいことは良く判らないのだが、使いもしない、いや危険だから導入を回避したいものまで無理やりに抱き合わせで導入されてしまっており、危険回避のために消去したいのに削除不能であるという現状が非常に困っているのだ。

明日はどこにいく

現状ではどんどん複雑化して値段は高騰していき危険度が増していく一方である。
セキュリティを増やすまえにまず不安定さをなくすことが急務であるのに。
どうもNTベースのカーネルにしたから一安心しているのだろうか(笑)

経済原理、市場原理の上で肥大化を余儀なくされているOSというものに頼っている現状から逃げ出す方法を真剣に考えなくてはならないのだろうか。


コラム一覧に戻る
トップページに戻る