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

Blink layihəsinin ilk əhəmiyyətli buraxılışı nəşr olundu, o, x86-64 prosessorlarının emulyatorunu inkişaf etdirərək, emulyasiya edilmiş prosessorlu virtual maşında statik və dinamik şəkildə qurulmuş Linux proqramlarını işə salmağa imkan verir. Blink ilə x86-64 arxitekturası üçün tərtib edilmiş Linux proqramları digər POSIX-uyğun əməliyyat sistemlərində (macOS, FreeBSD, NetBSD, OpenBSD, Cygwin) və digər hardware arxitekturaları (x86, ARM, RISC-V, MIPS) olan avadanlıqlarda işlədilə bilər. , PowerPC, s390x). Layihə kodu C dilində yazılmışdır (ANSI C11) və ISC lisenziyası altında paylanır. Asılılıqlardan yalnız libc (POSIX.1-2017) tələb olunur.

Funksionallıq baxımından Blink qemu-x86_64 əmrinə bənzəyir, lakin QEMU-dan daha yığcam dizaynı və əhəmiyyətli performans artımı ilə fərqlənir. Məsələn, Blink icra olunan faylı qemu-x221_115 üçün 4 MB əvəzinə yalnız 86 KB (çıxarılmış quruluşla - 64 KB) yer tutur və bəzi testlərdə, məsələn, GCC emulyatorunda işləmək və riyazi əməliyyatları yerinə yetirmək kimi QEMU-dan təxminən iki dəfə üstündür.

Yüksək performansı təmin etmək üçün mənbə təlimatlarını tez bir zamanda hədəf platforma üçün maşın koduna çevirən JIT kompilyatorundan istifadə olunur. Emulator standart C kitabxanaları Cosmopolitan, Glibc və Musl ilə tərtib edilmiş ELF, PE (Portable Executables) və bin (Flat executable) formatlarında icra edilə bilən faylların birbaşa işə salınmasını dəstəkləyir. 180 Linux sistem zəngi üçün daxili dəstək və i600, i86, SSE8086, x386_2, SSE86, SSSE64, CLMUL, POPCNT, ADX, BMI3 (MULX, PDEP, PEXT), X3, RDDRNDSE, X2 əhatə edən təxminən 87 xXNUMX prosessor təlimatının emulyasiyası təlimat dəstləri və RDTSCP.

Bundan əlavə, Blink əsasında proqramın icrasının gedişatını vizuallaşdırmaq və yaddaşın məzmununu təhlil etmək üçün interfeys təqdim edən blinkenlights yardım proqramı hazırlanır. Yardımçı proqram tərs sazlama rejimini dəstəkləyən və icra tarixçəsinə geri qayıtmağa və əvvəllər yerinə yetirilən nöqtəyə qayıtmağa imkan verən bir düzəldici kimi istifadə edilə bilər. Layihə Cosmopolitan C kitabxanası, Linux üçün girov izolyasiya mexanizminin limanı və Redbean universal icra edilə bilən fayl sistemi kimi inkişafların müəllifi tərəfindən hazırlanmışdır.

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


Mənbə: opennet.ru

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