Första utgåvan av Blink, en högpresterande x86-64-emulator

Den första betydande utgåvan av Blink-projektet har publicerats, som utvecklar en emulator av x86-64-processorer som låter dig köra statiskt och dynamiskt byggda Linux-applikationer i en virtuell maskin med en emulerad processor. Med Blink kan Linux-program kompilerade för x86-64-arkitekturen köras på andra POSIX-kompatibla operativsystem (macOS, FreeBSD, NetBSD, OpenBSD, Cygwin) och på utrustning med andra hårdvaruarkitekturer (x86, ARM, RISC-V, MIPS , PowerPC, s390x). Projektkoden är skriven på C-språk (ANSI C11) och distribueras under ISC-licensen. Av beroenden krävs endast libc (POSIX.1-2017).

När det gäller funktionalitet liknar Blink kommandot qemu-x86_64, men skiljer sig från QEMU i sin mer kompakta design och betydande prestandaökning. Till exempel tar den körbara Blink-filen bara upp 221 KB (med en avskalad build - 115 KB) istället för 4 MB för qemu-x86_64, och i vissa tester, som att köra i GCC-emulatorn och utföra matematiska operationer, överträffar den QEMU ungefär två gånger.

För att säkerställa hög prestanda används en JIT-kompilator, som konverterar källinstruktioner i farten till maskinkod för målplattformen. Emulatorn stöder direktstart av körbara filer i formaten ELF, PE (Portable Executables) och bin (Flat executable), kompilerade med standard C-biblioteken Cosmopolitan, Glibc och Musl. Inbyggt stöd för 180 Linux-systemanrop och emulering av cirka 600 x86-processorinstruktioner som täcker i8086, i386, SSE2, x86_64, SSE3, SSSE3, CLMUL, POPCNT, ADX, BMI2 (MULX, PDEP, PEXT), X87, RDRND, SSSEXNUMX instruktionsuppsättningar och RDTSCP.

Dessutom, baserat på Blink, utvecklas verktyget blinkenlights, som tillhandahåller ett gränssnitt för att visualisera hur programmet körs och analysera innehållet i minnet. Verktyget kan användas som en debugger som stöder omvänt felsökningsläge och låter dig gå tillbaka i exekveringshistoriken och återgå till en tidigare exekverad punkt. Projektet är utvecklat av författaren till sådana utvecklingar som Cosmopolitan C-biblioteket, en port för pantisoleringsmekanismen för Linux och Redbeans universella körbara filsystem.

Första utgåvan av Blink, en högpresterande x86-64-emulator


Källa: opennet.ru

Lägg en kommentar