Arm 版 Windows

Windows は従来、x86/x64 プロセッサを搭載したマシンで実行されていますが、最近では Arm プロセッサを搭載したデバイスでも実行されています。

Arm 搭載デバイスが特に興味深いのは、Arm アーキテクチャの省電力特性により、これらのデバイスが優れたパフォーマンスを実現しながら、より長いバッテリーの寿命を提供できるためです。 多くの場合、Arm Systems on Chip (SoC) には、強力な CPU、GPU、Wi-Fi と モバイル データ ネットワーク、AI ワークロードを高速化するための ニューラル プロセッサ ユニット (NPU) などのその他の主要な機能が含まれています。

Arm で実行される Windows アプリをビルドする

Windows 10 では、変更されていない既存の x86 アプリを Arm デバイスで実行できます。 Windows 11 では、変更されていない x64 Windows アプリを Arm デバイスで実行する機能が追加されています。 Arm デバイスで x86 アプリと x64 アプリを実行するこの機能により、既存のアプリとツールの大部分が新しい Arm 搭載デバイスでも適切に実行されることをエンドユーザーが確信できます。

パフォーマンス、応答性、バッテリーの寿命を最大限に高めるために、ユーザーには Arm ネイティブ Windows アプリが必要です。つまり、開発者は Arm ネイティブ Windows アプリをビルドまたは移植する必要があります。

Arm 開発者用ツール

Microsoft は、Arm ネイティブの Visual Studio 2022、VSCode、VC++ ツールチェーン、従来の .NET Framework、最新の .NET、Java を含む Arm ネイティブ開発者ツールセットの提供に取り組んでいます。 また、Microsoft は、一般的なツール、ランタイム、フレームワーク、ライブラリを移植して Arm 版 Windows をネイティブにターゲットとするために、複数のサード パーティおよびオープンソース コミュニティとも協力しています。 開発者が x64 をターゲットとするときと同じくらい簡単に Arm をネイティブにターゲットとするアプリをビルドして移植することを可能にする、この包括的なツール、サービス、デバイスのスイートについては、ビルド 2022 からの発表を参照してください。

Virtual Machines

Ampere Altra Arm ベースのプロセッサを使用する Windows 11 Arm64 VM を作成して Azure に展開できます。 このクイックスタート記事では、その方法について説明します。

以下の Arm版 Windows 仮想マシンについて詳しく説明します

Arm 開発者デバイス

開発者には、Arm ネイティブ Windows アプリをビルドしてテストするための Arm デバイスが必要です。 いくつかの Arm 搭載デバイスは、Microsoft パートナーから既に入手できます。 ノート PC のフォーム ファクター デバイスでも、コンバーチブル タブレットでも、これらのポータブル デバイスは、優れたパフォーマンス、バッテリの寿命を提供し、増加する一連の Arm ネイティブ開発者ツールを実行します。

Windows 開発キット 2023 (コード名 "Project Volterra") は、Windows 開発者、AI 研究者、およびアプリとエクスペリエンスに AI を統合しようとしている開発者をサポートするためにビルドされた最新の Arm デバイスです。

Arm64EC - Arm 版 Windows 11 用のアプリをビルドする

Arm64EC graphic.

Arm64EC ("エミュレーション互換") を使用すると、新しいアプリを段階的にビルドしたり既存のアプリを移植したりして、可能な限りネイティブ Arm のパフォーマンスを活用しながら、完全に移行されるまでは既存の x64 のコードとライブラリを利用できます。 詳細情報:

既存の Arm 版 Windows アプリをサポートする

App Types graphic.

Arm 版 Windows では、ネイティブ Arm アプリだけでなく、変更されていない x86 アプリと x64 アプリも多数実行されますが、最高のパフォーマンスとバッテリー残量を実現するには、可能な限りアプリを Arm ネイティブとしてビルドする必要があります。 Windows アプリは、ネイティブ C/C++ Win32 アプリ、従来の .NET Framework WinForms/WPF アプリ、最新の .NET アプリや MAUI アプリ、さらには Java、Python、ノードなどを使用してビルドされたアプリなど、さまざまなツールとテクノロジを使用してビルドできます。

Arm 開発用のツールを見つける

Tools graphic

