Skip navigation.
ホーム
BLOG-ROMMER 日高のブログ

いまどき Windows XP を動作させる

さる2020年1月14日にWindows 7の延長サポートが終了した。延長サポートの終了 は、Windows 7用のセキュリティアップデートがWindows Updateで配布されくなるということである。詳細は前述のリンクを始め、ネット上に多数の情報があるので、そちらを参照されたい。ここでの主役はWindows XPである。製品サポートが2014年4月9日で終了し、組込みシステム向けの Windows XP Embedded も2016年に終了。後発のため特別扱いだった、Windows XP Embedded POSReady 2009 のサポートも2019年4月9日で終了した。

なぜ今ごろ Windows XP なのかというと、去年後半あたりから Windows XP / Windows 2000 時代のアプリケーションやドライバーの更新を求めるお客様が出てきたからである。アプリケーションやドライバーの更新版を作成(実際には開発)する際は、元の環境での動作を良く検証する必要がある。それで今回試した、評価目的での Windows XP (32bit版) をインストールして動作させる手順の最新版?を公開する。

インストール

評価目的で使用する Windows XP のインストールメディアとライセンスキーは「Visual Studio Professional with MSDN」を購入することでダウンロード入手可能だ。Visual Studio with MSDN のどのパッケージを購入するどの OSやソフトウェアが入手できるかの一覧が載っているExcelファイルへのリンクが以下にある。

ダウンロードできるソフトウェア
https://docs.microsoft.com/ja-jp/visualstudio/subscriptions/software-download-list

Windows XP SP3 をインストールした後は Windows Update で最新版に更新する。注意点として、Windows XP 発売時には存在しなかった比較的新しいPCハードウェア、特にディスクコントローラには対応ドライバーがインストール用のCDイメージには入って無いため、OSインストール時にドライバーを追加しないとインストールできない場合がある。

具体的にはあらかじめ TXTSETUP.OEM ファイルを含むディスクコントローラインストール用のUSBメモリーまたはFDを作成しておいて、インストールの初期段階で読み込ませてインストールすれば良いのだが、経験がないと面倒な作業になる。Windows XP SP3 が登場したのが2008年4月21日なので、Sandy Bridge (Intel 6Xチップセット)以降、つまりCore iシリーズはこれに該当する。今回の実験ではそれを見越して、Intel G45 チップ搭載の MSI G45M-FIDR マザーボードに Core 2 Duo E8500 で試したが、予定通りOSインストール時に全ドライバーのインストールが完了した。

参考:Installing a Boot-Start Driver

https://docs.microsoft.com/en-us/windows-hardware/drivers/install/installing-a-boot-start-driver

追加インストール作業

Windows XP SP3 と Windows Update だけではまだできない事が多く、開発環境として不十分だ。そのため追加インストールするソフトウェアについて説明する。

ブラウザ

Windows XP と Windows Update のインストール直後で使える、たかだか6年前の Internet Explorer 8 では、ほとんど何もできない。現在の開発では、何をするにもWebアクセスできなければ始まらないため、次のサイトから古い Firefox ESR 52.9.0 をインストールする。ESRとは Extended Support Release で、延長サポート版の事だ。これは Windows XP 用の最後バージョンで、当然ながらサポート切れである点に注意されたい。余談だが、特定バージョンの古い Firefox ESR は、一部ベンダーからの証明書購入の際に使用する場合があり、下記サイトを覚えて置くと便利である。

参考:以前のバージョンの Firefox をインストールするには
https://support.mozilla.org/ja/kb/install-older-version-of-firefox

参考:52.9.0 Windows 32bit 日本語版のリンク
https://ftp.mozilla.org/pub/firefox/releases/52.9.0esr/win32/ja/

Visual Studio

Windows XP で使用できる最後の Visual Studio は、Visual Studio 2010(Version 10) である。調べた限りでは、Visual Studio 2012(VS11, .NET Framework 4.5) 以降は、インストールできない。従ってこのバージョンの最新版である、Visual Studio 2010 SP1 をインストールして使用する。

一方で古い Visual Studio のバージョンについては、Javaのライセンスの問題により、Visual Studio .NET (2002)とVisual Studio .NET 2003 が通常の方法では入手できない。MSDNでダウンロードで入手できる2000年以降のバージョンは、Visual Studio 2005 なのであるが、このバージョンからはネイティブとマネージドの64bit開発に対応したため、ライブラリのAPIが64bit対応向けに一部更新されているため、結構厄介である。つまりこの変更されたライブラリを使用するVC++の以前のソースコードは、そのままではコンパイルエラーとなり、ビルドできない。そのほか、コンパイラのエンジンが変わって(今の様に)エラーチェックが厳しくなったため、それまで見逃していたソースもエラーとなる。

