Yüksək performanslı x86-64 sistem emulyatoru olan Blink-in ilk buraxılışı

Blink layihəsinin ilk böyük buraxılışı dərc edilib. O, statik və dinamik şəkildə əlaqəli Linux tətbiqlərini emulyasiya edilmiş prosessorlu virtual maşında işlətməyə imkan verən x86-64 prosessor emulatoru hazırlayır. Blink ilə x86-64 arxitekturası üçün qurulmuş Linux proqramları digər POSIX uyğun əməliyyat sistemlərində (macOS, FreeBSD, NetBSD, OpenBSD, Cygwin) və fərqli arxitekturalı aparatlarda (x86, ARM, RISC-V, MIPS, PowerPC, s390x) işlədilə bilər. Layihənin kodu C dilində (ANSI C11) yazılıb və ISC lisenziyası altında paylanır. Tələb olunan yeganə asılılıq libc-dir (POSIX.1-2017).

Blink funksionallığı baxımından qemu-x86_64-ə bənzəyir, lakin daha kompakt tətbiqi və əhəmiyyətli performans qazancları ilə QEMU-dan fərqlənir. Məsələn, Blink icra olunan faylı qemu-x86_64 üçün 4 MB ilə müqayisədə yalnız 221 KB (sökülmüş quruluşla 115 KB) tutur və bəzi testlərdə, məsələn, GCC emulatorunda işləmək və riyazi əməliyyatlar yerinə yetirmək kimi testlərdə QEMU-dan təxminən iki dəfə çox işləyir.

Yüksək performans təmin etmək üçün, hədəf platforma üçün mənbə təlimatlarını dərhal maşın koduna çevirən JIT kompilyatorundan istifadə olunur. Emulatorda birbaşa icra, standart C kitabxanaları Cosmopolitan, Glibc və Musl ilə kompilyasiya edilmiş ELF, PE (Portable Executables) və bin (Flat executable) formatlarındakı icra edilə bilən fayllar üçün dəstəklənir. i8086, i386, SSE2, x86_64, SSE3, SSSE3, CLMUL, POPCNT, ADX, BMI2 (MULX, PDEP, PEXT), X87, RDRND, RDSEED və RDTSCP təlimat dəstlərini əhatə edən 180 Linux sistem çağırışı üçün yerli dəstək və təxminən 600 x86 prosessor təlimatının emulyasiyası tətbiq olunur.

Bundan əlavə, proqram icrasını vizuallaşdırmaq və yaddaş məzmununu təhlil etmək üçün interfeys təmin edən Blink istifadə edərək blinkenlights yardımçı proqramı hazırlanır. Yardımçı proqram, tərs ayıklamanı dəstəkləyən və icra tarixində geriyə naviqasiyaya və əvvəllər icra edilmiş nöqtəyə qayıtmağa imkan verən sazlayıcı kimi istifadə edilə bilər. Layihə, Cosmopolitan C kitabxanası, Linux-a girov izolyasiya mexanizminin portu və Redbean universal icra olunan sistem kimi layihələrin müəllifi tərəfindən hazırlanır.

 Yüksək performanslı x86-64 sistem emulyatoru olan Blink-in ilk buraxılışı


Mənbə: opennet.ru

Добавить комментарий