Первый выпуск Blink, высокопроизводительного эмулятора систем x86-64

Новости мира unix. Хотите узнать секрет вечного счастья? Откройте страницу 246.
Ответить
acolyte
Аватара пользователя
Сообщения: 3259
Зарегистрирован: 20.08.2022

#

Первый выпуск Blink, высокопроизводительного эмулятора систем x86-64
Дата публикации:Mon, 05 Jun 2023 09:34:03 +0300




Опубликован первый значительный выпуск проекта Blink, развивающего эмулятор процессоров x86-64, позволяющий запускать статически и динамически собранные Linux-приложения в виртуальной машине с эмулируемым процессором. При помощи Blink cобранные для архитектуры 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 занимает всего 221 КБ (при урезанной сборке - 115 КБ) вместо 4 МБ у qemu-x86_64, а по производительности в некоторых тестах, таких как запуск в эмуляторе GCC и выполнение математических операций, обгоняет QEMU примерно в два раза.




Для обеспечения высокой производительности применяется JIT-компилятор, на лету преобразующий исходные инструкции в машинный код для целевой платформы. Поддерживается прямой запуск в эмуляторе исполняемых файлов в форматах ELF, PE (Portable Executables) и bin (Flat executable), собранных со стандартными Си-библиотеками Cosmopolitan, Glibc и Musl. Реализована встроенная поддержка 180 системных вызовов Linux и эмуляция около 600 процессорных инструкций x86, охватывающих наборы инструкций i8086,
i386,
SSE2,
x86_64,
SSE3,
SSSE3,
CLMUL,
POPCNT,
ADX,
BMI2 (MULX, PDEP, PEXT),
X87,
RDRND,
RDSEED и
RDTSCP.



Дополнительно на базе Blink разрабатывается утилита blinkenlights, предоставляющая интерфейс для визуализации хода выполнения программы и анализа содержимого памяти. Утилита может применяться в качестве отладчика, поддерживающего режим реверсивной отладки
(Reverse-Debugging) и позволяющего перемещаться назад в истории выполнения и возвращаться к уже ранее выполненной точке. Проект развивает автор таких разработок, как Си-библиотека Cosmopolitan, порт механизма изоляции pledge для Linux и система универсальных исполняемых файлов Redbean.
Изображение


Новость позаимствована с opennet.ru
Ссылка на оригинал: https://www.opennet.ru/opennews/art.shtml?num=59247

Жизнь за Нер'зула!

Ответить