Il primo rilascio di Blink, un emulatore ad alte prestazioni per sistemi x86-64

È stato pubblicato il primo significativo rilascio del progetto Blink, che sviluppa un emulatore per processori x86-64, consentendo di eseguire applicazioni Linux compilate staticamente e dinamicamente su una macchina virtuale con un processore emulato. Grazie a Blink, le applicazioni Linux compilate per l'architettura x86-64 possono essere eseguite su altri sistemi operativi compatibili con POSIX (macOS, FreeBSD, NetBSD, OpenBSD, Cygwin) e su hardware con architetture hardware diverse (x86, ARM, RISC-V, MIPS, PowerPC, s390x). Il codice del progetto è scritto in linguaggio C (ANSI C11) e distribuito sotto licenza ISC. È richiesta solo libc (POSIX.1-2017) come dipendenza.

In termini di funzionalità, Blink ricorda il comando qemu-x86_64, ma si distingue da QEMU per un'esecuzione più compatta e un significativo aumento delle prestazioni. Ad esempio, il file eseguibile di Blink occupa solo 221 KB (115 KB per una build ridotta) rispetto ai 4 MB di qemu-x86_64, mentre nelle prestazioni in alcuni test, come l'esecuzione in un emulatore GCC e l'esecuzione di operazioni matematiche, supera QEMU di circa il doppio.

Per garantire elevate prestazioni, viene utilizzato un compilatore JIT, che trasforma al volo le istruzioni sorgente in codice macchina per la piattaforma di destinazione. È supportato l'avvio diretto di file eseguibili in formati ELF, PE (Portable Executables) e bin (Flat executable), compilati con le librerie C standard Cosmopolitan, Glibc e Musl. È implementato il supporto nativo per 180 chiamate di sistema Linux ed emulazione di circa 600 istruzioni per processori x86, coprendo i set di istruzioni i8086, i386, SSE2, x86_64, SSE3, SSSE3, CLMUL, POPCNT, ADX, BMI2 (MULX, PDEP, PEXT), X87, RDRND, RDSEED e RDTSCP.

In aggiunta, viene sviluppato un utilità basata su Blink chiamata blinkenlights, che fornisce un’interfaccia per visualizzare il progresso dell'esecuzione del programma e analizzare il contenuto della memoria. L'utilità può essere utilizzata come debugger, supportando la modalità di debug inverso (Reverse-Debugging) e consentendo di retrocedere nella cronologia di esecuzione e tornare a un punto già eseguito. Il progetto è portato avanti dall'autore di sviluppi come la libreria C Cosmopolitan, il porting del meccanismo di isolamento pledge per Linux e il sistema di file eseguibili universali Redbean.

Il primo rilascio di Blink, un emulatore ad alte prestazioni per sistemi x86-64


Fonte: opennet.ru
Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster