Привет! Кажется, мы действительно дождались стабильного релиза Wine 9.0. Спустя год времени и 26 промежуточных версий представлена официальная версия Wine 9.0. Разработчики внесли несколько тысяч изменений, так что здесь есть что обсудить. Основные нововведения — архитектура WoW64 для запуска 32-разрядных программ в 64-разрядном окружении, интеграция архитектуры ARM64, а также добавление драйвера для поддержки Wayland. Конечно, есть и другие новинки. Подробнее о них — под катом.
Совместимость с софтом Windows
В Wine официально подтверждена работа сразу 5 336 программ под Windows. Количество совместимого софта, который без проблем работает в Wine, медленно, но растёт. Так, в прошлом году это было 5 226 программ, три года назад — 5 049. Нельзя забывать и о том, что большое количество ПО без проблем запускается при дополнительных настройках и добавлении внешних DLL. Количество такого софта — 4 397 (год назад — 4 370, два года назад — 4 312, три года назад — 4 227).
И ещё почти 4 000 программ работают, но в процессе выполнения наблюдаются проблемы, которые, впрочем, нельзя назвать критичными, поскольку софт продолжает работать.
А что нового выросло?
Общие дополнения и доработки:
-
Как и говорилось выше, разработчики добавили драйвер winewayland.drv. Он даёт возможность запускать Wine на базе протокола Wayland без применения XWayland и компонентов X11. Это было сделано для того, чтобы обеспечить беспроблемную работу Wayland-окружения c поддержкой запуска Windows-приложений, не требующего установки пакетов, связанных с X11. Что, в свою очередь, означает повышение производительности и отзывчивости игр за счёт отсутствия дополнительных прослоек.
Пока что драйвер считается экспериментальным, но он уже работает и поддерживает широкий спектр функций. Например, это работа сразу с несколькими экранами, масштабирование изображения на экранах с высокой плотностью пикселей, работа с относительными координатами при отслеживании движения мыши и т. п. Для того чтобы активировать драйвер, нужно в параметр реестра HKCUSoftwareWineDrivers добавить wayland следующим образом:
wine reg.exe add HKCU\Software\Wine\Drivers /v Graphics /d x11,wayland
-
Кроме того, продолжается работа над развитием прослойки WoW64 (64-bit Windows-on-Windows). Она даёт возможность запускать 32-разрядные Windows-приложения в 64-разрядных Unix-системах.
-
Также реализован перевод модулей на интерфейс системных вызовов NТ. Ранее же применялись прямые вызовы между уровнями PE и Unix.
-
Появилась опция выполнения Windows-программ на системах с архитектурой ARM64. А ещё добавлена возможность сборки Wine для ABI ARM64EC (ARM64 Emulation Compatible) и поддержка загрузки модулей ARM64EC, применяемых для упрощения портирования на системы ARM64 приложений, изначально написанных для архитектуры x86_64.
Изменения по группам
Звук и видео
-
Здесь разработчики добавили начальную реализацию API DirectMusic. Добавлена поддержка коллекций, инструментов и образцов звуков в формате SoundFont. Добавлена поддержка эффекта Доплера.
-
Кроме того, появилась библиотека FluidSynth для использования API DirectMusic.
-
Добавлена поддержка загрузки звуковых шрифтов (SoundFont — форматы для синтеза на основе сэмплов, используемые для воспроизведения MIDI-файлов) в форматах DLS1 и DLS2, а также в формате SF2, применяемом в Linux.
-
А ещё появился декодировщик для видео в формате видеокодека Indeo IV50.
Рабочий стол
-
Теперь есть возможность экспортировать в основное пользовательское окружение привязок, которые позволяют вызывать запускаемые под управлением Wine приложения в качестве обработчиков протоколов при открытии URL (например, запуск spotify.exe при открытии ссылок вида spotify:user:spotify:playlist:848218482355482821).
-
Можно извлекать данные EDID с данными о параметрах подключённого монитора — например, модель устройства.
-
Пользователь может закрыть окно рабочего стола, которое развёрнуто в полноэкранном режиме, применяя кнопку Exit desktop в меню Start.
Интерфейсы ядра Windows
-
По умолчанию определяется Windows 10.
-
Появилась поддержка слабо фрагментированной кучи (LFH, Low Fragmentation Heap), позволяющей повысить производительность операций выделения памяти.
-
Что касается виртуальной памяти, то для неё добавлена поддержка резервирования памяти (placeholder), позволяющая приложению зарезервировать определённую область виртуальной памяти для использования в будущем.
-
Стала возможной корректная раскрутка стека (stack unwinding) для системных вызовов NT и пользовательских callback-вызовов.
Приложения по умолчанию
-
Что касается отладчика winedbg, то в нём применяется библиотека Zudis для дизассемблирования машинных инструкций Х86.
-
В графических приложениях добавлен вывод информации об ошибках в отдельном диалоге. Ранее же всё это отображалось в консоли.
-
Появилось приложение klist для отображения тикетов Kerberos.
-
Добавлена базовая реализация приложения findstr.
-
Кроме того, в приложении askkill реализована возможность принудительного завершения дочерних процессов, что многие могут найти полезным.
Графика
-
В драйвере графического API Vulkan появилась поддержка спецификации Vulkan 1.3.272 (в Wine 8.0 поддерживался 1.3.237).
-
В WinRT добавлена поддержка тёмного режима.
-
PostScript переработан для поддержки spool-файлов в формате Windows.
Direct3D
-
Здесь появилась поддержка дополнительных эффектов.
-
Кроме того, появилась возможность приостановки разбора многопоточного потока команд в условиях отсутствия обрабатываемых команд отрисовки. Это нужно для снижения потребления энергии до уровня однопоточной обработки с целью выполнения софта, который не занимает всю полосу пропускания потока команд.
-
Появились D3DXFillTextureTX и D3DXFillCubeTextureTX.
Сеть и всё о ней
-
Обновился браузерный движок Gecko — вплоть до версии 2.47.4.
-
В MSHTML реализована поддержка механизма сборки мусора Cycle Collection, кроме того, добавлена поддержка синхронного режима обработки запросов XMLHttpRequest.
-
Появилась поддержка уведомлений об изменении состояния сетевого интерфейса.
Добавленные библиотеки и зависимости
-
В состав интегрированы библиотеки FluidSynth 2.3.3, Musl 1.2.3 (только математические функции) и Zydis 4.0.0.
-
Обновлены до новых версий компоненты Vkd3d 1.10, Faudio 23.12, OpenLDAP 2.5.16, LCMS2 2.15, LibMPG123 1.32.2, LibPng 1.6.40, LibTiff 4.6.0, LibXml2 2.11.5, LibXslt 1.1.38 и Zlib 1.3. Движок Wine Mono с реализацией платформы .NET обновлён до выпуска 8.1.0.
-
В драйвере winewayland.drv в качестве внешних зависимостей задействована клиентская библиотека Wayland, а также библиотеки xkbcommon и xkbregistry.
-
Для поддержки смарт-карт задействована внешняя библиотека PCSClite (в macOS — PCSC).
-
Для сборки PE-файлов на платформах, отличных от i386, теперь требуется наличие кросс-компилятора с поддержкой директив .seh для обработки исключений.
Если вы уже установили «девятку», расскажите, возникали ли какие-то проблемы или пока что всё идёт гладко и без затруднений/глюков?
Автор:
divolko3