A Blink, egy nagy teljesítményű x86-64 emulátor első kiadása

Megjelent a Blink projekt első jelentős kiadása, amely egy x86-64 processzorokból álló emulátort fejleszt, amely lehetővé teszi statikusan és dinamikusan felépített Linux alkalmazások futtatását egy virtuális gépben emulált processzorral. A Blink segítségével az x86-64 architektúrára fordított Linux programok más POSIX-kompatibilis operációs rendszereken (macOS, FreeBSD, NetBSD, OpenBSD, Cygwin) és más hardverarchitektúrával (x86, ARM, RISC-V, MIPS) rendelkező berendezéseken is futtathatók. , PowerPC, s390x). A projekt kódja C nyelven (ANSI C11) íródott, és az ISC licenc alatt kerül terjesztésre. A függőségek közül csak a libc (POSIX.1-2017) szükséges.

Funkcióit tekintve a Blink hasonló a qemu-x86_64 parancshoz, de eltér a QEMU-tól kompaktabb kialakításában és jelentős teljesítménynövekedésében. Például a Blink végrehajtható fájl csak 221 KB-ot foglal el (csupaszított felépítéssel - 115 KB) a qemu-x4_86 esetében 64 MB helyett, és bizonyos tesztekben, például a GCC emulátorban való futtatáskor és matematikai műveletek végrehajtása során, jobban teljesít. A QEMU körülbelül kétszeresére.

A nagy teljesítmény érdekében egy JIT fordítót használnak, amely a forrásutasításokat menet közben gépi kóddá alakítja a célplatform számára. Az emulátor támogatja a végrehajtható fájlok közvetlen indítását ELF, PE (Portable Executables) és bin (Flat executable) formátumban, a Cosmopolitan, Glibc és Musl szabványos C-könyvtárak segítségével. Beépített támogatás 180 Linux rendszerhíváshoz és körülbelül 600 x86-os processzorutasítás emulációja i8086, i386, SSE2, x86_64, SSE3, SSSE3, CLMUL, POPCNT, ADX, BMI2 (MULX, PDEP, PEXT, XRDSERDRND87, ) utasításkészletek és RDTSCP.

Emellett a Blinkre alapozva fejlesztés alatt áll a blinkenlights segédprogram is, amely felületet biztosít a programvégrehajtás folyamatának megjelenítéséhez és a memória tartalmának elemzéséhez. A segédprogram használható hibakeresőként, amely támogatja a fordított hibakeresési módot, és lehetővé teszi, hogy visszalépjen a végrehajtási előzményekben, és visszatérjen egy korábban végrehajtott ponthoz. A projektet olyan fejlesztések szerzője fejlesztette ki, mint a Cosmopolitan C könyvtár, amely a Linux zálogleválasztó mechanizmusának portja és a Redbean univerzális végrehajtható fájlrendszer.

A Blink, egy nagy teljesítményű x86-64 emulátor első kiadása


Forrás: opennet.ru

Hozzászólás