Unua eldono de Blink, altkvalita x86-64 emulilo

La unua signifa eldono de la projekto Blink estis publikigita, evoluigante emulilon de x86-64-procesoroj, kiu ebligas al vi ruli statike kaj dinamike konstruitajn Linuksajn aplikaĵojn en virtuala maŝino kun emulita procesoro. Kun Blink, Linukso-programoj kompilitaj por la x86-64-arkitekturo povas esti rulitaj sur aliaj POSIX-kongruaj operaciumoj (macOS, FreeBSD, NetBSD, OpenBSD, Cygwin) kaj sur ekipaĵo kun aliaj hardvararkitekturoj (x86, ARM, RISC-V, MIPS). , PowerPC, s390x). La projektkodo estas skribita en C-lingvo (ANSI C11) kaj estas distribuita sub la ISC-licenco. El la dependecoj, nur libc (POSIX.1-2017) estas bezonata.

Koncerne funkciecon, Blink similas al la komando qemu-x86_64, sed diferencas de QEMU pro sia pli kompakta dezajno kaj signifa rendimentopliiĝo. Ekzemple, la ekzekutebla Blink okupas nur 221 KB (kun nudigita konstruo - 115 KB) anstataŭ 4 MB por qemu-x86_64, kaj en kelkaj testoj, kiel ekz. kuri en la GCC-emulilo kaj farado de matematikaj operacioj, ĝi superas. QEMU ĉirkaŭ du fojojn.

Por certigi altan rendimenton, JIT-kompililo estas uzata, kiu konvertas fontinstrukciojn sur la flugo en maŝinkodon por la celplatformo. La emulilo subtenas rektan lanĉon de ruleblaj dosieroj en formatoj ELF, PE (Porteblaj ekzekuteblaj) kaj bin (Ebena rulebla), kompilitaj kun la normaj C-bibliotekoj Cosmopolitan, Glibc kaj Musl. Enkonstruita subteno por 180 Linuksaj sistemvokoj kaj emulado de proksimume 600 x86-procesorinstrukcioj kovrantaj i8086, i386, SSE2, x86_64, SSE3, SSSE3, CLMUL, POPCNT, ADX, BMI2 (MULX, PDEP, PEXT), X87, RDSEED, RDRND instrukcioj kaj RDTSCP.

Aldone, surbaze de Blink, la blinkenlights-utilo estas evoluigita, kiu disponigas interfacon por bildigi la progreson de programo-ekzekuto kaj analizi la enhavon de memoro. La ilo povas esti uzata kiel erarserĉilo, kiu subtenas inversan sencimigan reĝimon kaj ebligas al vi reiri en la ekzekuthistorio kaj reveni al antaŭe ekzekutita punkto. La projekto estas evoluigita fare de la aŭtoro de tiaj evoluoj kiel la Cosmopolitan C-biblioteko, haveno de la promesizola mekanismo por Linukso kaj la Redbean universala rulebla dosiersistemo.

Unua eldono de Blink, altkvalita x86-64 emulilo


fonto: opennet.ru

Aldoni komenton