富士通クライアントコンピューティング(FCCL)として初めてArmアーキテクチャを採用したPC「FMV Note U(FMV UQ-L1)」が登場した。本記事では、気になるアプリの互換性についてチェックする。
Arm版Windows 11におけるアプリの互換性
ArmアーキテクチャのCPU(SoC)を搭載するWindows PCは、従来のx86アーキテクチャのCPUを搭載するWindows PCとは互換性が全くない。アプリも同様で、ArmアーキテクチャのWindows PCではArmアーキテクチャの32bit/64bitアプリを利用するのが原則だ。
しかし、世の中のWindowsアプリの多くはx86アーキテクチャの32bit/64bitアプリである。特に個人制作、あるいは企業が内部利用のために開発したアプリだとArmアーキテクチャに対応していないことも珍しくない。「パッと見は同じなのに、アプリが全く動かない」と困窮してしまうだろう。
そこでMicrosoftは、Arm版Windows 11にx86アーキテクチャ向け32bit/64bitアプリのエミュレーション環境を搭載しており、多くのx86アプリが問題なく動作可能だ。このエミュレーション機能は「Prism」と呼ばれ、リアルタイムにエミュレーションする「ジャストインタイムコンパイル」方式を取っている。そのため、アプリやサブプログラムの初回実行時に待たされることはない。ただし、x86アーキテクチャPCで実行する時と比べると応答が若干遅くなることはあるが、違和感を覚えるレベルではない。
ごく一部の例外(後述)を除けば、全く「普通」に使える。
タスクマネージャーの「詳細」タブで確認
タスクマネージャーの詳細タブでは、Armネイティブプロセスは「ARM64」「ARM32」、x86エミュレーションプロセスは「x86」「x64」と表示される(x86は32bit、x64は64bitのエミュレーションを意味する)。
なお、Microsoftでは「Arm64EC」という仕組みを用意している(ECは「Emulation Compatible」の略)。Arm64ECで構成されたコードは、Arm64のネイティブコードとx64(64bitのx86)のネイティブコードが「混在」しており、「アプリの主要部分はArmネイティブで、プラグイン(アドオン)機能はx86エミュレーションで」という動かし方ができる。
プログラマーにとって、いきなりArmネイティブのアプリを作るのは難しいこともある。Arm64ECを使うと「x64コードを順次Arm64コードに置き換えていく」ことが可能なので、徐々にArmアーキテクチャへの移行を図ることができる。Arm64ECで構成されたプログラムによるプロセスは、タスクマネージャーの詳細タブで「ARM64 (x64互換)」と表示される。現行の「Microsoft Office」アプリはArm64ECで構成されている。
プリインストールアプリは一部を除き「x64」のまま
国内メーカーのコンシューマー向けPCはプリインストールアプリが多い――そういうイメージを持っている人も多いと思う。しかし、FMV UQ-L1に限って言えば他のFMV Note Uシリーズと比べるとシンプルで、FCCLオリジナルアプリは以下のものに限られる。
- はじめに行う設定(初期設定のヘルパー)
- FMVアドバイザー(PCのサポート/サービス情報)
- Float Access(画面に常駐するフロートメニュー)
このようにアプリ数が絞られているのは、恐らくArmアーキテクチャゆえだと思われるが、「プリインストールアプリは少なければ少ないほどいい」と考えている人にはむしろ好都合だ。なお、これらのアプリはx64コードで構成されているが、本製品で問題なく動作する。
他のFMV Note Uと比べると、そもそものプリインストールアプリが少ないこともFMV UQ-L1の特徴だ。「Microsoft 365 Personal(24か月版)/Office Home & Business 2024オプション付」以外のプリインストールアプリはこれだけである。FMVアドバイザーを含め、FCCL純正アプリはx64コードで構成されている。なお、デバイスドライバ類は当たり前だがArm64ネイティブである。
多くのアプリは適応だが、課題もある
実際に使用してみると、多くのアプリは問題なく動作する。ただし、一部のアプリではエミュレーションによるパフォーマンス低下や、Armネイティブ対応が必要なアプリで互換性の問題が発生する場合もある。例えば、特定のハードウェアに依存するアプリや、古い32bitアプリでは動作しないケースが報告されている。
総じて、Arm版Windows 11はx86アプリのエミュレーションにより、日常的な用途では「普通」に使えるレベルにある。しかし、特殊なアプリや高度な処理を必要とする場合には、事前の互換性確認が推奨される。



