Pierwsze wydanie Blink, wysokowydajnego emulatora x86-64

Opublikowano pierwszą znaczącą wersję projektu Blink. Opracowuje on emulator procesorów x86-64, który umożliwia uruchamianie statycznie i dynamicznie kompilowanych aplikacji. Linux- aplikacje w maszynie wirtualnej z emulowanym procesorem. Zbudowane dla architektury x86-64 z wykorzystaniem Blink. Linux- programy można uruchamiać na innych systemach operacyjnych zgodnych ze standardem POSIX (macOS, FreeBSD, NetBSD, OpenBSD, Cygwin) oraz na sprzęcie o innych architekturach (x86, ARM, RISC-V, MIPS, PowerPC, s390x). Kod projektu jest napisany w języku C (ANSI C11) i jest rozpowszechniany na licencji ISC. Jedynym wymaganym elementem zależnym jest biblioteka libc (POSIX.1-2017).

Pod względem funkcjonalności Blink jest podobny do polecenia qemu-x86_64, ale różni się od QEMU bardziej zwartą konstrukcją i znacznym wzrostem wydajności. Na przykład plik wykonywalny Blink zajmuje tylko 221 KB (przy okrojonej kompilacji - 115 KB) zamiast 4 MB dla qemu-x86_64, a w niektórych testach, takich jak uruchamianie w emulatorze GCC i wykonywanie operacji matematycznych, radzi sobie lepiej QEMU około dwukrotnie.

Aby zapewnić wysoką wydajność, zastosowano kompilator JIT, który konwertuje instrukcje źródłowe na bieżąco na kod maszynowy dla platformy docelowej. Bezpośrednie wykonywanie w emulatorze jest obsługiwane dla plików wykonywalnych w formatach ELF, PE (Portable Executables) i bin (Flat executable), skompilowanych przy użyciu standardowych bibliotek języka C: Cosmopolitan, Glibc i Musl. Zaimplementowano wbudowaną obsługę 180 wywołań systemowych. Linux i emulację około 600 instrukcji procesora x86, obejmujących zestawy instrukcji i8086, i386, SSE2, x86_64, SSE3, SSSE3, CLMUL, POPCNT, ADX, BMI2 (MULX, PDEP, PEXT), X87, RDRND, RDSEED i RDTSCP.

Dodatkowo, narzędzie blinkenlights jest rozwijane w oparciu o Blink, zapewniając interfejs do wizualizacji wykonywania programu i analizy zawartości pamięci. Narzędzie może być używane jako debugger, obsługując debugowanie odwrotne i umożliwiając nawigację wstecz w historii wykonywania oraz powrót do punktu wykonania. Projekt jest rozwijany przez autora takich rozwiązań, jak biblioteka Cosmopolitan C, port mechanizmu izolacji zobowiązań dla… Linux i uniwersalny system wykonywalny Redbean.

 Pierwsze wydanie Blink, wysokowydajnego emulatora x86-64


Źródło: opennet.ru
Kup niezawodny hosting dla stron z ochroną DDoS, serwery VPS VDS 🔥 Kup niezawodny hosting stron internetowych z ochroną DDoS, serwery VPS VDS | ProHoster