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 では、Arm デバイスで変更されていない x64 Windows アプリを実行する機能が追加されました。 Arm デバイスで x86 アプリと x64 アプリを実行するこの機能により、既存のアプリやツールの大部分が新しい Arm 搭載デバイスでも適切に動作することをエンドユーザーが確信できます。
パフォーマンス、応答性、バッテリーの寿命を最大限に高めるために、ユーザーには Arm ネイティブ Windows アプリが必要です。つまり、開発者は Arm ネイティブ Windows アプリをビルドまたは移植する必要があります。
Arm: Windows on Arm Ready Software でアプリがサポートされているかどうかを確認します。 このサイトは、Arm アーキテクチャで実行され、アクティブに保守されている Windows デバイス上の多くのアプリやゲームの互換性情報のソースです。
Virtual Machines
Ampere Altra Arm ベースのプロセッサを使用して、Windows 11 Arm64 VM を作成して Azure にデプロイできます。 このクイックスタート記事では、その方法について説明します。
以下の Arm版 Windows 仮想マシンについて詳しく説明します
- Arm 版 Windows 仮想マシンに関してよくあるご質問
- Azure Virtual Machines と Ampere Altra Arm ベースのプロセッサ—一般提供
- Terraform を使用して Arm ベースの Azure Kubernetes Service (AKS) クラスターを展開する - ARM Developer Hub
- Azure DevOps や GitHub など、クラウドでホストされている継続的インテグレーション/継続的展開 (CI/CD) を使用した自動化のビルドとテストの詳細について説明します。
Arm 開発者デバイス
Windows で Arm ネイティブ アプリをビルドしてテストする開発者には、これまで以上に多くのオプションがあります。
Copilot+ PC は 、さまざまなデバイスメーカーを通じてニューラル処理装置 (NPU) と最新の AI 機能とコンピューティング能力を提供します。 これらの PC の多くは Arm ベースの Snapdragon® X シリーズ プロセッサを使用しており、45 兆操作/秒 (TOPS) を提供します。
Windows Dev Kit 2023 (コード名 "Project Volterra") は購入できなくなりましたが、アプリとエクスペリエンスへの AI の統合に関する Windows 開発、AI 調査、テストをサポートする実行可能な Arm ベースのデバイスです。
既存の Arm 版 Windows アプリをサポートする
Arm 上の Windows では、ネイティブ Arm アプリと、多くの変更されていない x86 および x64 アプリが実行されます。 最高のパフォーマンスとバッテリー寿命を得るために、可能な限り Arm ネイティブにアプリを構築します。 ネイティブ C/C++ Win32 アプリ、従来の .NET Framework WinForms/WPF アプリ、最新の .NET または MAUI アプリ、Java、Python、Node.jsなどを使用して構築されたアプリなど、さまざまなツールとテクノロジを使用して Windows アプリを構築できます。
Arm 開発用のツールを見つける
Microsoft は、x64 をターゲットとするときと同じように、Windows ARM 搭載デバイスをネイティブにターゲットとするアプリをビルドおよび移植するために、Arm ネイティブ開発者ツールセットの更新プログラムを継続的に提供しています。 Arm での、Arm 向けアプリ開発のサポート。
- Arm ネイティブ Visual Studio には 、Visual C++、 .NET、.NET Framework、 Java が含まれており、開発者は Arm ベースのデバイスで Arm アプリをネイティブにビルドおよびデバッグできます。 詳細情報: Arm64 Visual Studio が正式に公開されました (2022 年 11 月)、Visual Studio 2022 17.7 の MSVC ARM64 最適化 (2023 年 9 月)。
- Visual Studio Code は Arm をネイティブにサポートしており、Arm デバイスにインストールできます。 VS Code C++ 拡張機能では、Arm64 デバイスでネイティブに実行される Windows アプリを開発するための C++ IntelliSense とビルドのサポートも提供されます。
- .NET 6+ では既に Arm がサポートされています (ネイティブの Arm 実行と x64 エミュレーションの両方とも)。 Arm64 デバイスでネイティブに実行される .NET アプリを開発するには、新しい Arm ネイティブ Visual Studio 2022 17.4 と .NET 8 Arm64 SDK をインストールします。 Armの .NET 8 サポートと Arm64 のパフォーマンス向上の詳細については、.NETブログ: .NET 8 での Arm64 のパフォーマンス向上 (2023 年 10 月) を参照してください。
-
.NET 6 Arm64 SDK: 既定では、Arm64 SDK を使用して .NET 6 アプリを
dotnet runすると、Arm64 として実行されます。dotnet-runtimeinfoツールを使用して、.NET が実行されている環境を検出します。 詳細については、Arm64 サポートに関する .NET 6 のブログ発表を参照してください。 - VC++ ツールチェーン (Arm Developer) は、Arm によって生成された Arm アーキテクチャ リリース用の GNU ツールチェーンです。これにより、パートナー、開発者、コミュニティは、最近の Arm アーキテクチャやオープンソース プロジェクトの GCC、Binutils、glibc、Newlib、GDB の新機能を使用できます。
- OpenJDK での Arm 向け Java サポート: Arm 版 Windows 用 OpenJDK の発表 (2020 年 6 月)
- GitHub Actions: GitHub Actions は、GitHub の CI/CD ワークフロー エンジンであり、多くの開発者のワークフローに不可欠な要素です。 このツールを使用して、アプリを継続的にビルド、テスト、デプロイします。 GitHub Actions は、Windows on Arm で 2 種類の選択肢として利用可能になりました。 Arm VM または Arm デバイスでホストできるセルフホステッド ランナー、および 2。 GitHub でホストされているランナー (現在はプライベート ベータ版で利用可能ですが、一般リリースは近日公開予定です)。
- Docker Desktop: コンテナーは、合理化された開発ワークフロー、分離とセキュリティ、効率的なリソース使用率、移植性、再現性など、さまざまな理由で一般的なデプロイ ターゲットです。 Docker デスクトップは、Arm 上の Windows でネイティブに実行されるようになりました。
Note
Arm という用語は、Arm64 (AArch64 とも呼ばれます) プロセッサで Windows のデスクトップ バージョンを実行する PC の短縮形です。 Arm32 という用語は、32 ビット Arm アーキテクチャの短縮形です (他のドキュメントでは一般的に Arm と呼ばれます)。 また、Arm 搭載 PC にはアプリケーションの互換性が十分に備わっており、変更されていない既存の x86 win32 アプリケーションを実行できます。 Arm アプリはエミュレーションされずにネイティブで実行されますが、x86 および x64 アプリはエミュレーション下で実行されます。
Arm64EC - Windows アプリを Arm 上で実行できるように更新するためのヘルプ
Arm64EC ("エミュレーション互換") を使用すると、完全に移行されるまで既存の x64 コードとライブラリを利用しながら、新しいアプリを段階的に構築したり、既存のアプリを移植して可能な限りネイティブ Arm のパフォーマンスを活用したりできます。 詳細情報:
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] ドロップダウン メニューを展開します。 Visual Studio 2022 用リモート ツール が一覧表示されます。 必ず [Arm64] ラジオ ボタンをチェックしてから、[ダウンロード] をクリックしてください。
- Microsoft Visual C++ 再頒布可能パッケージの場合は、[すべてのダウンロード] セクションの下にスクロールし、[その他のツールとフレームワーク] ドロップダウン メニューを展開します。 Visual Studio 2022 用の Microsoft Visual C++ 再頒布可能パッケージ が一覧表示されます。 必ず [Arm64] ラジオ ボタンをチェックしてから、[ダウンロード] をクリックしてください。
- 以前のバージョンの Visual Studio を使用している場合は、ページの下部にある [古いダウンロード ] リンクを選択して、お使いのバージョンの Visual Studio に関連付けられているダウンロードを検索します。
ユーザーが Microsoft Store から Arm デバイスにアプリをインストールすると、使用可能なアプリの最適なバージョンが Windows 11 によって自動的に選択されます。 x86、Arm32、Arm64 のバージョンのアプリを Microsoft Store に提出すると、オペレーティング システムによって Arm64 バージョンのアプリが自動的にインストールされます。 アプリの x86 バージョンと Arm32 バージョンのみを提出した場合、オペレーティング システムによって Arm32 バージョンがインストールされます。 アプリの x86 バージョンのみを送信した場合、オペレーティング システムはそのバージョンをインストールし、エミュレーションで実行します。
アプリ アーキテクチャを選択する場合は、32 ビット x86 バージョンを選択して、Arm PC 版 Windows でアプリの 32 ビット バージョンを実行します。 アプリの x64 Win32 バージョンが機能しない場合、ほとんどのアプリでは x86 バージョンを使用できます。
アーキテクチャの詳細については、「アプリ パッケージのアーキテクチャ」を参照してください。
App Assure Arm アドバイザー業務
Windows アプリに Arm サポートを追加するためのガイダンスでは、Arm 最適化バージョンのアプリを作成する方法について説明します。 App Assure Arm アドバイザー業務は、行き詰まった場合に役立ちます。 このサービスは、Microsoft の既存の約束に加えて、アプリは Windows on Arm で実行され、問題が発生した場合は Microsoft が修復を支援します。 詳細情報 を参照してください。
Windows Arm アドバイザー業務にサインアップします。
その他のリソース
- 「Project Volterra」を発表する Satya Nadella のビルド 2022 基調講演
- Arm での x86 エミュレーションのしくみ
- x86 デスクトップ アプリのトラブルシューティング
- Arm UWP アプリのトラブルシューティング
- プログラム互換性のトラブルシューティング ツール (Arm)
- WDK を使用した Arm64 ドライバーのビルド: Arm64 ドライバーをビルドする手順。
- Arm の x86 アプリのデバッグ | Arm での x86 アプリのデバッグに関するガイダンス。
- ビデオ: Arm64 Win32 C++ アプリのビルド
- 開発者向け Arm 版 Windows 10 (Microsoft Build 2018 ビデオ プレゼンテーション)
- ブログ: Arm 開発用 Windows 10 のサポートの元のお知らせ
- バグを報告する
外部リソース
Windows on Arm