Prima versiune Blink, un emulator de înaltă performanță pentru sisteme x86-64

A fost lansată prima versiune semnificativă a proiectului Blink, care dezvoltă un emulator pentru procesoare x86-64, permițând rularea aplicațiilor Linux compilate static și dinamic într-o mașină virtuală cu un procesor emulat. Cu ajutorul Blink, aplicațiile Linux compilate pentru arhitectura x86-64 pot fi rulate pe alte sisteme de operare conforme POSIX (macOS, FreeBSD, NetBSD, OpenBSD, Cygwin) și pe hardware cu o altă arhitectură hardware (x86, ARM, RISC-V, MIPS, PowerPC, s390x). Codul proiectului este scris în limbajul C (ANSI C11) și este distribuit sub licența ISC. Este necesară doar libc (POSIX.1-2017) ca dependențe.

Din punct de vedere funcțional, Blink este similar cu comanda qemu-x86_64, dar diferă de QEMU prin execuția mai compactă și un câștig semnificativ de performanță. De exemplu, fișierul executabil Blink ocupă doar 221 KB (în versiunea restrânsă - 115 KB) în comparație cu cele 4 MB ale qemu-x86_64, iar în ceea ce privește performanța, în unele teste, cum ar fi rularea într-un emulator GCC și efectuarea operațiunilor matematice, depășește QEMU de aproximativ două ori.

Pentru a asigura o performanță ridicată, este utilizat un compilator JIT, care transformă dinamic instrucțiunile sursă în cod mașină pentru platforma de destinație. Se suportă rularea directă în emulator a fișierelor executabile în formatele ELF, PE (Portable Executables) și bin (Flat executable), compilate cu bibliotecile standard C Cosmopolitan, Glibc și Musl. Suportul încorporat pentru 180 de apeluri de sistem Linux și emularea a aproximativ 600 de instrucțiuni de procesor x86 sunt implementate, acoperind seturi de instrucțiuni i8086, i386, SSE2, x86_64, SSE3, SSSE3, CLMUL, POPCNT, ADX, BMI2 (MULX, PDEP, PEXT), X87, RDRND, RDSEED și RDTSCP.

De asemenea, pe baza Blink se dezvoltă utilitarul blinkenlights, care oferă o interfață pentru vizualizarea progresului execuției programului și analiza conținutului memoriei. Utilitarul poate fi folosit ca un debugger, suportând modul de depanare inversă (Reverse-Debugging), permițându-le utilizatorilor să se mute înapoi în istoria execuției și să revină la un punct anterior de execuție. Proiectul este condus de autorul unor dezvoltări precum biblioteca C Cosmopolitan, portarea mecanismului de izolare pledge pentru Linux și sistemul universal de fișiere executabile Redbean.

Prima versiune Blink, un emulator de înaltă performanță pentru sisteme x86-64


Sursa: opennet.ro
Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster