Die erste Version von Blink, einem leistungsstarken Emulator für x86-64-Systeme

Die erste bedeutende Veröffentlichung des Projekts Blink ist online. Blink entwickelt einen Emulator für x86-64-Prozessoren, der es ermöglicht, sowohl statisch als auch dynamisch kompilierte Linux-Anwendungen in einer virtuellen Maschine mit emuliertem Prozessor auszuführen. Mit Blink können für die x86-64-Architektur kompilierten Linux-Programme in anderen POSIX-kompatiblen Betriebssystemen (macOS, FreeBSD, NetBSD, OpenBSD, Cygwin) sowie auf Hardware mit anderen Architekturtypen (x86, ARM, RISC-V, MIPS, PowerPC, s390x) ausgeführt werden. Der Code des Projekts ist in der Programmiersprache C (ANSI C11) geschrieben und unter der ISC-Lizenz verfügbar. Es werden lediglich libc (POSIX.1-2017) als Abhängigkeit benötigt.

In seiner Funktionalität ähnelt Blink dem Befehl qemu-x86_64, zeichnet sich jedoch durch eine kompaktere Ausführung und eine deutliche Leistungssteigerung aus. Beispielsweise beträgt die Größe der ausführbaren Datei von Blink nur 221 KB (bei einer reduzierten Version — 115 KB) im Vergleich zu 4 MB bei qemu-x86_64, während Blink in einigen Tests, wie der Ausführung im GCC-Emulator und bei mathematischen Berechnungen, QEMU etwa doppelt so schnell übertrifft.

Um eine hohe Leistung zu gewährleisten, wird ein JIT-Compiler eingesetzt, der Quellbefehle zur Laufzeit in Maschinencode für die Zielplattform umwandelt. Der direkte Start in einem Emulator für ausführbare Dateien in den Formaten ELF, PE (Portable Executables) und bin (Flach ausführbar), die mit den Standard-C-Bibliotheken Cosmopolitan, Glibc und Musl erstellt wurden, wird unterstützt. Es wird eine integrierte Unterstützung für 180 Systemaufrufe von Linux sowie eine Emulation von etwa 600 Prozessoranweisungen x86 realisiert, die die Befehlssätze i8086, i386, SSE2, x86_64, SSE3, SSSE3, CLMUL, POPCNT, ADX, BMI2 (MULX, PDEP, PEXT), X87, RDRND, RDSEED und RDTSCP abdecken.

Zusätzlich wird auf Basis von Blink das Tool blinkenlights entwickelt, das eine Schnittstelle zur Visualisierung des Programmablaufs und zur Analyse des Speichers bereitstellt. Das Tool kann als Debugger verwendet werden, der den Modus der Rückwärts-Debugging unterstützt und es ermöglicht, in der Ausführungshistorie zurückzugehen und zu einem bereits ausgeführten Punkt zurückzukehren. Das Projekt wird von dem Autor solcher Entwicklungen wie der C-Bibliothek Cosmopolitan, dem Portierung des Isolationsmechanismus pledge für Linux und dem System universeller ausführbarer Dateien Redbean vorangetrieben.

Die erste Version von Blink, einem leistungsstarken Emulator für x86-64-Systeme


Quelle: opennet.ru
Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster