Vilgutage x86-64 emulaatorit, mis tõotab ületada QEMU

blink-gcc

Ekraanipilt vilkumisest

Hiljuti levis uudis, et projekt Blink töötab välja uut emulaatorit x86-64 protsessoriga võimaldab käivitada kompileeritud Linuxi rakendusi staatiliselt emuleeritud protsessoriga virtuaalmasinas.

Mainitakse, et epeamine eesmärk projekti on pakkuda võimalust käitada Linuxi programme, mis on kompileeritud x86-64 arhitektuuri jaoks teistes operatsioonisüsteemides (macOS, FreeBSD, NetBSD, OpenBSD) ja erineva riistvaraarhitektuuriga arvutites (x86, ARM, RISC-V, MIPS, PowerPC, s390x).

Projektihoidlas kirjeldavad nad vilkumist järgmiselt:

blink on virtuaalne masin, mis käitab erinevates operatsioonisüsteemides ja riistvaraarhitektuurides staatiliselt kompileeritud x86-64-linuxi programme. See on loodud tegema sama, mis käsk qemu-x86_64, välja arvatud see, et (a) 4 MB kahendfaili asemel on Blinkil vaid ~160 kb jalajälg; ja (b) Blink on 2x kiirem kui Qemu mõnes võrdlusaluses, nagu GCC emuleerimine. Kompromiss seisneb selles, et Blinkil pole nii palju funktsioone kui Qemul. Blink sobib suurepäraselt, kui soovite virtuaalset masinat, mis on äärmiselt väike ja jookseb lühiajalisi programme palju kiiremini. Lisateavet selle tööriista motiivide kohta leiate aadressilt https://justine.lol/ape.html.

Väärib märkimist, et projekti on välja töötanud selliste arenduste autor nagu Cosmopolitan C raamatukogu, Linuxi kohustuste eraldamise mehhanismi port ja Redbean universaalne käivitatav failisüsteem.

Funktsionaalsuse osas Blink näeb välja nagu käsk qemu-x86_64Kuid erineb QEMU-st kompaktsema disaini ja oluliselt parema jõudluse poolest. Näiteks käivitatav Blink on faili qemu-x157_4 puhul 86 MB asemel ainult 64 KB ja jõudluse osas GCC emulaatori testimisel Blink võidab QEMU-d kaks korda.

Suure jõudluse tagamiseks kasutatakse JIT-kompilaatorit, mis teisendab käigu pealt lähtekäsud sihtplatvormi masinkoodiks (seni toetavad JIT-d ainult x86_64 ja aarch64).

Toetatakse standardsete C-teekidega Cosmopolitan, Glibc ja Musl kompileeritud ELF-, PE- (Portable Executables) ja bin-vormingus (Flat Executable) täitmisfailide emulaatori otsekäivitamist.

Peale selle, Samuti paistab see silma, et sellel on integreeritud tugi enam kui sajale Linuxi süsteemi kõnele, sealhulgas fork() ja clone(). Toetatakse i8086, i386, SSE2, x86_64, SSE3, SSSE3, CLMUL, POPCNT, ADX, BMI2 (MULX, PDEP, PEXT), X87, RDRND, RDSEED ja RDTSCP käsukomplektide emuleerimist.

Lisaks projekt arendab utiliiti blinkenlights, mis pakub liidest erinevatel platvormidel olevate programmide silumiseks, programmide täitmise visualiseerimiseks ja mälu sisu analüüsimiseks. Siluri funktsiooniks on pöördsilumisrežiimi tugi (Reverse Debugging), mis võimaldab teil minna tagasi täitmisajaloos ja naasta varem käivitatud punkti.

blinkenlights on TUI liides, mida saab kasutada x86_64-linuxi programmide silumiseks kõigil platvormidel. Erinevalt GDB-st keskendub Blinkenlights programmi täitmise visualiseerimisele. See kasutab binaarmälupaneelide kuvamiseks UNICODE IBM Code Page 437 märke, mis muutuvad programmi koostekoodis liikudes. Neid mälupaneele saab hiirerattaga kerida ja suurendada. Blinkenlights toetab ka vastupidist silumist, kus koosteekraanil ratta kerimine võimaldab täitmise ajalugu tagasi kerida.

Need, kes soovivad selle projekti kohta rohkem teada saada, peaksid teadma, et projekti kood on kirjutatud C-keeles (ANSI C11) ja seda levitatakse ISC litsentsi all. Sõltuvustest on nõutav ainult libc (POSIX.1-2017).

hakka vilkuma

Need, kes soovivad blinki proovida, peaksid teadma, et selle koostamine on äärmiselt lihtne, tuleb hankida vaid selle lähtekood, mida saab teha järgmiselt lingilt või terminalist, tippides järgmise käsu :

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

Ja see on tehtud, peate lihtsalt sisestama blik kataloogi ja kompileerima:

cd blink

make -j4

Kui soovite Blinki toimimise kohta rohkem teada saada, saate seda teha aadressilt järgmine link.


Jäta oma kommentaar

Sinu e-postiaadressi ei avaldata. Kohustuslikud väljad on tähistatud *

*

*

  1. Andmete eest vastutav: AB Internet Networks 2008 SL
  2. Andmete eesmärk: Rämpsposti kontrollimine, kommentaaride haldamine.
  3. Seadustamine: teie nõusolek
  4. Andmete edastamine: andmeid ei edastata kolmandatele isikutele, välja arvatud juriidilise kohustuse alusel.
  5. Andmete salvestamine: andmebaas, mida haldab Occentus Networks (EL)
  6. Õigused: igal ajal saate oma teavet piirata, taastada ja kustutada.