開発者が、依存ライブラリを一切使わずにRustでARMv7エミュレータ「stinkarm」を実装しました。コード量は1,300行です。
このツールは、32ビットARMバイナリの解析と検証、セグメントのマッピング、およびARM命令の一部のデコードを行います。ゲストとホスト間のメモリ操作を翻訳し、ARM Linuxのシステムコールをx86-64 System V仕様へ変換して転送します。
実行性能について、ARMv7のhello worldバイナリを起動するのに1.9msかかりました。初期化処理を除いたエミュレーション自体は0.015msです。同じ処理をQEMUで行うと12.3ms必要となるため、stinkarmはQEMUより速い動作を示しています。
開発者は、ELF形式やARM命令エンコーディングの理解を目的に作成したと述べています。また、現在設計中のプログラミング言語のJITコンパイラ開発にも役立てることを目指しています。
出典: Building a Minimal Viable Armv7 Emulator from Scratch(HN 75pt・21コメント)(HN Search (backfill)、2025-11-21)