Windows - WOW64の行く末を考えてみる
はじめに
「〇〇だから、Windows で 32bit ソフトがサポートされなくなる」と 狼が来るぞ!! 的な意見を幾度か聞かされたことがあります。
そんなことを思い出したので、Windows での 32bit ソフトの終焉(WOW64サポート終了)について考えてみることにします。
Microsoft Copilot に聞いてみる
まずは、直球で Microsoft Copilot に聞いてみます。
まぁ、想定範囲内の回答ですね。
トピックス
Windows 32bit ソフト(WOW64サポート)の行く末について、何らかの見解に結び付くトピックスを時系列であげてみます。
VB.NET 登場
2002年に VB.NET が登場した際、Microsoft は、Visual Basic 6.0 サポート中止を試みました。
しかし、欧米では Visual Basic 6.0 に絶大な人気があったようで、ソフト資産継承を望む声(圧力?)によって、Microsoft は Visual Basic 6.0 ランタイムサポートを表明して、現在にいたっています。
Visual Basic 6.0 に対する意見としては、下記が記憶に残っています。
Visual Basic 6.0 は、当然 32bit なので、64bit OS では WOW64 上で動作します。
Visual Basic 6.0 ランタイムサポート = WOW64 サポートであり、Microsoft にとって、Visual Basic 6.0 は、WOW64 サポートに対するひとつの大きな足かせだと思っています。
Windows 64bit OS 登場
Windows XP Professional、Windos Server 2003 の 64bit OS が 2005年にリリースされました。
64bit OS では、ドライバーは 64bit モジュールである必要があります。
アプリについては、64bit OS 上で 32bit ソフトを動作させる WOW64 で、32bit ソフト資産継承を可能としました。
Windows Hyper-V Server リリース
Windows Server のサブセットとして、Windows Hyper-V Server がリリースされました。
Hyper-V を動作させることだけを目的としているので、不必要な WOW64 は搭載されていません。
狼が来るぞ!!
Windows Hyper-V Server に WOW64 が搭載されていないことを、フルセット Windows Server での WOW64 搭載有無に話を広げるのは勘弁してください。
Windows 32bit OS 終焉
Windows Server 2008、Windows 10 (2022) で Window 32bit OS は終焉を迎えました。
狼が来るぞ!! 狼が来るぞ!!
WOW64 で 32bit ソフト資産継承ができていて、32bit ソフトを動作させる上でも、64bit OS のメリットが大きいので、Windows 32bit OS は終焉を迎えたと思っています。
ハードウェアベンダーとしても、32bit ドライバーの終焉で、64bit ドライバーのみを用意すれば良いので、効率的な終焉と思っています。
macOS Catalina
macOS は、Catalina(2019年)で、32bit ソフトを切り捨て、64bit ソフトのみの動作となりました。
狼が来るぞ!! 狼が来るぞ!! 狼が来るぞ!!
もともと mac は執筆業・デザイナーの利用が多く、一般的なビジネス用途としては、WEBシステム以外は、そもそも mac は対象外とされることが多々ありました。
ビジネス用途が主流でベンダー・自社開発のソフトを多数利用している Windows とは立ち位置が異なるので、同じテーブルに乗せることは勘弁してください。
time_t オーバーフロー
VC6 time_t は 32bit のため、2038年1月18日以降にオーバーフローしてしまいます。
VC6 は既にサポート終了していますが、Visual Basic 6.0 ランタイムは、VC6 ランタイムを利用しています。
Visual Basic 6.0 ランタイムサポートは、結果的に VC6 ランタイムサポートも成し遂げているとも言えます。
Visual Basic 6.0 で VC6 ランタイムを利用していることから、VC6 time_t オーバーフローは、一部かもしれませんが、Visual Basic 6.0 アプリへの影響があるかもしれません。
Visual Basic 6.0 アプリ運用に対して、致命的な影響がおよぶなら、WOW64終焉の契機となるかもしれません。
考察
Visual Basic 6.0
Visual Basic 6.0 ランタイムサポートが、ひとつの足かせという観点で、Microsoft ライフサイクルに関する FAQ での記載を確認してみます。
英文ですが、下記情報もあります。
Microsoft Copilot にも聞いてみましょう。
おやおや、Microsoft ライフサイクルに関する FAQ とは異なる回答です !!
いつの間にか Visual Basic 6.0 ランタイムサポートの終焉をアナウンスしていたんですかね。
。。。チョイ確認してみましたが、当該情報にはたどり着けませんでした。
Microsoft Copilot が「VBScript の無効化、廃止」などと混同している可能性もありますね。
Microsoft Copilot の回答が事実だとしたら、WOW64 サポートの足かせがひとつ外れたことになりますけど。
VC++
IDE が 2008年にサポート終了している Visual Basic 6.0 とは異なり、Visual Studio 2022 でも、VC++ 32bit モジュール生成ができます。
VC++ 32bit ソフトを 64bit 化するメリットも少ないので、現状もかなり現役で稼働していると思います。
まだまだ、32bit ソフトは健在という感じてです。
C#
Visual Studio 2022 でも、.NET Framework - EXE 生成時の対象プラットフォーム既定値は、「Any CPU - 32bit 優先」となっています。
こちらでも、まだまだ、32bit ソフトは健在という感じてです。
まとめ
Visual Studio 2022 でも、32bit ソフトは健在です。
ARM 版 Windows 用では、これまでの x86/x64 向けアプリを動作させられるエミュレータが用意されています。
これは、Microsoft として、ソフト資産継承を命題としたプラットフォームであることを、最大の価値として考えているからだと思います。
既存ソフト資産が全く使えなくなった Windows となった場合、Windows が選択されつづけるかは微妙ですから。
Visual Basic 6.0 ランタイムを長期にわたってサポートし続けている歴史から、自社開発 32bit ソフトをサポートし続けるであろうと思われます。
このようなことから、「Windows で 32bit ソフト(WOW64)は、まだしばらくサポートされ続けるであろう」を、今回の結論とさせて頂きます。
出典
本記事は、2024/12/24 Qiita 投稿記事の転載です。
Discussion