První vydání Blink, vysoce výkonného x86-64 emulátoru

Byla zveřejněna první významná verze projektu Blink, vyvíjející emulátor x86-64 procesorů, který umožňuje spouštět staticky a dynamicky sestavené linuxové aplikace na virtuálním stroji s emulovaným procesorem. S Blink lze linuxové programy zkompilované pro architekturu x86-64 spouštět na jiných operačních systémech kompatibilních s POSIX (macOS, FreeBSD, NetBSD, OpenBSD, Cygwin) a na zařízeních s jinými hardwarovými architekturami (x86, ARM, RISC-V, MIPS , PowerPC, s390x). Kód projektu je napsán v jazyce C (ANSI C11) a je distribuován pod licencí ISC. Ze závislostí je vyžadována pouze knihovna libc (POSIX.1-2017).

Z hlediska funkčnosti je Blink podobný příkazu qemu-x86_64, ale liší se od QEMU kompaktnějším designem a výrazným zvýšením výkonu. Například spustitelný soubor Blink zabírá pouze 221 KB (s oříznutým sestavením - 115 KB) místo 4 MB pro qemu-x86_64 a v některých testech, jako je běh v emulátoru GCC a provádění matematických operací, překonává QEMU asi dvakrát.

Pro zajištění vysokého výkonu se používá JIT kompilátor, který za chodu převádí zdrojové instrukce do strojového kódu pro cílovou platformu. Emulátor podporuje přímé spouštění spustitelných souborů ve formátech ELF, PE (Portable Executables) a bin (Flat executable) kompilovaných se standardními knihovnami C Cosmopolitan, Glibc a Musl. Vestavěná podpora pro 180 systémových volání Linuxu a emulace asi 600 instrukcí procesoru x86 pokrývajících i8086, i386, SSE2, x86_64, SSE3, SSSE3, CLMUL, POPCNT, ADX, BMI2 (MULX, PDEP, PEXT), X87, RRDND, RD instrukční sady a RDTSCP.

Kromě toho se na bázi Blink vyvíjí utilita blinkenlights, která poskytuje rozhraní pro vizualizaci průběhu provádění programu a analýzu obsahu paměti. Nástroj lze použít jako ladicí program, který podporuje režim zpětného ladění a umožňuje vrátit se zpět v historii provádění a vrátit se k dříve provedenému bodu. Projekt je vyvinut autorem takových vývojů, jako je knihovna Cosmopolitan C, port mechanismu pro izolaci zástavy pro Linux a univerzální spustitelný souborový systém Redbean.

První vydání Blink, vysoce výkonného x86-64 emulátoru


Zdroj: opennet.ru

Přidat komentář