2013年04月18日

「OSを動作対象から外す」が意味するところは人により違うみたい

“XP”サポート終了で注意呼びかけ」報道から始まる、一連のサポート打ち切り騒動は、まだまだ熱い話題なようですね。
というのも、実際に打ち切りになるのは1年後の2014年4月であり、そこまでに対策を行わなければならないということで、対策実施者は大忙しになるから。
不満が噴出するのは、まさにこれからといったところでしょう。

当ブログで書いた、2013年4月9日「公開ソフトの、サポートOSの切り捨て時とは」にも、結構反響が寄せられており2013年4月13日「Windowsのバージョンアップは機能が切り捨てられているのか?」という続き記事を書くほどで。

で、今日の段階でも、まだまだこの話題は熱いようで、もう一つ、補足記事を書いておこうかと思います。
それは「OSを動作対象から外す」が何を意味するか、人によって受け取り方が違ってくるという話です。

■OSのサポート終了とは何を意味すると受け取られてしまうか


というのも、一般の人が「Windows XPサポート終了」というニュースを見たときどう感じるか、ということが話題になりました。
で、結局、結論としては「ある日突然、これまで使えていたWindows XPが使えなくなると感じるのではないか」ということになりました。

実際には、サポート(質問の受付や、更新プログラムの提供)が打ち切られるだけで、Windows XP自体を使うことは(本人の自由と責任の下)可能なのですが、どうもそれが間違って受け取られているのではないか、ということです。


ちろん、世間的に言えば、更新プログラムの提供が打ち切られる(あるいは限定的な提供に限られる)状態になったOSを搭載したPCが我が物顔で動いていた
ら、ウイルスの温床となって、様々なサーバにアタックを仕掛けられてしまうのではないかという恐怖はありますが、使っている本人からすれば、サポート打ち
切り前も打ち切り後も、使えるわけですね。

というか、そもそもマイクロソフトからサポートを受けていると心から感じている一般ユーザーな
んてほとんどいないでしょうから、もしかしたらWindows
Updateの提供量が減ったりなくなったりしても、何も気づかないユーザーがいるかもしれません。そこらへん、このニュースを聞く人の間での温度差の違
いが見え隠れするかもしれません。


■公開ソフトのサポートOS終了とは、何を意味するを受け取られてしまうか

次は、2013年4月9日「公開ソフトの、サポートOSの切り捨て時とは」の記事で書いた、アプリケーションソフトウェア側の、対応OSの現象の話ですね。

これについても、例えば「当ソフトはWindows XPには対応しなくなります」と表現した場合、「絶対にWindows XPでは動かなくなる」のか「動くかもしれないけど、何か起きても起きなくても、作者は一切の手助けはしませんよ」ということを意味するのか、違ってきます。

例えば、上記記事で書いた僕の実施例「Windows 95を動作OS対象から外す」「Windows 2000以下を動作OS対象から外す」については、「絶対にそれらのOSでは動かなくなる」ことを意味しています。なぜなら、このとき、開発ツールである「Visual Studio」の更新を行ったからです。

Visual Studioで作られる C++ のプログラムは、動作対象に限りが出てきます。具体的には、

・Visual Studio 6.0で作られたC++のプログラム …… Windows 95/98/Me/NT 4.0/2000/XP/Vista/7/8 で動作可能
・Visual Studio .NET (2002)で作られたC++のプログラム …… Windows 95/98/Me/NT 4.0/2000/XP/Vista/7/8 で動作可能
・Visual Studio .NET 2003で作られたC++のプログラム …… Windows 95/98/Me/NT 4.0/2000/XP/Vista/7/8 で動作可能
・Visual Studio 2005で作られたC++のプログラム …… Windows 98/Me/NT 4.0/2000/XP/Vista/7/8 で動作可能
・Visual Studio 2008で作られたC++のプログラム …… Windows NT 4.0/2000/XP/Vista/7/8 で動作可能
・Visual Studio 2010で作られたC++のプログラム …… Windows XP/Vista/7/8 で動作可能
・Visual Studio 2012で作られたC++のプログラム …… Windows Vista/7/8 で動作可能

といったことになっています。

れでは、古いバージョン(例えばVisual Studio
6.0)は優れたものであって、バージョンが進んでいく度に劣化していくのか、といえば、そういうわけではなくて、開発ツールだってサポート対象をずっと
維持していくのは大変なのです。また、OSの新しく提供する機能を使おうとすれば、古いOSにはそれに対応していないから動かなくなる、というのも事情の
一つです。プログラムを補助するための優れたアシスト機能も増えていきます。

まあ技術的には、プログラム開始時などに呼んでいる、新しい各OS上だけでしか使えないデバッグAPI関数があり、実質的にはそれのせいで動かなくなっているのだとか。
(だから、ある人の研究によれば、その呼び出し部分をNOPに書き換えてしまえば、動くようになってしまうとか)


はいえ、バイナリ改変をしてまで古いOSを積極的にサポートしたい気持ちがあるわけでもなく、そもそもVisual
Studioを更新した時点で古いOSのサポートを外したい気持ちがあるわけですから、そんな技術的なことには寄らずに、サポートを打ち切ることになるん
ですけどね。

ちょっと難しい話になりましたが、とりあえず、「Windows 95を動作OS対象から外す」「Windows 2000以下を動作OS対象から外す」については、「絶対にそれらのOSでは動かなくなる」ことを意味していました。


て、では「Windows XPでは動かなくなる」ことを意味する場合、それは「Windows
XPでは絶対に動かなくなる」ことを意味するのでしょうか。それとも「Windows
XPでは動くかもしれないけど、何か起きても起きなくても、作者は一切の手助けはしませんよ」ということを意味するのでしょうか。

現時点では、その意味は定義しかねています。
ですが直近では、僕自身はVisual Studio 2012を買う予定はありませんからね。だから、実質的な意味で、「Windows XPでは絶対に動かなくなる」という状態は、当分訪れないと思います。なので「もし仮に近々、Windows XPを動作OS対象から外す」宣言をするとしたら、「Windows XPでは動くかもしれないけど、何か起きても起きなくても、作者は一切の手助けはしませんよ」側の意味になると考えていただければと思います。

ただ、遠い未来には、次のVisual Studio 20xxを買う日も来ると思います。そうしたら、その時こそ「Windows XPでは絶対に動かなくなる」日が来るということになります。
※元記事:2013年4月 9日 公開ソフトの、サポートOSの切り捨て時とは
※元記事:2013年4月12日 Windowsのバージョンアップは機能が切り捨てられているのか?
posted by ayacy at 08:11 | Comment(2) | TrackBack(0) | フリーソフト
この記事へのコメント
C++のプログラムが起動できるOSのアーキテクチャ(システムの種類)や、サービスパック、Windows Server、Windows PEを考慮したらどうですか。
Posted by Rossha at 2015年11月13日 02:44
起動できるかどうかは、OSに搭載されているDLLの種類とバージョンに依存することになるようです。
なので、対応しない過去のOSでも、未来のバージョンのOSから必要なDLLを連れてきてしまえば、動くこともあるようです。
(実際にはDLL間のバージョン整合もあるでしょうし、うまくいくこともあれば、うまくいかないこともあったり、逆に他のソフトが動かなくなることもありえます)

サービスパック(というか、ここの修正パッチ)の考慮としては、それで入ってくるDLLの種類とバージョンが影響してきそうです。
代表例としては、過去にWindows 95に後付けで入ってきたIE4が、OSの機能を大きく拡充したことがありました。

サーバーOSについては、原則として、同一カーネルで動いているクライアント系OSと同一視することが多いです。
例えば、XPと2003を同一視したりとか。

まぁ、サーバー系OSを個人で入手することの困難さがあるので、なかなか試せるものでもないですけどね。

PEについては、私はあまり詳しくないのですが、Vista上で構築されていると聞いたことがあるので、Vistaと同一視できるのかもしれません。
ただ、必要最低限の構成だそうですので、足りないDLLはいくつもあるのでしょうね。
Posted by Ayacy at 2015年11月13日 08:03

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