Lëshimi i parë i Blink, një emulator me performancë të lartë për sistemet x86-64

Është publikuar lëshimi i parë i rëndësishëm i projektit Blink, i cili zhvillon një emulator për procesorët x86-64, duke lejuar ekzekutimin e aplikacioneve Linux të ndërtuara statikisht dhe dinamikisht në një makinë virtuale me procesorin e emuluar. Me ndihmën e Blink, programet Linux të ndërtuara për arkitekturën x86-64 mund të ekzekutohen në sisteme të tjera operuese të përputhshme me POSIX (macOS, FreeBSD, NetBSD, OpenBSD, Cygwin) dhe në pajisje me arkitekturë tjetër harduerike (x86, ARM, RISC-V, MIPS, PowerPC, s390x). Kodi i projektit është shkruar në gjuhën C (ANSI C11) dhe shpërndahet nën licencën ISC. Nga varësitë kërkohet vetëm libc (POSIX.1-2017).

Në funksionalitet, Blink i ngjan komandës qemu-x86_64, por dallohet nga QEMU për një ekzekutim më kompakt dhe një rritje të konsiderueshme të performancës. Për shembull, skedari ekzekutiv i Blink merr vetëm 221 KB (në ndërtimin e shkurtuar — 115 KB) në vend të 4 MB të qemu-x86_64, dhe sipas performancës në disa teste, siç është ekzekutimi në emulator GCC dhe kryerja e operacioneve matematikore, e tejkalon QEMU përreth dy herë.

Për të siguruar cilësi të lartë performancës, përdoret kompilator JIT, i cili në kohë reale kthen instruksionet origjinale në kodin makinerik për platformën e synuar. Mbështetet ekzekutimi direkt në emulatorin e skedarëve ekzekutivë në formatet ELF, PE (Portable Executables) dhe bin (Flat executable), të ndërtuara me bibliotekat standarde të C-së Cosmopolitan, Glibc dhe Musl. Është realizuar mbështetje e integruar për 180 thirrje sistemore Linux dhe emulimi i rreth 600 instruksioneve të procesorit x86, duke përfshirë grupe instruksionesh i8086, i386, SSE2, x86_64, SSE3, SSSE3, CLMUL, POPCNT, ADX, BMI2 (MULX, PDEP, PEXT), X87, RDRND, RDSEED dhe RDTSCP.

Për më tepër, në bazë të Blink zhvillohet utilitari blinkenlights, i cili ofron një ndërfaqe për vizualizimin e procesit të ekzekutimit të programit dhe analizimin e përmbajtjes së memories. Utilitari mund të përdoret si një debues, që mbështet modin e debimit të kundërt (Reverse-Debugging) dhe lejon lëvizjen prapa në historinë e ekzekutimit dhe rikthimin në një pikë të ekzekutuar më parë. Projekti zhvillohet nga autori i zhvillimeve të tilla si biblioteka C Cosmopolitan, porta e mekanizmit të izolimit pledge për Linux dhe sistemi i skedarëve ekzekutivë universale Redbean.

Lëshimi i parë i Blink, një emulator me performancë të lartë për sistemet x86-64


Burimi: opennet.ru
Bleni hostim të besueshëm për faqe me mbrojtje nga DDoS, serverë VPS VDS 🔥 Bleni hostim të besueshëm për faqe me mbrojtje nga DDoS, serverë VPS VDS | ProHoster