Prima versione di Blink, un emulatore x86-64 d'altu rendiment

A prima liberazione significativa di u prughjettu Blink hè stata publicata, sviluppendu un emulatore di prucessori x86-64 chì vi permette di eseguisce l'applicazioni Linux statiche è dinamiche in una macchina virtuale cù un processore emulatu. Cù Blink, i prugrammi Linux compilati per l'architettura x86-64 ponu esse eseguiti in altri sistemi operativi compatibili POSIX (macOS, FreeBSD, NetBSD, OpenBSD, Cygwin) è in equipaghji cù altre architetture hardware (x86, ARM, RISC-V, MIPS). , PowerPC, s390x). U codice di u prughjettu hè scrittu in lingua C (ANSI C11) è hè distribuitu sottu a licenza ISC. Di e dipendenze, solu libc (POSIX.1-2017) hè necessariu.

In termini di funziunalità, Blink hè simile à u cumandimu qemu-x86_64, ma differisce da QEMU in u so designu più compactu è un aumentu significativu di rendiment. Per esempiu, l'executable Blink occupa solu 221 KB (cù una custruzzione spogliata - 115 KB) invece di 4 MB per qemu-x86_64, è in certi testi, cum'è eseguisce in l'emulatore GCC è esegue operazioni matematiche, supera. QEMU di circa duie volte.

Per assicurà un altu rendiment, hè utilizatu un compilatore JIT, chì cunverte l'istruzzioni di fonte in u volu in codice macchina per a piattaforma di destinazione. L'emulatore supporta u lanciu direttu di fugliali eseguibili in formati ELF, PE (Executables Portable) è bin (Flat executable), compilati cù e librerie C standard Cosmopolitan, Glibc è Musl. Supportu integratu per 180 chiamate di sistema Linux è emulazione di circa 600 istruzioni di processore x86 chì copre i8086, i386, SSE2, x86_64, SSE3, SSSE3, CLMUL, POPCNT, ADX, BMI2 (MULX, PDEP, PEXT), X87, RDSEED, RDSE set di istruzioni è RDTSCP.

Inoltre, basatu annantu à Blink, l'utilità blinkenlights hè sviluppata, chì furnisce una interfaccia per visualizà u prugressu di l'esecuzione di u prugramma è analizà u cuntenutu di a memoria. L'utilità pò esse usata cum'è un debugger chì sustene u modu di debugging inversu è vi permette di retrocede in a storia di l'esekzione è di vultà à un puntu eseguitu prima. U prughjettu hè sviluppatu da l'autore di tali sviluppi cum'è a biblioteca Cosmopolitan C, un portu di u mecanismu di isolamentu di peghju per Linux è u sistema di file eseguibile universale Redbean.

 Prima versione di Blink, un emulatore x86-64 d'altu rendiment


Source: opennet.ru

Add a comment