2013年04月13日

Windowsのバージョンアップは機能が切り捨てられているのか?

4月9日の、「公開ソフトの、サポートOSの切り捨て時とは」の記事を公開してから、いくつか反響をいただいたのですけど、いくつか聞いていた思ったのが、「OS更新で、アプリの切り捨てが発生してしまう理由」が、あまり理解されていなかったようです。

よくある勘違いとしては、「OSがバージョンアップに際して、機能を切り捨てている」という誤解ですね。
他のメーカーのOSと比較し、基本的にマイクロソフトはOSのバージョンアップに際し、過去の機能の保全をとても重要視しています。この点については、マイクロソフトはさすがと言ったところ。

とはいえ、切り捨てたモノがなかったわけではなくて、

(1)64bit版のWindowsでは、16bitアプリケーション(Windows 3.1やMS-DOS用のアプリケーション)を切り捨てた。
 →16bitアプリなんて使っていない人が多いと思いきや、インストーラやコンパイラなど、影の部分で活躍していることが多かったのが誤算で、多少の混乱が生じた。
  その解決のため、Windows 7のProfessional以上では、Windows XP Modeを標準で付属した。


(2)ユーザー アカウント制御(UAC)の導入で、多数のソフトが、そのままの状態では正常に動作しなくなった。
 →悪名高いUACですね。ただし、互換性のためのプロパティ設定をすれば動きます。素人に理解可能かどうかは別として。

(3)度々行われるフォルダ構成の変更。
 →該当のフォルダのパス(デスクトップフォルダの物理位置など)を、正しくない方法で取得している場合(固定文字列として保持している場合など)、そのソフトは正しく動かなくなる。

というのもあったりします。が、これは微々たるモノですし、(2)と(3)については、どちらかというとアプリケーション側に原因があるとも言えるので、マイクロソフトのせいばかりにはできないのが実態です。
が、これらの事象は「OSのバージョンアップを契機として」起こるため、あたかも「OSのバージョンアップが悪い」といった誤解を招きます。

それからよくあるパターンとしては、

(4)新バージョンでは、APIを呼び出す際の引数検定が厳しくなり、APIが不正な呼び出し方をされるとソフトは強制終了される。

というのがありますね。
メモリ管理の甘いアプリケーションとか、説明書では許されていない箇所にNULLを設定してAPI呼び出しをしているアプリケーションとか、「お行儀の悪い」ものについては、新バージョンのOSでは落とされたりします。

こういうのって、実はアプリケーション側にバグがあったにも関わらず、API側に検定が存在しなかったり、検定が甘かったりするせいで、バグが顕在化しなかったものなんですね。

特に、API引数に文字列を取るモノや、長いバイナリデータを与えるモノについては、OS側がその検定をしないことで、深刻なセキュリティ問題を生じさせることがあったりします。
だからOS側にしてみれば、「機能の切り捨てをしている」わけではなく、「より正しく動くようにする」「セキュリティを強化している」行動だったりするんですね。

ただ残念ながら、アプリケーション側では、その「検定の甘さ」に依存して作られてしまっている(バグが顕在化していない)状態だったりするので、「偶然にも」旧バージョンのOSでは動いてしまっていて、新バージョンでは「正しく」動かなくなった、と、そんなところ。


ところで、こういう誤解が生じてしまう理由は他にもあって、マイクロソフトの公開するOSは、ほとんどの場合「発売開始直後は品質がとても悪い」という事情もあったりします。
「新しいOSが発売されても、SP1が公開されるまでは乗り換えるべきではない」という意見がまかり通るほど。(*1)


に、「Windows Me」や「Windows
Vista」のあたりの品質が悪かったことは、多くのシステム管理者の頭を悩ませました。ドライバ周りの不具合は、即ブルースクリーンに繋がるため、発売
直後のOSを入れることは、システム管理者の頭痛の種を増やすことに繋がります。

そういったことから、Windowsのバージョンの切り替えは、非常に敬遠されることになるわけですね。


(*1) とはいえ、Windows 7の品質は、発売直後から非常に良かったようですから、最近ではその事情も当てはまらないのかもしれません。
(Windows
7は、内部構造的にWindows
Vistaのマイナーバージョンアップであったので、品質が保持されたという理由もありますし、サードパーティ製のアプリケーションの対応度が、
Vistaのおかげで「馴らされていた」という事情もあるかもしれません)

Windows 8についても、(その仕様の悪評はともかくとして、マイクロソフトの定めたとおりの動きをするかどうかとしての)品質は良いようですね。


※参考:2013年4月 9日 公開ソフトの、サポートOSの切り捨て時とは
※補足:2013年4月18日 「OSを動作対象から外す」が意味するところは人により違うみたい
posted by ayacy at 00:01 | Comment(0) | TrackBack(0) | フリーソフト
この記事へのコメント

この記事へのトラックバック