Prvo izdanje Blinka, x86-64 emulatora visokih performansi

Objavljeno je prvo značajno izdanje projekta Blink, koji razvija emulator x86-64 procesora koji vam omogućuje pokretanje statički i dinamički izgrađenih Linux aplikacija u virtualnom računalu s emuliranim procesorom. Uz Blink, Linux programi kompajlirani za x86-64 arhitekturu mogu se izvoditi na drugim operacijskim sustavima kompatibilnim s POSIX-om (macOS, FreeBSD, NetBSD, OpenBSD, Cygwin) i na opremi s drugim hardverskim arhitekturama (x86, ARM, RISC-V, MIPS , PowerPC, s390x). Projektni kod je napisan u C jeziku (ANSI C11) i distribuira se pod ISC licencom. Od ovisnosti potreban je samo libc (POSIX.1-2017).

Što se tiče funkcionalnosti, Blink je sličan naredbi qemu-x86_64, ali se razlikuje od QEMU-a po kompaktnijem dizajnu i značajnom povećanju performansi. Na primjer, Blink izvršna datoteka zauzima samo 221 KB (sa skraćenom verzijom - 115 KB) umjesto 4 MB za qemu-x86_64, au nekim testovima, kao što je pokretanje u GCC emulatoru i izvođenje matematičkih operacija, nadmašuje QEMU za oko dva puta.

Kako bi se osigurala visoka izvedba, koristi se JIT kompajler koji pretvara izvorne upute u hodu u strojni kod za ciljanu platformu. Emulator podržava izravno pokretanje izvršnih datoteka u formatima ELF, PE (Portable Executables) i bin (Flat executable), kompajliranih sa standardnim C bibliotekama Cosmopolitan, Glibc i Musl. Ugrađena podrška za 180 Linux sistemskih poziva i emulacija oko 600 x86 procesorskih instrukcija koje pokrivaju i8086, i386, SSE2, x86_64, SSE3, SSSE3, CLMUL, POPCNT, ADX, BMI2 (MULX, PDEP, PEXT), X87, RDRND, RDSEED skupovi instrukcija i RDTSCP.

Dodatno, na temelju Blinka, razvija se uslužni program blinkenlights koji pruža sučelje za vizualizaciju napretka izvršavanja programa i analizu sadržaja memorije. Uslužni program može se koristiti kao program za ispravljanje pogrešaka koji podržava način obrnutog ispravljanja pogrešaka i omogućuje vam povratak u povijest izvršenja i povratak na prethodno izvršenu točku. Projekt je razvio autor razvoja kao što je biblioteka Cosmopolitan C, port mehanizma izolacije zaloga za Linux i univerzalni izvršni datotečni sustav Redbean.

Prvo izdanje Blinka, x86-64 emulatora visokih performansi


Izvor: opennet.ru

Dodajte komentar