Avalikustatud on esimene märkimisväärne Blink projekti väljaanne, mis arendab x86-64 protsessorite emulaatorit, võimaldades käitada staatiliselt ja dünaamiliselt kompileeritud Linuxi rakendusi virtuaalmasinas simuleeritud protsessori abil. Blinkiga kogutud x86-64 jaoks mõeldud Linuxi programmid saavad töötada ka teistes POSIX-ühilduvates operatsioonisüsteemides (macOS, FreeBSD, NetBSD, OpenBSD, Cygwin) ja seadmetes, millel on muu riistvara arhitektuur (x86, ARM, RISC-V, MIPS, PowerPC, s390x). Projekti kood on kirjutatud C keeles (ANSI C11) ja on saadaval ISC litsentsi all. Ainsaks sõltuvuseks on libc (POSIX.1-2017).
Funktsionaalsuse poolest sarnaneb Blink käsuga qemu-x86_64, kuid erineb QEMU-st kompaktsusega ja märkimisväärse jõudluse paranemisega. Näiteks Blink'i täitmisfail võtab vaid 221 KB (lühendatud versioon 115 KB) võrreldes 4 MB qemu-x86_64 puhul, ning jõudluses ületab QEMU-d mõnedes testides, nagu GCC emulaatori käitamine ja matemaatiliste operatsioonide täitmine, umbes kaks korda.
Suure jõudluse tagamiseks kasutatakse JIT-kompilaatorit, mis muudab lähtekoodi juhised masina koodiks sihtplatvormile reaalajas. Toetatakse otse käitamist emulaatoris täitmisfailidega, mis on salvestatud ELF, PE (Portable Executables) ja bin (Flat executable) formaatides, mis on kompileeritud standardsete C-rakenduste raamatukogudega Cosmopolitan, Glibc ja Musl. On rakendatud sisse ehitatud tugi 180 Linuxi süsteemikutsungile ja simuleeritud umbes 600 x86 protsessori instruktsiooni, katab instruktsioonikomplektid i8086, i386, SSE2, x86_64, SSE3, SSSE3, CLMUL, POPCNT, ADX, BMI2 (MULX, PDEP, PEXT), X87, RDRND, RDSEED ja RDTSCP.
Lisaks Blink'i baasil arendatakse tööriista blinkenlights, mis pakub liidese programmi täitmise visualiseerimiseks ja mälu sisu analüüsimiseks. Tööriista saab kasutada kui ka debugeerimist, mis toetab pöörd-debugimise režiimi ja võimaldab liikuda tagasi täitmise ajaloos ja naasta juba varem täidetud punkti juurde. Projekti arendab isik, kes on loonud selliseid arendusi nagu C-raamatukogu Cosmopolitan, Linuxi isoleerimismehhanismi pledge port ja universaalsete täitmisfailide süsteem Redbean.

Allikas: opennet.ru
