Erste Veröffentlichung von Blink, einem leistungsstarken x86-64-Emulator

Die erste bedeutende Veröffentlichung des Blink-Projekts wurde veröffentlicht und entwickelt einen x86-64-Prozessoremulator, der es Ihnen ermöglicht, statisch und dynamisch erstellte Linux-Anwendungen in einer virtuellen Maschine mit einem emulierten Prozessor auszuführen. Mit Blink können für die x86-64-Architektur kompilierte Linux-Programme auf anderen POSIX-kompatiblen Betriebssystemen (macOS, FreeBSD, NetBSD, OpenBSD, Cygwin) und auf Hardware mit anderen Hardwarearchitekturen (x86, ARM, RISC-V, MIPS) ausgeführt werden , PowerPC, s390x). Der Projektcode ist in C (ANSI C11) geschrieben und wird unter der ISC-Lizenz vertrieben. Von den Abhängigkeiten ist nur libc (POSIX.1-2017) erforderlich.

Von der Funktionalität her ähnelt Blink dem Befehl qemu-x86_64, unterscheidet sich von QEMU jedoch durch eine kompaktere Bauweise und einen deutlichen Leistungsschub. Beispielsweise benötigt die ausführbare Blink-Datei nur 221 KB (bei einem verkürzten Build – 115 KB) anstelle von 4 MB für qemu-x86_64, und im Hinblick auf die Leistung in einigen Tests, wie z. B. der Ausführung im GCC-Emulator und der Durchführung mathematischer Operationen, es überholt QEMU um etwa das Zweifache.

Um eine hohe Leistung zu gewährleisten, wird ein JIT-Compiler verwendet, der Quellanweisungen im laufenden Betrieb in Maschinencode für die Zielplattform umwandelt. Der direkte Start im Emulator von ausführbaren Dateien in den Formaten ELF, PE (Portable Executables) und bin (Flat Executable), kompiliert mit den Standard-C-Bibliotheken Cosmopolitan, Glibc und Musl, wird unterstützt. Implementierte native Unterstützung für 180 Linux-Systemaufrufe und Emulation von etwa 600 x86-Prozessoranweisungen für i8086, i386, SSE2, x86_64, SSE3, SSSE3, CLMUL, POPCNT, ADX, BMI2 (MULX, PDEP, PEXT), X87, RDRND, RDSEED Befehlssätze und RDTSCP.

Darüber hinaus wird auf Basis von Blink das Dienstprogramm blinkenlights entwickelt, das eine Schnittstelle zur Visualisierung der Programmausführung und zur Analyse des Speicherinhalts bereitstellt. Das Dienstprogramm kann als Debugger verwendet werden, der den Reverse-Debugging-Modus (Reverse-Debugging) unterstützt und es Ihnen ermöglicht, im Ausführungsverlauf zurückzugehen und zu einem zuvor ausgeführten Punkt zurückzukehren. Das Projekt wurde vom Autor von Entwicklungen wie der C-Bibliothek Cosmopolitan, einer Portierung des Pledge-Isolationsmechanismus für Linux und dem universellen ausführbaren Dateisystem Redbean entwickelt.

Erste Veröffentlichung von Blink, einem leistungsstarken x86-64-Emulator


Source: opennet.ru

Kommentar hinzufügen