
これらのデバイスは一般的に薄型軽量のPCで、タブレットとしても簡単に使えます(Windows 11の新機能のデモはArmベースのSurface Pro X 2で行われました)。しかし、Windows on Armのコンセプトは、Snapdragon Armプロセッサ上で動作する「単なるWindows」という点にあります。バッテリー駆動時間が長くなるだけでなく、Windowsが通常行うすべての機能、つまりあらゆるソフトウェアの実行(Autopilotまたはグループポリシーによる展開、Microsoft Endpoint ManagerまたはConfiguration Managerによる管理、Windows Update for BusinessまたはWindows Software Update Servicesによる更新)も行えます。
マイクロソフトは昨年、Windows on Armの互換性の重要性を強調し、App AssureプログラムにWindows on Armを追加し、Insiderビルドで64ビットエミュレーションを有効化しました。しかし、Windows 11では、より多くの開発者にアプリをArmネイティブで動作するようにアップデートしてもらうことが求められています。特に、サードパーティ製のプラグインやアドオンが重要なアプリケーションにおいては、その傾向が顕著です。
参照:Windows 11 チートシート:知っておくべきことすべて(無料 PDF)(TechRepublic)
より元気なCHPE
Windows アプリを Arm にネイティブに移行するには、開発者は、Visual Studio、コンパイラー、フレームワーク (利用可能になりつつある) のサポートから、ネイティブ テスト用の安価な開発者用ハードウェア (Snapdragon 開発キットは今夏後半にリリース予定)、大規模なテスト用のクラウド VM (おそらく Windows Server Arm ビルドが必要で、いくつかのオープン ソース プロジェクトがまだ待機しているもの) まで、さまざまなツールが必要になります。
しかし、アプリケーション全体を一度に再コンパイルすることが常に可能であるとは限らず、コアアプリ以外にも考慮すべき点がある場合もあります。OfficeやPhotoshopなどのアプリケーションには、顧客にとってメインプログラムと同じくらい重要なサードパーティ製プラグインがあり、個々の開発者によってArmに移行されない可能性があります。
Windows 10 on Armは、CHPEと呼ばれるシステムを採用しています。これは、コンパイル済みハイブリッドポータブル実行ファイル(Hybrid Portable Executable File)です。これは、32ビットと64ビットのデータ型、そしてIntelとArmの規則を常に行き来することなく、x86コードから呼び出せるように特別にコンパイルされたARM64コードです。これにより優れたパフォーマンスが得られ、Armに移行していないプラグインでもArmに移行済みのアプリケーションで動作させることができます。しかし、CHPEの構築は複雑であり、Officeはこのテクノロジを採用していましたが、サードパーティの開発者には提供されていませんでした。また、CHPEはWindows on Armが当初サポートしていた32ビットエミュレーション向けに設計されていました。
Windows 11では、CHPEはARM64EC(エミュレーション互換)に置き換えられました。このARM64のスーパーセットにより、開発者はArmコードとIntelコード(今回は32ビットコードだけでなく64ビットコードも)を組み合わせることができるため、コードを少しずつ移植できます。必要なライブラリ、フレームワーク、その他の依存関係がARM64でまだ利用できない場合でも、すべてのコードをエミュレーションで実行する必要はありません。すべてのコードがネイティブ実行によるパフォーマンス向上を必要としているわけではありません。開発者は必要なコードの移植作業を行い、CPU負荷の低いコード(ユーザーインターフェイスなど)は、移植が必要になるまでエミュレーションで実行したままにしておくことができます。
しかし、大きな変化は、プラグインがARM64に移植されているかどうかにかかわらず、ARM64ECコードで動作するようになったことです。これはもはやOfficeに限定されません。Adobe、Corel、Autodeskなど、ユーザーが頼りにするサードパーティ製プラグインを備えたプログラムを開発しているソフトウェア開発者は、それらの追加機能を失うことなく、アプリをArm版Windowsに移植できるようになりました(そして、より柔軟性の高い新しいMicrosoft Storeにアプリを登録できます)。当初はVisual Studioのプレビュー版とVisual C++を使用する必要がありますが、Microsoftが詳細を文書化すれば、他のコンパイラもARM64ECをサポートできるようになります。
参照:Windows の進化:Windows 11 と Windows 10 の将来(TechRepublic)
ARM64ECコードを使用するアプリは、Windows上で特別な処理は行わず、通常のプログラムファイルとレジストリを使用します。また、Windows on ArmチームのPedro Justo氏がLinkedInに書いたように、「ARM64EC用にコンパイルされたコードはネイティブ速度で実行され、実質的に同じ効率性を維持します」。つまり、開発者はArmへの移植のメリットを失うことなく、既存のx86およびx64コードとの相互運用性という利便性を享受できるのです。
Office は、64 ビット ARM バージョンを CHPE から ARM64EC に切り替えて、x64 プラグインが動作するようになります。また、Windows 11 では、システム DLL に既に ARM64EC が使用されているため、エミュレーションで実行される x64 アプリは、ネイティブ速度で実行されるシステム コードを取得します。
(開発者ツールでこれらを見ると、ARM64EC ではなく ARM64X としてマークされています。これは、ARM64EC がその一部である、Windows on Arm の X64 エミュレーション システム全体を指していると考えられます。)
Snapdragon 835のサポート終了
この作業が Windows 10 Arm デバイスにどの程度適用されるかはまだ明らかではありませんが、ハイブリッド ARM64X DLL は 64 ビット エミュレーションを備えた Insider ビルドにすでに含まれています。ただ、Microsoft は Windows 11 の発表まで、その仕組みについてあまり説明していませんでした。
Windows on Armデバイスの大多数はWindows 11を実行できます。しかし、Microsoftは、PC Health Check互換性ツールのArmバージョンは提供しないと発表し、発売が近づくまで撤回しましたが、HP Envy x2などの最も初期のモデルはSnapdragon 835を使用していましたが、これはサポートされていないことがすでにわかっています。
これは、Windows 11 が現在 64 ビット オペレーティング システムのみになっているからではありません。32 ビット Arm サポートは、Arm PC 上の Windows ではなく Windows IoT 用であり、835 は ARM64 システムですが、エミュレーションと仮想化を高速化する Arm v8.1 命令の一部が含まれない、Arm システム アーキテクチャの以前のバージョン (v8.0) を備えています。
参照:写真:知っておくべきWindows 11の機能(TechRepublic)
ユーザー モードの ARM32 アプリは、Windows 11 でも引き続き実行されるはずです。ただし、エミュレーションで実行されていた一部の Microsoft アプリ (特に Teams と OneDrive) は、ネイティブ ARM64 アプリに移行しており、これにより、バッテリー寿命とパフォーマンスが向上します (また、Microsoft が実際に Windows on Arm に真剣に取り組んでいることも証明されます)。
Windows 10 はすでに Arm v8.1 のメモリ改善を利用して、Snapdragon 850 および 8cx デバイスでのエミュレーションを高速化していますが、複数の仮想化ベースのセキュリティ機能を有効にする Windows 11 で良好なパフォーマンスを得るには、Hyper-V のパフォーマンスを改善できることがますます重要になります。
これは、IntelのBridge Technology(旧称Houdini)をベースにしたWindows Subsystem for Androidなどの機能にも影響します。これは、Android Armアプリを(IntelおよびAMD上で)実行するためのバイナリトランスレータであり、Arm上のWindowsでx86アプリが実行される方法といくつかの点で似ています。Microsoftは、「このエクスペリエンスはプロセッサ間で機能する」ことを確認しており、Intel Bridge Technology自体は、IntelがArmに移植しない場合はエミュレーションで実行できます。ただし、Microsoftは、Windows 11 PCでのパフォーマンスを向上させるために、開発者にIntelバージョンのコードを含むAndroid APKをバンドルすることを推奨しており、WSA on ArmがそのAPKコードをエミュレーションで実行するのか、既存のArmアプリコードを読み込むだけなのかは明らかではありません。いずれにせよ、仮想化のパフォーマンスは優れたエクスペリエンスの鍵となります。
しかし、今のところ、Windows on Arm に使用されている Snapdragon プラットフォームのいずれも、ネストされた仮想化をサポートし、ポインター認証を追加して Windows シャドウ スタックが Intel CET 機能を使用して防御するような種類の Return-Oriented Programming 攻撃を防ぐ Arm v8.3 を実装していません。
おそらく Nuvia の買収により、Snapdragon はより新しい Arm 命令セットの実装を開始するでしょう。Arm v8.5 および 9 には重要なセキュリティ機能があり、また、より多くのアプリケーションに登場している機械学習モデルを高速化する命令もあります。
これは鶏が先か卵が先かという状況かもしれません。重要な64ビットWindowsアプリケーションが増え、理想的にはARM64ECによるネイティブパフォーマンスも実現できれば、Arm版WindowsはPCメーカーとデバイスを購入するユーザーにとってより魅力的なプラットフォームとなり、Qualcommはより優れたハードウェアオプションを提供するよう促されるでしょう。しかし、Windows Insiderの最初のビルドでは、既存のハードウェア上でもArm版Windowsのパフォーマンスがわずかながらも歓迎すべき向上を見せており、ネイティブアプリケーションやハイブリッドアプリケーションの増加に伴い、さらに向上していくでしょう。
TechRepublic アカデミーの以下のリソースを活用して、Windows 11 のインストールをさらに活用しましょう。
-
- Windows 11 の基本コース
- 究極の Windows 11 トレーニング ビデオ コース