Eerste release van Blink, een krachtige x86-64-emulator

De eerste belangrijke release van het Blink-project is gepubliceerd, waarbij een emulator van x86-64-processors wordt ontwikkeld waarmee je statisch en dynamisch gebouwde Linux-applicaties kunt uitvoeren op een virtuele machine met een geëmuleerde processor. Met Blink kunnen Linux-programma's die zijn gecompileerd voor de x86-64-architectuur worden uitgevoerd op andere POSIX-compatibele besturingssystemen (macOS, FreeBSD, NetBSD, OpenBSD, Cygwin) en op apparatuur met andere hardware-architecturen (x86, ARM, RISC-V, MIPS , PowerPC, s390x). De projectcode is geschreven in C-taal (ANSI C11) en wordt gedistribueerd onder de ISC-licentie. Van de afhankelijkheden is alleen libc (POSIX.1-2017) vereist.

Qua functionaliteit is Blink vergelijkbaar met de opdracht qemu-x86_64, maar verschilt van QEMU door het compactere ontwerp en de aanzienlijke prestatieverbetering. Het uitvoerbare bestand Blink neemt bijvoorbeeld slechts 221 KB in beslag (met een uitgeklede build - 115 KB) in plaats van 4 MB voor qemu-x86_64, en in sommige tests, zoals het uitvoeren van de GCC-emulator en het uitvoeren van wiskundige bewerkingen, presteert het beter dan QEMU ongeveer twee keer zo groot.

Om hoge prestaties te garanderen, wordt een JIT-compiler gebruikt, die broninstructies on-the-fly omzet in machinecode voor het doelplatform. De emulator ondersteunt de directe lancering van uitvoerbare bestanden in de formaten ELF, PE (Portable Executables) en bin (Flat executable), gecompileerd met de standaard C-bibliotheken Cosmopolitan, Glibc en Musl. Ingebouwde ondersteuning voor 180 Linux-systeemaanroepen en emulatie van ongeveer 600 x86-processorinstructies voor i8086, i386, SSE2, x86_64, SSE3, SSSE3, CLMUL, POPCNT, ADX, BMI2 (MULX, PDEP, PEXT), X87, RDRND, RDSEED instructiesets en RDTSCP.

Bovendien wordt op basis van Blink het hulpprogramma blinkenlights ontwikkeld, dat een interface biedt voor het visualiseren van de voortgang van de programma-uitvoering en het analyseren van de inhoud van het geheugen. Het hulpprogramma kan worden gebruikt als debugger die de reverse-debugging-modus ondersteunt en u in staat stelt terug te gaan in de uitvoeringsgeschiedenis en terug te keren naar een eerder uitgevoerd punt. Het project is ontwikkeld door de auteur van ontwikkelingen als de Cosmopolitan C-bibliotheek, een poort van het belofte-isolatiemechanisme voor Linux en het universele uitvoerbare bestandssysteem Redbean.

Eerste release van Blink, een krachtige x86-64-emulator


Bron: opennet.ru

Voeg een reactie