例えば afx_msg のリターン型が UINT から LRESULT に変わったので、次の定義と関連するすべての部分する必要がある。

afx_msg UINT OnNcHitTest(CPoint point);
↓
afx_msg LRESULT /*UINT*/ OnNcHitTest(CPoint point);

コンパイルのエラー関連の動作は、この Visual Studio 2005 で一度大きく変わっただけで、その後はあまり変化がないという事が、Visual Studioを何種類かインストールして分かった。

つまり古いソースコードを Windows XP 用に現在入手できる最新の環境でビルドするためには、Visual Studio 2010 SP1 を使用して、ソースコードに一部手を入れてビルドし直す必要がある。そしてその手直ししたソースコードは、Windows 10 等でも Visual Studio 2019 でも問題なくビルドできるという事を確認した。勿論、より新しい Visual Studio の細かなオプションの違いや遍歴に対応する必要があり、Visual Studio に関するある程度の知識は必要である。

ドライバー

Windows XP には今でも署名が無いドライバーがインストール可能である。また WDF に関しては KMDF/UMDF ともに、Windows 7 用の V1.9 までが Windows XP SP3 にはインストールして動作させることが可能だ。しかし一方で Windows Vista 以降では、カーネル共有メモリーやユーザー空間へのDMA不可などの制約がある等、ドライバーのアーキテクチャが一部変わったため、全面的に作成し直しが必要なドライバーもある。

参考:KMDF Version History
https://docs.microsoft.com/en-us/windows-hardware/drivers/wdf/kmdf-version-history

参考:UMDF Version History
https://docs.microsoft.com/en-us/windows-hardware/drivers/wdf/umdf-version-history

アプリケーション

忘れがちで重要なことは、.NET Framework 3.5である。これは Windows Updateでは入らないので、下記サイトを参考にして、個別に入手してインストールする必要がある。そのほか必要に応じて .NET Framework 4.0.3 もインストールする。

参考:Windows XP と Windows Server 2003 に .NET Framework をインストールする
https://docs.microsoft.com/ja-jp/dotnet/framework/install/on-windows-xp

他のWindowsアプリケーションは、32bit版で、なおかつインストーラが余計なチェックをしていなければ、今でもWindows XPにインストールして動作させることが可能だ。
例:CrystalDiskInfo32K の動作画面

補足:Windows 7

Windows 7のサポートが終了してまだ日が浅いが、すでに遠い昔の事に感じている方も多いと思うので、簡単に復習する。

Windows 7 は、XPとは違ってつい最近まで現役でサポートされていたOSなので、64bit版を含めてほぼ全ての機能がWindows 10 と同様に問題無く利用できる。例えば条件付きではあるが標準ブラウザの IE11 も結構利用できるし、他の一般的なブラウザについても多くの場合はインストール制限が無い。Visual Studioについても、現時点で最新のVisual Studio 2019 をインストールして、最新版(16.4.5) に更新することも可能だ。唯一注意が必要なのは、ドライバーの署名ぐらいだろうか。

Windows 7 ドライバーの署名

Windows 7のドライバーに関してつい最近(2019年7月頃)の Windows Update まで、署名のハッシュアルゴリズムとしてはSHA1だけしか認識されなかった。一方で Windows 8/10 ではここ数年の更新により、SHA2(SHA256) だけを認識する様になった。全てのWindows Updateをインストールした状態であれば、SHA2 署名のドライバーでも認識することは確認しているが、OSインストール直後や、2019年7月頃の Windows Update を当てていない状態では、Windows 10用署名とは別のSHA1署名のドライバーが必要だということは覚えておく必要があるだろう。

W7の有償サポート

サポートが切れたOSであっても、利用上のセキュリティを配慮すれば評価目的用に使用することは十分可能であるが、2023年1月まで、Windows 7のセキュリティ更新プログラムを受け取ることができるという「Windows 7 Extended Security Update(ESU)」という企業利用向けのプログラムが用意されている。興味がある方は参考にされたい。

参考:Windows 7 の拡張セキュリティ更新プログラムに関する FAQ

https://support.microsoft.com/ja-jp/help/4527878/faq-about-extended-security-updates-for-windows-7