Objavljeno je prvo značajno izdanje Blink projekta. U njemu se razvija emulator x86-64 procesora koji omogućava pokretanje statički i dinamički kompajliranih programa. Linux- aplikacije u virtuelnoj mašini sa emuliranim procesorom. Izrađeno za x86-64 arhitekturu korištenjem Blink-a Linux- programi se mogu pokretati i na drugim POSIX kompatibilnim operativnim sistemima (macOS, FreeBSD, NetBSD, OpenBSD, Cygwin) i na hardveru s drugim arhitekturama (x86, ARM, RISC-V, MIPS, PowerPC, s390x). Kod projekta je napisan u C-u (ANSI C11) i distribuira se pod ISC licencom. Jedina potrebna zavisnost je libc (POSIX.1-2017).
U pogledu funkcionalnosti, Blink je sličan komandi qemu-x86_64, ali se razlikuje od QEMU-a po svom kompaktnijem dizajnu i značajnom povećanju performansi. Na primjer, izvršna datoteka Blink zauzima samo 221 KB (sa smanjenom verzijom - 115 KB) umjesto 4 MB za qemu-x86_64, a u nekim testovima, poput pokretanja u GCC emulatoru i izvođenja matematičkih operacija, ima bolje rezultate QEMU za oko dva puta.
Da bi se osigurale visoke performanse, koristi se JIT kompajler koji u hodu pretvara izvorne instrukcije u mašinski kod za ciljnu platformu. Direktno izvršavanje u emulatoru je podržano za izvršne datoteke u ELF, PE (Portable Executables) i bin (Flat executable) formatima, kompajlirane sa standardnim C bibliotekama Cosmopolitan, Glibc i Musl. Implementirana je ugrađena podrška za 180 sistemskih poziva. Linux i emulaciju oko 600 instrukcija x86 procesora, pokrivajući skupove instrukcija i8086, i386, SSE2, x86_64, SSE3, SSSE3, CLMUL, POPCNT, ADX, BMI2 (MULX, PDEP, PEXT), X87, RDRND, RDSEED i RDTSCP.
Pored toga, uslužni program blinkenlights se razvija na bazi Blink-a, pružajući interfejs za vizualizaciju izvršavanja programa i analizu sadržaja memorije. Uslužni program se može koristiti kao debugger, podržavajući obrnuti način debugiranja i omogućavajući navigaciju unazad kroz historiju izvršavanja i povratak na prethodno izvršenu tačku. Projekat razvija autor takvih dostignuća kao što je Cosmopolitan C biblioteka, port mehanizma izolacije pledge-a za... Linux i univerzalni izvršni sistem Redbean.

izvor: opennet.ru
