🦆

ARM版Windowsの非互換について調べてみる

2025/02/20に公開

なぜ作成したのか

  • 自社で「AWS Client VPNが接続できない」という問い合わせがあり、色々調べた結果SurfaceのSnapdragon(ARM)にインストーラーが対応してないことが原因と判明
  • ARMでこれ以上被害を広げたくないので、具体的な非互換事例を把握しておきたい気持ち

起点になった類似事象

https://www.reddit.com/r/aws/comments/1hffoxh/does_anyone_know_when_aws_client_vpn_will_support/
・AWS Client VPNは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命令に変換)を行う必要があります。

参考情報ソース

  1. Microsoft Docs: Windows 10 および Windows 11 を ARM デバイスで実行する (Windows on ARM)
  2. Windows 11 on ARM FAQ (Microsoftサポート)

2. エミュレーションによる非互換・パフォーマンス問題

x86アプリのエミュレーション

Windows 11では、ARM上でx86(32ビット)およびx64(64ビット)のアプリのエミュレーションがサポートされています。しかし、以下の点で非互換やパフォーマンス上の制限が発生しやすくなります。

  1. ネイティブドライバーが必要なアプリ・機能

    • ドライバーがx86/x64向けにのみ提供されていると、ARM版では動かないケースがあります。たとえば、特殊なハードウェア制御やカスタムドライバーを使用するソフトウェアはARMに対応していないと動作しません。
  2. エミュレーションのオーバーヘッド

    • エミュレーションでは命令変換の処理が入るため、ネイティブで動作する場合に比べてパフォーマンスが低下します。また、アプリによっては動作が不安定になったり、想定外のバグが起きることもあります。
  3. 一部のアプリがまだx64エミュレーションをサポートしていない可能性

    • Windows 10 on ARMではx64アプリのエミュレーションが限定的でした。Windows 11ではx64エミュレーションが正式にサポートされていますが、一部の古いアプリケーションや特殊なアプリケーションでは正常に動作しない場合があります。

参考情報ソース

  1. Microsoft Docs: WindowsアプリをARM上でテストする際の考慮事項 (英語)
  2. Microsoft Blogs: ARM64EC (互換性とネイティブパフォーマンスの両立を目指す技術) (英語)

3. ドライバーや周辺機器の非対応

カーネルモードドライバーの問題

Windowsのドライバーはカーネルレベルでアーキテクチャに依存することが多いため、Intel専用で開発されたものはARM環境上でそのまま動かすことができません。メーカーがARM用ドライバーを提供していない場合、たとえば以下のようなデバイスやソフトウェアが利用できない(もしくは機能が制限される)可能性があります。

  • 特殊なUSBデバイス
  • プリンタ・スキャナなどの専用ドライバーが必要な周辺機器
  • セキュリティソフトやアンチチートソフト(カーネルレベルのフックを利用するもの など)

仮想化ソフトウェア・コンテナ関連

  • VirtualBoxやVMwareなどの仮想化ソフトが、ARM対応版をリリースしていなければ動作が制限される、もしくはサポートされない場合があります。
  • Dockerなどのコンテナ基盤も、Windows on ARMにおいては対応状況が限定的であったり、Intel向けコンテナイメージをそのまま利用できないなどの制約があります。

参考情報ソース

  1. Windows 11 on ARM FAQ > ドライバーに関する説明 (Microsoftサポート)
  2. Microsoft Docs: ARM64 ドライバー開発 (英語)

4. ゲームやクリエイティブソフトでの問題

ゲーム関連

  • 3Dゲームやゲーム用ランチャーが、アンチチート機能などカーネルレベルで動作する仕組みを使っている場合、ARM版Windowsに非対応だとゲームが起動しなかったり、オンラインプレイできない可能性があります。
  • グラフィックスAPIや最適化がx86/x64前提で作られている場合、ARMでの動作テストが十分に行われていないアプリはパフォーマンスが安定しないことがあります。

クリエイティブ系ソフトウェア

  • Adobe系のクリエイティブツール(Photoshop, Illustratorなど)は、一部ネイティブARM対応が進んでいますが、プラグインや連携機能でIntel専用部分が混在していると使えない機能が出る場合があります。
  • 一部の動画編集ソフトや3DソフトはまだARMネイティブに最適化していないものが多く、エミュレーション動作によるパフォーマンスや機能制限があります。

参考情報ソース


5. まとめ

  • 根本原因: ARMアーキテクチャとx86/x64アーキテクチャの命令セットが異なるため、従来のIntel/AMD向けソフトウェアやドライバーをそのまま動かすことはできず、エミュレーションや専用ドライバーが必要になる。
  • 主な影響:
    1. パフォーマンスの低下やエミュレーションによる不安定さ
    2. ARM対応ドライバーが提供されていないハードウェア・ソフトが使えない
    3. 特殊な機能やカーネルレベルのフックを利用するソフトウェアが起動しない
    4. 一部クリエイティブソフトやゲームで機能制限・動作制限

MicrosoftはWindows 11でx64エミュレーションを正式サポートするなど、互換性を向上させる取り組みを進めていますが、依然としてIntel向けのソフトウェアやドライバーすべてがシームレスに動くわけではありません。特に企業向けの業務ソフトや高性能を必要とするアプリケーションをARMデバイスで使用する場合は、事前に対応状況や代替策の確認が重要となります。


補足:「Arm対応」がアナウンスされているアプリ一覧(2024/12)

https://forest.watch.impress.co.jp/docs/special/1650683.html

所感

  • OpneVPNはARM64対応しているので、VPN接続だけならこれでも対応できる
  • 既存の業務端末との余計な非互換を増やさないためにはIntel機を調達したほうが安全
  • 2025/1にSurfaceLaptop7のIntel機もリリースされたものの、やはりARMよりお値段が張る
GitHubで編集を提案

Discussion