高性能 x86-64 エミュレータである Blink の最初のリリース

Blink プロジェクトの最初の重要なリリースが公開され、エミュレートされたプロセッサを備えた仮想マシンで静的および動的に構築された Linux アプリケーションを実行できるようにする x86-64 プロセッサのエミュレータを開発しました。 Blink を使用すると、x86-64 アーキテクチャ用にコンパイルされた Linux プログラムを、他の POSIX 互換オペレーティング システム (macOS、FreeBSD、NetBSD、OpenBSD、Cygwin) や他のハードウェア アーキテクチャ (x86、ARM、RISC-V、MIPS) の機器上で実行できます。 、PowerPC、s390x)。 プロジェクト コードは C 言語 (ANSI C11) で書かれており、ISC ライセンスに基づいて配布されます。 依存関係のうち、libc (POSIX.1-2017) のみが必要です。

機能の点では、Blink は qemu-x86_64 コマンドに似ていますが、よりコンパクトな設計と大幅なパフォーマンス向上という点で QEMU とは異なります。 たとえば、Blink 実行可能ファイルは、qemu-x221_115 の 4 MB に対して、わずか 86 KB (必要最小限のビルドでは 64 KB) を使用し、GCC エミュレータでの実行や数学的演算の実行などの一部のテストでは、パフォーマンスを上回ります。 QEMU は約 XNUMX 倍です。

高いパフォーマンスを確保するために、ソース命令をオンザフライでターゲット プラットフォーム用のマシン コードに変換する JIT コンパイラーが使用されます。 エミュレータは、標準 C ライブラリ Cosmopolitan、Glibc、および Musl でコンパイルされた、ELF、PE (Portable Executable)、および bin (Flat executable) 形式の実行可能ファイルの直接起動をサポートします。 180 の Linux システム コールと、i600、i86、SSE8086、x386_2、SSE86、SSSE64、CLMUL、POPCNT、ADX、BMI3 (MULX、PDEP、PEXT)、X3、RDRND、RDSEED をカバーする約 2 の x87 プロセッサ命令のエミュレーションの組み込みサポート命令セットと RDTSCP。

さらに、Blink に基づいて、プログラムの実行の進行状況を視覚化し、メモリの内容を分析するためのインターフェイスを提供する、blinkenlights ユーティリティが開発されています。 このユーティリティは、リバース デバッグ モードをサポートするデバッガとして使用でき、実行履歴を遡って以前に実行したポイントに戻ることができます。 このプロジェクトは、Linux 用のプレッジ分離メカニズムのポートである Cosmopolitan C ライブラリや Redbean ユニバーサル実行可能ファイル システムなどの開発者によって開発されました。

高性能 x86-64 エミュレータである Blink の最初のリリース


出所: オープンネット.ru

コメントを追加します