Prva izdaja Blinka, visoko zmogljivega emulatorja x86-64

Objavljena je bila prva pomembna izdaja projekta Blink, ki razvija emulator procesorja x86-64, ki omogoča izvajanje statično in dinamično zgrajenih aplikacij Linux v virtualnem stroju z emuliranim procesorjem. Z Blinkom se lahko programi Linux, prevedeni za arhitekturo x86-64, izvajajo v drugih operacijskih sistemih, skladnih s POSIX (macOS, FreeBSD, NetBSD, OpenBSD, Cygwin) in v strojni opremi z drugimi arhitekturami strojne opreme (x86, ARM, RISC-V, MIPS, PowerPC, s390x). Projektna koda je napisana v C (ANSI C11) in se distribuira pod licenco ISC. Od odvisnosti je potrebna samo libc (POSIX.1-2017).

Kar zadeva funkcionalnost, je Blink podoben ukazu qemu-x86_64, vendar se od QEMU razlikuje po bolj kompaktni zasnovi in ​​znatnem povečanju zmogljivosti. Na primer, izvedljiva datoteka Blink zavzame le 221 KB (z okrnjeno gradnjo - 115 KB) namesto 4 MB za qemu-x86_64, in glede zmogljivosti v nekaterih testih, kot je zagon v emulatorju GCC in izvajanje matematičnih operacij, prehiti QEMU za približno dvakrat.

Za zagotavljanje visoke zmogljivosti se uporablja JIT prevajalnik, ki izvorna navodila sproti pretvarja v strojno kodo za ciljno platformo. Podprt je neposredni zagon v emulatorju izvedljivih datotek v formatih ELF, PE (Portable Executables) in bin (Flat executable), prevedenih s standardnimi knjižnicami C Cosmopolitan, Glibc in Musl. Izvedena je izvorna podpora za 180 sistemskih klicev Linux in emulacija približno 600 ukazov procesorja x86, ki zajemajo nize navodil i8086, i386, SSE2, x86_64, SSE3, SSSE3, CLMUL, POPCNT, ADX, BMI2 (MULX, PDEP, PEXT), X87, RDRND, RDSEED in RDTSCP.

Dodatno se na osnovi Blinka razvija pripomoček blinkenlights, ki ponuja vmesnik za vizualizacijo izvajanja programa in analizo vsebine pomnilnika. Pripomoček se lahko uporablja kot razhroščevalnik, ki podpira način povratnega odpravljanja napak (Reverse-Debugging) in vam omogoča, da se premaknete nazaj v zgodovino izvajanja in se vrnete na predhodno izvedeno točko. Projekt je razvil avtor razvoja, kot je C-library Cosmopolitan, pristanišče mehanizma izolacije zastave za Linux in univerzalni izvedljivi datotečni sistem Redbean.

Prva izdaja Blinka, visoko zmogljivega emulatorja x86-64


Vir: opennet.ru

Dodaj komentar