Представлен Blink, эмулятор x86-64, опережающий QEMU по производительности

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

#

Представлен Blink, эмулятор x86-64, опережающий QEMU по производительности
Дата публикации:Thu, 05 Jan 2023 08:21:22 +0300


Проектом blink развивается новый эмулятор процессоров x86-64, позволяющий запускать статически собранные Linux-приложения в виртуальной машине с эмулируемым процессором. Основным назначением проекта является предоставление возможности запуска собранных для архитектуры x86-64 Linux-программ в других операционных системах (macOS, FreeBSD, NetBSD, OpenBSD) и на оборудовании с другой аппаратной архитектурой (x86, ARM, RISC-V, MIPS, PowerPC, s390x). Код проекта написан на языке Си (ANSI C11) и распространяется под лицензией ISC. Из зависимостей требуется только libc (POSIX.1-2017).

Проект развивает автор таких разработок, как Си-библиотека Cosmopolitan, порт механизма изоляции pledge для Linux и система универсальных исполняемых файлов Redbean. По функциональности blink напоминает команду qemu-x86_64, но отличается от QEMU более компактным исполнением и значительным приростом производительности. Например, исполняемый файл Blink занимает всего 157 КБ вместо 4 МБ у qemu-x86_64, а по производительности в тесте запуска в эмуляторе GCC Blink обгоняет QEMU в два раза. Для обеспечения высокой производительности применяется JIT-компилятор, на лету преобразующий исходные инструкции в машинный код для целевой платформы (в JIT пока поддерживается только x86_64 и aarch64).

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

Дополнительно проектом разрабатывается утилита blinkenlights, предоставляющая интерфейс для отладки программ на разных платформах, визуализации хода выполнения программы и анализа содержимого памяти. Особенностью отладчика является поддержка режима реверсивной отладки
(Reverse-Debugging), позволяющего перемещаться назад в истории выполнения и возвращаться к уже ранее выполненной точке.

Изображение


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

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

Ответить