Blink-en lehen bertsioa, errendimendu handiko x86-64 emuladorea

Blink proiektuaren lehen bertsio esanguratsua argitaratu da, x86-64 prozesadoreen emuladore bat garatuz, emulatutako prozesadore batekin makina birtual batean era estatiko eta dinamikoan eraikitako Linux aplikazioak exekutatzeko aukera ematen duena. Blink-ekin, x86-64 arkitekturarako konpilatutako Linux programak POSIX-ekin bateragarriak diren beste sistema eragile batzuetan (macOS, FreeBSD, NetBSD, OpenBSD, Cygwin) eta beste hardware-arkitektura batzuekin (x86, ARM, RISC-V, MIPS) exekutatu daitezke. , PowerPC, s390x). Proiektuaren kodea C hizkuntzan (ANSI C11) idatzita dago eta ISC lizentziapean banatzen da. Mendekotasunetatik, libc (POSIX.1-2017) bakarrik behar da.

Funtzionalitateari dagokionez, Blink qemu-x86_64 komandoaren antzekoa da, baina QEMU-tik bereizten da diseinu trinkoagoan eta errendimenduaren igoera nabarmenean. Esate baterako, Blink exekutagarriak 221 KB baino ez ditu hartzen (eraiketa txikitu batekin - 115 KB) qemu-x4_86-ren 64 MB beharrean, eta proba batzuetan, GCC emuladorean exekutatzen eta eragiketa matematikoak egitean, gainditzen du. QEMU bi aldiz inguru.

Errendimendu handia bermatzeko, JIT konpiladore bat erabiltzen da, zeinak iturburu-argibideak hegaldian helburu-plataformarako makina-kode bihurtzen ditu. Emuladoreak ELF, PE (Exekutagarri eramangarriak) eta bin (exekutagarri laua) formatuetan fitxategi exekutagarriak zuzenean abiarazteko onartzen du, Cosmopolitan, Glibc eta Musl C liburutegi estandarrekin konpilatuta. Linux sistemako 180 deietarako eta i600, i86, SSE8086, x386_2, SSE86, SSSE64, CLMUL, POPCNT, ADX, BMI3 (MULX, PDEP, PEXT), X3, RDSEED, RDSEED, X2, RDRND barne hartzen dituen 87 xXNUMX prozesadorearen instrukzioen emulazioa eta emulazioa barne. instrukzio multzoak eta RDTSCP.

Gainera, Blink-en oinarrituta, blinkenlights utilitatea garatzen ari da, programaren exekuzioaren aurrerapena ikusteko eta memoriaren edukia aztertzeko interfaze bat eskaintzen duena. Erabilgarritasuna alderantzizko arazketa modua onartzen duen arazketa gisa erabil daiteke eta exekuzio historian atzera egin eta aurretik exekutaturiko puntu batera itzultzeko aukera ematen dizu. Proiektua Cosmopolitan C liburutegia bezalako garapenen egileak garatzen du, Linux-erako konpromisoak isolatzeko mekanismoaren ataka bat eta Redbean fitxategi sistema exekutagarri unibertsala.

Blink-en lehen bertsioa, errendimendu handiko x86-64 emuladorea


Iturria: opennet.ru

Gehitu iruzkin berria