Den første betydelige udgivelse af projektet Blink er offentliggjort. Det udvikler en emulator for x86-64 processorer, som gør det muligt at køre både statisk og dynamisk kompilerede Linux-applikationer i en virtuel maskine med en simuleret processor. Med Blink kan Linux-programmer, der er kompileret til x86-64 arkitekturen, køre på andre POSIX-kompatible operativsystemer (macOS, FreeBSD, NetBSD, OpenBSD, Cygwin) og på hardware med en anden arkitektur (x86, ARM, RISC-V, MIPS, PowerPC, s390x). Koden for projektet er skrevet i C (ANSI C11) og distribueres under ISC-licensen. Den eneste afhængighed er libc (POSIX.1-2017).
Blink minder funktionelt om kommandoen qemu-x86_64, men adskiller sig fra QEMU ved en mere kompakt implementation og en betydelig stigning i ydeevnen. For eksempel fylder den eksekverbare fil Blink kun 221 KB (ved en reduceret version — 115 KB) i stedet for 4 MB for qemu-x86_64, og den overhaler QEMU med cirka det dobbelte i nogle tests, såsom kørsel i emuleret GCC og udførelse af matematiske operationer.
For at sikre høj ydeevne anvendes en JIT-kompilator, der on-the-fly konverterer kildetekst instruktioner til maskinkode for måleplatformen. Der understøttes direkte kørsel af eksekverbare filer i formaterne ELF, PE (Portable Executables) og bin (Flat executable), som er kompileret med standard C-bibliotekerne Cosmopolitan, Glibc og Musl. Der er implementeret indbygget support for 180 Linux-systemopkald og emulering af omkring 600 x86 processorinstruktioner, der dækker sæt af instruktioner i8086, i386, SSE2, x86_64, SSE3, SSSE3, CLMUL, POPCNT, ADX, BMI2 (MULX, PDEP, PEXT), X87, RDRND, RDSEED og RDTSCP.
Derudover udvikles værktøjet blinkenlights på basis af Blink, som tilbyder en grænseflade til visualisering af programudførelsen og analyse af hukommelsesindholdet. Værktøjet kan bruges som en debugger, der understøtter omvendt debugging (Reverse-Debugging) og lader brugeren bevæge sig tilbage i udførelseshistorikken og vende tilbage til et tidligere punkt. Projektet er udviklet af skaberen af sådanne udviklinger som C-biblioteket Cosmopolitan, porten af isoleringsmekanismen pledge til Linux og systemet for universelle eksekverbare filer Redbean.

Kilde: opennet.ru
