🦆
ARM版Windowsの非互換について調べてみる
なぜ作成したのか
- 自社で「AWS Client VPNが接続できない」という問い合わせがあり、色々調べた結果SurfaceのSnapdragon(ARM)にインストーラーが対応してないことが原因と判明
- ARMでこれ以上被害を広げたくないので、具体的な非互換事例を把握しておきたい気持ち
起点になった類似事象
・OpenVPNはARM対応インストーラー提供してるよ
1. ARMアーキテクチャとx86/x64アーキテクチャの違い
アーキテクチャの基本的な違い
- ARM: 省電力かつモバイル向けの設計が中心で、命令セットがRISC(Reduced Instruction Set Computer)ベース。
- x86/x64 (Intel/AMD): PCやサーバー向けで長年使われてきたCISC(Complex Instruction Set Computer)命令セット。
従来のWindows PC向けソフトウェアの多くはIntelやAMDのx86/x64アーキテクチャを前提として開発されています。そのため、ARMデバイス上で動作させるには、Windows側でエミュレーション(仮想的にx86/x64命令セットを解釈してARM命令に変換)を行う必要があります。
参考情報ソース
- Microsoft Docs: Windows 10 および Windows 11 を ARM デバイスで実行する (Windows on ARM)
- Windows 11 on ARM FAQ (Microsoftサポート)
2. エミュレーションによる非互換・パフォーマンス問題
x86アプリのエミュレーション
Windows 11では、ARM上でx86(32ビット)およびx64(64ビット)のアプリのエミュレーションがサポートされています。しかし、以下の点で非互換やパフォーマンス上の制限が発生しやすくなります。
-
ネイティブドライバーが必要なアプリ・機能
- ドライバーがx86/x64向けにのみ提供されていると、ARM版では動かないケースがあります。たとえば、特殊なハードウェア制御やカスタムドライバーを使用するソフトウェアはARMに対応していないと動作しません。
-
エミュレーションのオーバーヘッド
- エミュレーションでは命令変換の処理が入るため、ネイティブで動作する場合に比べてパフォーマンスが低下します。また、アプリによっては動作が不安定になったり、想定外のバグが起きることもあります。
-
一部のアプリがまだx64エミュレーションをサポートしていない可能性
- Windows 10 on ARMではx64アプリのエミュレーションが限定的でした。Windows 11ではx64エミュレーションが正式にサポートされていますが、一部の古いアプリケーションや特殊なアプリケーションでは正常に動作しない場合があります。
参考情報ソース
- Microsoft Docs: WindowsアプリをARM上でテストする際の考慮事項 (英語)
- Microsoft Blogs: ARM64EC (互換性とネイティブパフォーマンスの両立を目指す技術) (英語)
3. ドライバーや周辺機器の非対応
カーネルモードドライバーの問題
Windowsのドライバーはカーネルレベルでアーキテクチャに依存することが多いため、Intel専用で開発されたものはARM環境上でそのまま動かすことができません。メーカーがARM用ドライバーを提供していない場合、たとえば以下のようなデバイスやソフトウェアが利用できない(もしくは機能が制限される)可能性があります。
- 特殊なUSBデバイス
- プリンタ・スキャナなどの専用ドライバーが必要な周辺機器
- セキュリティソフトやアンチチートソフト(カーネルレベルのフックを利用するもの など)
仮想化ソフトウェア・コンテナ関連
- VirtualBoxやVMwareなどの仮想化ソフトが、ARM対応版をリリースしていなければ動作が制限される、もしくはサポートされない場合があります。
- Dockerなどのコンテナ基盤も、Windows on ARMにおいては対応状況が限定的であったり、Intel向けコンテナイメージをそのまま利用できないなどの制約があります。
参考情報ソース
4. ゲームやクリエイティブソフトでの問題
ゲーム関連
- 3Dゲームやゲーム用ランチャーが、アンチチート機能などカーネルレベルで動作する仕組みを使っている場合、ARM版Windowsに非対応だとゲームが起動しなかったり、オンラインプレイできない可能性があります。
- グラフィックスAPIや最適化がx86/x64前提で作られている場合、ARMでの動作テストが十分に行われていないアプリはパフォーマンスが安定しないことがあります。
クリエイティブ系ソフトウェア
- Adobe系のクリエイティブツール(Photoshop, Illustratorなど)は、一部ネイティブARM対応が進んでいますが、プラグインや連携機能でIntel専用部分が混在していると使えない機能が出る場合があります。
- 一部の動画編集ソフトや3DソフトはまだARMネイティブに最適化していないものが多く、エミュレーション動作によるパフォーマンスや機能制限があります。
参考情報ソース
-
Adobe公式: Apple SiliconおよびWindows on ARM対応状況 (英語)
※Apple Silicon(ARM)とWindows on ARMは異なるプラットフォームですが、ARM版対応状況の一例として参照できます。
5. まとめ
- 根本原因: ARMアーキテクチャとx86/x64アーキテクチャの命令セットが異なるため、従来のIntel/AMD向けソフトウェアやドライバーをそのまま動かすことはできず、エミュレーションや専用ドライバーが必要になる。
-
主な影響:
- パフォーマンスの低下やエミュレーションによる不安定さ
- ARM対応ドライバーが提供されていないハードウェア・ソフトが使えない
- 特殊な機能やカーネルレベルのフックを利用するソフトウェアが起動しない
- 一部クリエイティブソフトやゲームで機能制限・動作制限
MicrosoftはWindows 11でx64エミュレーションを正式サポートするなど、互換性を向上させる取り組みを進めていますが、依然としてIntel向けのソフトウェアやドライバーすべてがシームレスに動くわけではありません。特に企業向けの業務ソフトや高性能を必要とするアプリケーションをARMデバイスで使用する場合は、事前に対応状況や代替策の確認が重要となります。
補足:「Arm対応」がアナウンスされているアプリ一覧(2024/12)
所感
- OpneVPNはARM64対応しているので、VPN接続だけならこれでも対応できる
- 既存の業務端末との余計な非互換を増やさないためにはIntel機を調達したほうが安全
- 2025/1にSurfaceLaptop7のIntel機もリリースされたものの、やはりARMよりお値段が張る
Discussion