Pislogj egy x86-64 emulátort, amely azt ígéri, hogy felülmúlja a QEMU-t

blink-gcc

Pillantás futó képernyőképe

Nemrég felröppent a hír, hogy a projekt A Blink új emulátort fejleszt az x86-64-es processzorból lehetővé teszi lefordított Linux alkalmazások futtatását statikusan egy virtuális gépben emulált processzorral.

Megemlítik, hogy ea fő cél a projektről lehetővé teszi az x86-64 architektúrára fordított Linux programok futtatását más operációs rendszereken (macOS, FreeBSD, NetBSD, OpenBSD) és más hardverarchitektúrával rendelkező számítógépeken (x86, ARM, RISC-V, MIPS, PowerPC, s390x).

A projekttárban a villogást a következőképpen írják le:

A blink egy virtuális gép, amely statikusan fordított x86-64-linux programokat futtat különböző operációs rendszereken és hardverarchitektúrákon. Úgy tervezték, hogy ugyanazt tegye, mint a qemu-x86_64 parancs, azzal a különbséggel, hogy (a) a 4 MB bináris helyett a Blinknek csak ~160 kb lábnyoma van; és (b) A Blink 2x gyorsabb, mint a Qemu bizonyos benchmarkokban, például a GCC emulálásában. A kompromisszum az, hogy a Blink nem rendelkezik annyi funkcióval, mint a Qemu. A Blink tökéletesen illeszkedik, ha olyan virtuális gépet szeretne, amely rendkívül kicsi, és sokkal gyorsabban futtatja az átmeneti programokat. Az eszköz motivációival kapcsolatos további részletekért olvassa el a https://justine.lol/ape.html oldalt.

Érdemes megemlíteni, hogy a projektet olyan fejlesztések szerzője fejlesztette ki, mint a Cosmopolitan C könyvtár, amely a Linux kötelezettségvállalási elkülönítési mechanizmusának portja és a Redbean univerzális futtatható fájlrendszer.

Ami a funkcionalitást illeti, A pislogás úgy néz ki, mint a qemu-x86_64 parancs, de kompaktabb kialakításban és jelentős teljesítménynövekedésben különbözik a QEMU-tól. Például a Blink végrehajtható fájl mérete csak 157 KB a qemu-x4_86 esetén 64 MB helyett, és teljesítmény szempontjából a tesztüzemben a GCC emulátoron, A Blink kétszer veri a QEMU-t.

A nagy teljesítmény biztosítása érdekében JIT fordítót használnak, amely a forrás utasításokat menet közben gépi kóddá alakítja a célplatformhoz (eddig csak az x86_64 és az aarch64 támogatja a JIT-et).

A Cosmopolitan, Glibc és Musl szabványos C könyvtárakkal összeállított ELF, PE (Portable Executables) és bin (Flat Executable) formátumú futtatható fájlok közvetlen indítása az emulátoron támogatott.

Amellett, hogy, Az is kiemelkedik, hogy integrált támogatással rendelkezik több mint száz híváshoz a Linux rendszerhez, beleértve a fork()-t és a clone()-t. Az i8086, i386, SSE2, x86_64, SSE3, SSSE3, CLMUL, POPCNT, ADX, BMI2 (MULX, PDEP, PEXT), X87, RDRND, RDSEED és RDTSCP utasításkészletek emulációja támogatott.

Ezen túlmenően, a projekt a blinkenlights segédprogramot fejleszti, amely felületet biztosít a különböző platformokon futó programok hibakereséséhez, a programvégrehajtás vizualizálásához és a memória tartalmának elemzéséhez. A hibakereső egyik jellemzője a fordított hibakeresési mód támogatása (Reverse Debugging), amely lehetővé teszi, hogy visszalépjen a végrehajtási előzményekbe, és visszatérjen egy korábban végrehajtott ponthoz.

A blinkenlights egy TUI interfész, amely minden platformon használható az x86_64-linux programok hibakeresésére. A GDB-vel ellentétben a Blinkenlights a program végrehajtásának megjelenítésére összpontosít. UNICODE IBM Code karaktereket használ a bináris memóriapanelek megjelenítéséhez, amelyek a program összeállítási kódjában való mozgás során változnak. Ezek a memóriapanelek görgethetők és nagyíthatók az egér görgőjével. A Blinkenlights támogatja a fordított hibakeresést is, ahol az összeállítási képernyőn görgetve visszatekerheti a végrehajtási előzményeket.

Végül pedig azoknak, akik többet szeretnének megtudni erről a projektről, tudniuk kell, hogy a projekt kódja C-ben van írva (ANSI C11), és az ISC licence alatt terjesztik. A függőségek közül csak a libc (POSIX.1-2017) szükséges.

Get Blink

Akit érdekel a blink kipróbálása, annak tudnia kell, hogy a fordítása rendkívül egyszerű, csak a forráskódot kell beszereznie, ezt megteheti a következő linkről vagy terminálról a következő parancs begépelésével :

git https://github.com/jart/blink.git

És kész, csak be kell lépned a blik könyvtárba, és le kell fordítanod:

cd blink

make -j4

Ha többet szeretne megtudni a Blink működéséről, megteheti a következő link.


Hagyja megjegyzését

E-mail címed nem kerül nyilvánosságra. Kötelező mezők vannak jelölve *

*

*

  1. Az adatokért felelős: AB Internet Networks 2008 SL
  2. Az adatok célja: A SPAM ellenőrzése, a megjegyzések kezelése.
  3. Legitimáció: Az Ön beleegyezése
  4. Az adatok közlése: Az adatokat csak jogi kötelezettség alapján továbbítjuk harmadik felekkel.
  5. Adattárolás: Az Occentus Networks (EU) által üzemeltetett adatbázis
  6. Jogok: Bármikor korlátozhatja, helyreállíthatja és törölheti adatait.