Den första betydande utgÄvan av Blink-projektet har publicerats, som utvecklar en emulator för x86-64-processorer, vilket möjliggör körning av bÄde statiskt och dynamiskt sammanstÀllda Linux-applikationer i en virtuell maskin med en emulerad processor. Med Blink kan program som har sammanstÀllts för x86-64-arkitekturen köras pÄ andra POSIX-kompatibla operativsystem (macOS, FreeBSD, NetBSD, OpenBSD, Cygwin) och pÄ hÄrdvara med en annan arkitektur (x86, ARM, RISC-V, MIPS, PowerPC, s390x). Koden för projektet Àr skriven i C-sprÄket (ANSI C11) och distribueras under ISC-licensen. Endast libc (POSIX.1-2017) krÀvs som beroende.
NĂ€r det gĂ€ller funktionalitet liknar Blink kommandot qemu-x86_64, men det skiljer sig frĂ„n QEMU genom sin mer kompakta implementation och en betydande prestandaförbĂ€ttring. Till exempel tar Blink-exekverbara fil endast 221 KB (vid en komprimerad bygg â 115 KB) istĂ€llet för 4 MB för qemu-x86_64, och i vissa tester, som körning av GCC i emulatorn och utförande av matematiska operationer, övertrĂ€ffar det QEMU med ungefĂ€r dubbelt sĂ„ mycket.
För att sÀkerstÀlla hög prestanda anvÀnds en JIT-kompilator som omvandlar kÀllinstruktioner i realtid till maskinkod för mÄldatorn. Direkt körning av exekverbara filer i formaten ELF, PE (Portable Executables) och bin (Flat executable), som har sammanstÀllts med standard C-bibliotek som Cosmopolitan, Glibc och Musl, stöds. Inbyggt stöd för 180 systemanrop frÄn Linux och emulering av ungefÀr 600 x86-processorinstruktioner har implementerats, vilka tÀcker instruktioner frÄn i8086, i386, SSE2, x86_64, SSE3, SSSE3, CLMUL, POPCNT, ADX, BMI2 (MULX, PDEP, PEXT), X87, RDRND, RDSEED och RDTSCP.
Dessutom utvecklas ett verktyg, blinkenlights, baserat pÄ Blink, som erbjuder ett grÀnssnitt för att visualisera programmets körning och analysera minnesinnehÄll. Verktyget kan anvÀndas som en debugger som stöder omvÀnd avlÀsning (Reverse-Debugging) och gör det möjligt att gÄ tillbaka i exekveringshistorien och ÄtervÀnda till tidigare utförda punkter. Projektet utvecklas av skaparen av sÄdana utvecklingar som C-biblioteket Cosmopolitan, porteringen av isoleringsmekanismen pledge för Linux och systemet för universella exekverbara filer Redbean.

KĂ€lla: opennet.ru
