Første udgivelse af Blink, en højtydende x86-64-emulator

Den første betydelige udgivelse af Blink-projektet er blevet offentliggjort, der udvikler en emulator af x86-64-processorer, der giver dig mulighed for at køre statisk og dynamisk byggede Linux-applikationer i en virtuel maskine med en emuleret processor. Med Blink kan Linux-programmer kompileret til x86-64-arkitekturen køres på andre POSIX-kompatible operativsystemer (macOS, FreeBSD, NetBSD, OpenBSD, Cygwin) og på udstyr med andre hardwarearkitekturer (x86, ARM, RISC-V, MIPS , PowerPC, s390x). Projektkoden er skrevet i C-sprog (ANSI C11) og distribueres under ISC-licensen. Af afhængighederne er kun libc (POSIX.1-2017) påkrævet.

Med hensyn til funktionalitet ligner Blink kommandoen qemu-x86_64, men adskiller sig fra QEMU i sit mere kompakte design og betydelige ydelsesforøgelse. For eksempel fylder den eksekverbare Blink kun 221 KB (med en strippet build - 115 KB) i stedet for 4 MB for qemu-x86_64, og i nogle tests, såsom at køre i GCC-emulatoren og udføre matematiske operationer, klarer den sig bedre end QEMU omkring to gange.

For at sikre høj ydeevne bruges en JIT-compiler, som konverterer kildeinstruktioner i farten til maskinkode til målplatformen. Emulatoren understøtter direkte lancering af eksekverbare filer i ELF, PE (Portable Executables) og bin (Flat executable) formater, kompileret med standard C-bibliotekerne Cosmopolitan, Glibc og Musl. Indbygget understøttelse af 180 Linux-systemopkald og emulering af omkring 600 x86-processorinstruktioner, der dækker i8086, i386, SSE2, x86_64, SSE3, SSSE3, CLMUL, POPCNT, ADX, BMI2 (MULX, PDEP, PEXT), X87, RDRND, SSSEXNUMX instruktionssæt og RDTSCP.

Derudover, baseret på Blink, udvikles blinkenlights-værktøjet, som giver en grænseflade til at visualisere forløbet af programudførelse og analysere indholdet af hukommelsen. Hjælpeprogrammet kan bruges som en debugger, der understøtter omvendt debugging-tilstand og giver dig mulighed for at gå tilbage i eksekveringshistorikken og vende tilbage til et tidligere udført punkt. Projektet er udviklet af forfatteren til sådanne udviklinger som Cosmopolitan C-biblioteket, en port for løftets isoleringsmekanisme for Linux og Redbean universelle eksekverbare filsystem.

Første udgivelse af Blink, en højtydende x86-64-emulator


Kilde: opennet.ru

Tilføj en kommentar