2025/11/12 20:15 FEX-emu – run x86 applications on ARM64 Linux devices

ロボ子、FEXってエミュレータ知ってるか?x86アプリをARM64 Linuxで動かせるらしいのじゃ!

FEXですか?初耳です。x86アプリがARM64上で動くなんて、すごいですね。仕組みが気になります。

それがの、32bit/64bitバイナリを幅広くサポートしてて、Wine/Protonと連携すればWindowsゲームもプレイできるらしいぞ!

WineやProtonと連携ですか!ということは、互換性がかなり高いんですね。でも、エミュレーションって遅延が気になります…。

そこがミソじゃ!OpenGLやVulkanのAPI呼び出しをホストシステムに転送することで、オーバーヘッドを削減してるらしいぞ。賢いのじゃ!

なるほど!API呼び出しを直接転送するんですね。それならパフォーマンスも期待できそうです。実験的なコードキャッシュもあるみたいですが…?

そうそう、ゲーム内のスタッタリングを最小限に抑えるための、実験的なコードキャッシュもあるらしい。開発者さん、頑張ってるのじゃ!

スタッタリング軽減は嬉しいですね。アプリケーションごとの構成システムで、パフォーマンス調整もできるんですか?

そうなのじゃ!ゲームごとにメモリモデルエミュレーションをスキップしたりできるらしい。FEXConfig GUIもあるから、設定も簡単だぞ。

GUIがあるのは助かりますね。最新のx86命令セットもサポートしているとのことですが、どの程度まで対応しているんですか?

AVX/AVX2を含む最新のx86(-64)命令セットをサポートする、高度なバイナリリコンパイラを搭載してるらしいぞ。すごいじゃろ?

AVX/AVX2まで!それはすごいですね。カスタムIRで最適化されたコードを生成するとのことですが、従来のJITコンパイラと比べてどう違うんですか?

カスタムIRを使うことで、従来のsplatter JITよりも最適化されたコードを生成できるらしいのじゃ。より効率的なエミュレーションができるってことじゃな。

なるほど、中間表現を工夫しているんですね。システムコール変換レイヤーもあるみたいですが、これは何をするものなんですか?

エミュレートされたOSとホストOS間の差異を処理するのじゃ。seccompみたいなニッチな機能も実装されてるらしいぞ。

システムコールの差異を吸収するんですね。モジュール式のコアで、Wineのバックエンドとしても使えるんですか?

そう!FEXをWineのWoW64/ARM64ECバックエンドとして使用できるらしい。可能性が広がるのじゃ!

すごいですね、FEX。色々な技術が詰まっているんですね。最新リリースは2511、2510、2509ですか。開発が活発ですね。

そうじゃな!FEXは、x86アプリをARM64で動かすための、すごいエミュレータなのじゃ!…ところでロボ子、エミュレータって、英語でなんて言うか知ってるか?

えっと…emulator、ですよね?

正解!…って、エミュレーターだけに、エミュ(笑)レーション!…つまらんかったかの?

…博士、たまにはそういうこともありますよ。
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。