Prvé vydanie Blink, vysokovýkonného x86-64 emulátora

Bola zverejnená prvá významná verzia projektu Blink, ktorá vyvíja emulátor procesora x86-64, ktorý vám umožňuje spúšťať staticky a dynamicky zostavené linuxové aplikácie na virtuálnom stroji s emulovaným procesorom. Pomocou Blink je možné linuxové programy skompilované pre architektúru x86-64 spustiť na iných operačných systémoch kompatibilných s POSIX (macOS, FreeBSD, NetBSD, OpenBSD, Cygwin) a na hardvéri s inými hardvérovými architektúrami (x86, ARM, RISC-V, MIPS , PowerPC, s390x). Kód projektu je napísaný v jazyku C (ANSI C11) a distribuovaný pod licenciou ISC. Zo závislostí sa vyžaduje iba knižnica libc (POSIX.1-2017).

Pokiaľ ide o funkčnosť, Blink pripomína príkaz qemu-x86_64, ale líši sa od QEMU kompaktnejším dizajnom a výrazným zvýšením výkonu. Napríklad spustiteľný súbor Blink zaberá iba 221 KB (so skrátenou zostavou - 115 KB) namiesto 4 MB pre qemu-x86_64 a pokiaľ ide o výkon v niektorých testoch, ako je beh v emulátore GCC a vykonávanie matematických operácií, asi dvakrát predbehne QEMU.

Na zabezpečenie vysokého výkonu sa používa JIT kompilátor, ktorý za behu prevádza zdrojové inštrukcie na strojový kód pre cieľovú platformu. Podporované je priame spustenie v emulátore spustiteľných súborov vo formátoch ELF, PE (Portable Executables) a bin (Flat executable), skompilovaných so štandardnými C knižnicami Cosmopolitan, Glibc a Musl. Implementovaná natívna podpora pre 180 systémových volaní Linuxu a emulácia približne 600 inštrukcií procesora x86 pokrývajúcich i8086, i386, SSE2, x86_64, SSE3, SSSE3, CLMUL, POPCNT, ADX, BMI2 (MULX, PDEP, PEXT), X87, RRDEDDRND, . inštrukčné sady a RDTSCP.

Okrem toho sa na báze Blink vyvíja utilita blinkenlights, ktorá poskytuje rozhranie na vizualizáciu vykonávania programu a analýzu obsahu pamäte. Pomôcku je možné použiť ako ladiaci program, ktorý podporuje režim spätného ladenia (Reverse-Debugging) a umožňuje vám vrátiť sa späť v histórii vykonávania a vrátiť sa do predtým vykonaného bodu. Projekt je vyvinutý autorom takých vývojov, ako je C-knižnica Cosmopolitan, port mechanizmu na izoláciu sľubov pre Linux a univerzálny spustiteľný súborový systém Redbean.

Prvé vydanie Blink, vysokovýkonného x86-64 emulátora


Zdroj: opennet.ru

Pridať komentár