Første utgivelse av Blink, en x86-64-emulator med høy ytelse

Den første betydelige utgivelsen av Blink-prosjektet har blitt publisert, og utvikler en emulator av x86-64-prosessorer som lar deg kjøre statisk og dynamisk bygde Linux-applikasjoner i en virtuell maskin med en emulert prosessor. Med Blink kan Linux-programmer kompilert for x86-64-arkitekturen kjøres på andre POSIX-kompatible operativsystemer (macOS, FreeBSD, NetBSD, OpenBSD, Cygwin) og på utstyr med andre maskinvarearkitekturer (x86, ARM, RISC-V, MIPS , PowerPC, s390x). Prosjektkoden er skrevet på C-språk (ANSI C11) og distribueres under ISC-lisensen. Av avhengighetene er det bare libc (POSIX.1-2017) som kreves.

Når det gjelder funksjonalitet, ligner Blink på kommandoen qemu-x86_64, men skiller seg fra QEMU i sin mer kompakte design og betydelige ytelsesøkning. For eksempel tar den kjørbare Blink bare 221 KB (med en nedstrippet build - 115 KB) i stedet for 4 MB for qemu-x86_64, og i noen tester, som å kjøre i GCC-emulatoren og utføre matematiske operasjoner, overgår den QEMU med omtrent to ganger.

For å sikre høy ytelse brukes en JIT-kompilator, som konverterer kildeinstruksjoner i farten til maskinkode for målplattformen. Emulatoren støtter direkte lansering av kjørbare filer i formatene ELF, PE (Portable Executables) og bin (Flat executable), kompilert med standard C-bibliotekene Cosmopolitan, Glibc og Musl. Innebygd støtte for 180 Linux-systemanrop og emulering av ca. 600 x86-prosessorinstruksjoner som dekker i8086, i386, SSE2, x86_64, SSE3, SSSE3, CLMUL, POPCNT, ADX, BMI2 (MULX, PDEP, PEXT), X87, RDSEDDRND, instruksjonssett og RDTSCP.

I tillegg, basert på Blink, utvikles blinkenlights-verktøyet, som gir et grensesnitt for å visualisere fremdriften av programkjøring og analysere innholdet i minnet. Verktøyet kan brukes som en debugger som støtter omvendt feilsøkingsmodus og lar deg gå tilbake i utførelseshistorikken og gå tilbake til et tidligere utført punkt. Prosjektet er utviklet av forfatteren av slike utviklinger som Cosmopolitan C-biblioteket, en port for panteisolasjonsmekanismen for Linux og Redbean universelle kjørbare filsystem.

Første utgivelse av Blink, en x86-64-emulator med høy ytelse


Kilde: opennet.ru

Legg til en kommentar