Vodka, или почему nginx.exe у нас в шесть раз быстрее, чем под Wine

TizZy 14 минут назад Объяснить с Vodka, или почему nginx.exe у нас в шесть раз быстрее, чем под Wine Простой 14 мин 225 C * Linux * Системное программирование * Nginx * Обзор Всем привет!Под прошлой статьёй я пообещал...
Will Anthropic have the best AI model at the end of October 2026?
Вот важная новость с фронта ИИ: TizZy 14 минут назад Объяснить с Vodka, или почему nginx. exe у нас в шесть раз быстрее, чем под Wine Простой 14 мин 225 C * Linux * Системное программирование * Nginx * Обзор Всем привет! Под прошлой статьёй я пообещал показать бенчмарки nginx.
Бенчмарк № 0 (затравочка)Но прежде чем перейти к подробному разбору бенчмарков, расскажу об устройстве Vodka и покажу, как мы получаем оригинальные файлы Windows, не нарушая лицензий. Чем же мы занимаемся? Кратко повторюсь: идея — создать универсальный слой совместимости, чтобы ПО могло работать на нашей ОС, независимо от того, для какой ОС оно изначально было создано.
Технические детали
Мы не пытаемся гнаться за всем многообразием библиотек пространства пользователя. Нам важно, чтобы программа не просто запускалась, а работала на наших условиях, под полным контролем и при этом максимально приближалась по производительности к тому, что даёт её штатный путь исполнения. Поэтому мы берём оригинальные файлы целиком, всей связкой, как есть и подключаем к нашему «полу» так, чтобы они чувствовали себя как дома.
Vodka можно разделить на четыре слоя, и выглядеть это будет так:Слои VodkaПрограммы в пространстве пользователя (apps)Это то самое программное обеспечение, которое мы хотим запустить независимо от операционной системы, для которой оно было спроектировано. Сюда же, если речь о ПО для Windows, будет входить большое количество разнообразных библиотек и сопутствующих файлов. Библиотеки прослойки (os-proxy)Сюда входят файлы, которые мы даём программам под видом их зависимостей.
При этом их список довольно небольшой, так как мы подменяем самые низкоуровневые библиотеки пространства пользователя, которые являются API‑обёртками над системными вызовами к ядру ОС. Мы грамотно и изящно реализуем это API, опираясь на возможности следующего ОС-независимого слоя. Это сложная и муторная работа, но мы планомерно реализуем функцию за функцией, находя кандидатов по журналу необработанных вызовов при падениях очередной тестируемой программы.
Отраслевые последствия
Сейчас реализовано 68,7% Nt-вызовов ntdll и 77,5% Nt-вызовов win32u. Немаловажно добавить, что на этом же слое находится и Ke‑API, который нам необходим для запуска оригинальных драйверов и прочей «ядерной» работы. Примитивы Vodka (vdk primitives)Это самый важный слой, который позволяет нам выделить абстрактный, ОС‑независимый API к системе.
Он разделён на несколько частей, и у каждой своя зона ответственности. Здесь располагаются компоненты: vdkldr — загрузка исполняемых файлов, vdkio — работа с файлами, vdksync — примитивы синхронизации, vdkgl — работа с графикой и другие. Бэкенд примитивов (primitives backend)Здесь мы описываем всё то, что является ОС‑спецификой, то есть как и с чем будут работать примитивы.
Событие, по словам экспертов, усилит конкуренцию в сфере ИИ.






