Blink бірінші шығарылымы, өнімділігі жоғары x86-64 эмуляторы

Blink жобасының бірінші маңызды шығарылымы жарияланды, ол эмуляцияланған процессоры бар виртуалды машинада статикалық және динамикалық түрде құрастырылған Linux қолданбаларын іске қосуға мүмкіндік беретін x86-64 процессорларының эмуляторын әзірледі. Blink көмегімен x86-64 архитектурасы үшін құрастырылған Linux бағдарламаларын басқа POSIX-үйлесімді операциялық жүйелерде (macOS, FreeBSD, NetBSD, OpenBSD, Cygwin) және басқа аппараттық архитектурасы бар жабдықта (x86, ARM, RISC-V, MIPS) іске қосуға болады. , PowerPC, s390x). Жоба коды Си тілінде (ANSI C11) жазылған және ISC лицензиясы бойынша таратылады. Тәуелділіктердің ішінен тек libc (POSIX.1-2017) қажет.

Функционалдылық тұрғысынан Blink qemu-x86_64 пәрменіне ұқсас, бірақ QEMU-дан оның ықшам дизайнымен және өнімділігінің айтарлықтай артуымен ерекшеленеді. Мысалы, Blink орындалатын файлы qemu-x221_115 үшін 4 МБ орнына бар болғаны 86 КБ (жұмсартылған құрастырумен - 64 КБ) алады және кейбір сынақтарда, мысалы, GCC эмуляторында жұмыс істеу және математикалық операцияларды орындау, ол жақсы нәтиже береді. QEMU шамамен екі есе өсті.

Жоғары өнімділікті қамтамасыз ету үшін бастапқы нұсқауларды мақсатты платформа үшін машиналық кодқа жылдам түрлендіретін JIT компиляторы пайдаланылады. Эмулятор Cosmopolitan, Glibc және Musl стандартты C кітапханаларымен құрастырылған ELF, PE (Portable Executables) және bin (Flat executables) пішіміндегі орындалатын файлдарды тікелей іске қосуды қолдайды. i180, i600, SSE86, x8086_386, SSE2, SSSE86, CLMUL, POPCNT, ADX, BMI64 (MULX, PDEP, PEXT), X3, RDDRNDSE қамтитын 3 Linux жүйелік қоңырауларына және 2 x87 процессор нұсқауларын эмуляциялауға кірістірілген қолдау. нұсқаулар жиыны және RDTSCP.

Сонымен қатар, Blink негізінде бағдарламаның орындалу барысын визуализациялау және жад мазмұнын талдау үшін интерфейсті қамтамасыз ететін blinkenlights утилитасы әзірленуде. Утилитаны кері жөндеу режимін қолдайтын және орындалу журналында кері жылжытуға және бұрын орындалған нүктеге оралуға мүмкіндік беретін жөндеуші ретінде пайдалануға болады. Жобаны Cosmopolitan C кітапханасы, Linux үшін кепілді оқшаулау механизмінің порты және Redbean әмбебап орындалатын файлдық жүйесі сияқты әзірлемелердің авторы әзірлеген.

Blink бірінші шығарылымы, өнімділігі жоғары x86-64 эмуляторы


Ақпарат көзі: opennet.ru

пікір қалдыру