👨‍💻

Windows - WOW64の行く末を考えてみる

2024/12/26に公開

はじめに

「〇〇だから、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 に対する意見としては、下記が記憶に残っています。

https://developers.srad.jp/story/12/06/12/079206/

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 オーバーフロー

https://ja.wikipedia.org/wiki/2038年問題

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 での記載を確認してみます。

https://learn.microsoft.com/ja-jp/lifecycle/faq/developer-tools#microsoft-visual-basic-6-0--------------------------

英文ですが、下記情報もあります。

https://learn.microsoft.com/ja-jp/previous-versions/visualstudio/visual-basic-6/visual-basic-6-support-policy

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 投稿記事の転載です。

Windows - WOW64の行く末を考えてみる

Discussion