Eerste weergawe van Blink, 'n hoë werkverrigting x86-64 emulator

Die eerste betekenisvolle vrystelling van die Blink-projek is gepubliseer, met die ontwikkeling van 'n emulator van x86-64-verwerkers wat jou toelaat om staties en dinamies geboude Linux-toepassings in 'n virtuele masjien met 'n nagebootste verwerker te laat loop. Met Blink kan Linux-programme wat vir die x86-64-argitektuur saamgestel is op ander POSIX-versoenbare bedryfstelsels (macOS, FreeBSD, NetBSD, OpenBSD, Cygwin) en op toerusting met ander hardeware-argitekture (x86, ARM, RISC-V, MIPS) uitgevoer word , PowerPC, s390x). Die projekkode is in C-taal (ANSI C11) geskryf en word onder die ISC-lisensie versprei. Van die afhanklikhede word slegs libc (POSIX.1-2017) vereis.

Wat funksionaliteit betref, is Blink soortgelyk aan die qemu-x86_64-opdrag, maar verskil van QEMU in sy meer kompakte ontwerp en aansienlike prestasieverhoging. Byvoorbeeld, die Blink-uitvoerbare lêer neem slegs 221 KB op (met 'n gestroopte bou - 115 KB) in plaas van 4 MB vir qemu-x86_64, en in sommige toetse, soos om in die GCC-emulator te hardloop en wiskundige bewerkings uit te voer, presteer dit beter QEMU met ongeveer twee keer.

Om hoë werkverrigting te verseker, word 'n JIT-samesteller gebruik, wat broninstruksies dadelik in masjienkode vir die teikenplatform omskakel. Die emulator ondersteun direkte bekendstelling van uitvoerbare lêers in ELF, PE (Portable Executables) en bin (Flat executable) formate, saamgestel met die standaard C biblioteke Cosmopolitan, Glibc en Musl. Ingeboude ondersteuning vir 180 Linux-stelseloproepe en nabootsing van ongeveer 600 x86-verwerkerinstruksies wat i8086, i386, SSE2, x86_64, SSE3, SSSE3, CLMUL, POPCNT, ADX, BMI2 (MULX, PDEP, PEXT), X87, RDRD, , dek instruksiestelle en RDTSCP.

Daarbenewens, gebaseer op Blink, word die blinkenlights-nutsmiddel ontwikkel, wat 'n koppelvlak bied om die vordering van programuitvoering te visualiseer en die inhoud van geheue te analiseer. Die hulpprogram kan gebruik word as 'n ontfouter wat omgekeerde ontfoutingsmodus ondersteun en jou toelaat om terug te beweeg in die uitvoeringsgeskiedenis en terug te keer na 'n voorheen uitgevoer punt. Die projek is ontwikkel deur die skrywer van ontwikkelings soos die Cosmopolitan C-biblioteek, 'n poort van die belofte-isolasiemeganisme vir Linux en die Redbean universele uitvoerbare lêerstelsel.

Eerste weergawe van Blink, 'n hoë werkverrigting x86-64 emulator


Bron: opennet.ru

Voeg 'n opmerking