Windows には、Arm で Arm 用のアプリ開発をサポートするためにさまざまなツールとフレームワークが用意されています。

  • 新しい Arm ネイティブ Visual Studio には Visual C++.NET と .NET FrameworkJava が含まれており、開発者は Arm ベースのデバイスで Arm アプリをネイティブにビルドおよびデバッグできます。 詳細については、ブログのお知らせを参照してください。
  • Visual Studio Code では Arm がネイティブにサポートされており、Arm デバイスにインストールできますVS Code C++ 拡張機能では、Arm64 デバイスでネイティブに実行される Windows アプリを開発するための C++ IntelliSense とビルドのサポートも提供されます。
  • .NET 6 では、ネイティブ Arm の実行と x64 エミュレーションの両方で Arm が既にサポートされています。 Arm64 デバイスでネイティブに実行される .NET アプリを開発するには、新しい Arm ネイティブ Visual Studio 2022 17.4 と .NET 7 Arm64 SDK をインストールすることをお勧めします。 Arm の .NET 7 サポートと Arm64 のパフォーマンス向上の詳細については、.NET ブログを参照してください。
  • .NET 6 Arm64 SDK: 既定では、Arm64 SDK と一緒に .NET 6 アプリをdotnet runする場合、Arm64 として実行されます。 この dotnet-runtimeinfo ツールを使用して、.NET が実行されている環境を検出できます。 詳細については、Arm64 サポートに関する .NET 6 のブログ発表を参照してください。

Note

ここでは、Arm という用語を、Arm64 (一般に AArch64 とも呼ばれます) プロセッサで Windows のデスクトップ バージョンを実行する PC の省略形として使用しています。 ここでは、Arm32 という用語を、32 ビット Arm アーキテクチャ (他のドキュメントでは一般に Arm と呼ばれます) の省略形として使用しています。 また、Arm 搭載 PC にはアプリケーションの互換性が十分に備わっており、変更されていない既存の x86 win32 アプリケーションを実行できます。 Arm アプリはエミュレーションされずにネイティブで実行されますが、x86 および x64 アプリはエミュレーション下で実行されます。

Arm デバイスで実行される Windows アプリを開発するためのその他のヒント

  • MSIX を使用して、配布用にアプリをパッケージ化することをお勧めします。 MSIX が Arm と Arm64 をサポートする方法の詳細については、「アプリ パッケージ アーキテクチャ: Arm と Arm64」を参照してください。

  • Arm デバイスからデバッグを開始する (F5) ときに、すべての Visual Studio プロジェクトがローカルでプロジェクトを起動するように構成されているわけではありません。 アプリがローカルで実行されている場合でも、リモート デバッグのために Visual Studio の構成が必要になる場合があります。 詳細については、「リモート デバッグ」を参照してください。

  • Visual Studio で推奨されるパッケージを見つけてインストールするには、Visual Studio のダウンロード ページにアクセスしてください。

    • Remote Tools for Visual Studio 2022 の場合は、[すべてのダウンロード] セクションの下にスクロールし、[Tools for Visual Studio 2022] ドロップダウン メニューを展開します。 Remote Tools for Visual Studio 2022 が一覧表示されます。 必ず [Arm64] ラジオ ボタンをチェックしてから、[ダウンロード] をクリックしてください。
    • Microsoft Visual C++ 再頒布可能パッケージの場合は、[すべてのダウンロード] セクションの下にスクロールし、[その他のツールとフレームワーク] ドロップダウン メニューを展開します。 Visual Studio 2022 の Microsoft Visual C++ 再頒布可能パッケージがそこに一覧表示されます。 必ず [Arm64] ラジオ ボタンをチェックしてから、[ダウンロード] をクリックしてください。
    • 古いバージョンの Visual Studio を使用している場合は、ページの下部にある [古いダウンロード] リンクを選択して、お使いのバージョンの Visual Studio に関連付けられているダウンロードを検索してください。
  • Microsoft Store から Arm デバイスにアプリをインストールすると、使用可能なアプリの最適なバージョンが自動的に選択されます。 x86、Arm32、Arm64 バージョンのアプリを Microsoft Store に申請すると、Arm64 バージョンのアプリが自動的にインストールされます。 x86 バージョンと Arm32 バージョンのアプリのみを申請すると、Arm32 バージョンがインストールされます。 アプリの x86 バージョンのみを申請すると、そのバージョンがインストールされ、エミュレーションの下で実行されます。

  • アプリ アーキテクチャを選択する場合は、32 ビット x86 バージョンを選択して、Arm PC 版 Windows でアプリの 32 ビット バージョンを実行します。 アプリの x64 Win32 バージョンが機能しない場合、ほとんどのアプリでは x86 バージョンが使用可能になります。

  • アーキテクチャの詳細については、「アプリ パッケージのアーキテクチャ」を参照してください。

App Assure Arm アドバイザー業務

Arm サポートを Windows アプリに追加するためのガイダンスでは、Arm に最適化されたバージョンのアプリを作成する方法について説明します。 App Assure Arm アドバイザー業務は、行き詰まった場合に役立ちます。 このサービスは、アプリは Arm 版 Windows で実行され、問題が発生した場合は Microsoft が修復を支援する、という Microsoft の既存の約束に加えられます。 詳細情報 を参照してください。

Windows Arm アドバイザー業務にサインアップします

その他のリソース

外部リソース