Как стать автором
Обновить
1024.99
МТС
Экосистема цифровых сервисов

Стабильный релиз Wine 9.0? Спустя год он всё-таки появился — вместе с 7 000 изменений

Время на прочтение 5 мин
Количество просмотров 21K

Привет, Хабр! Кажется, мы действительно дождались стабильного релиза 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. Что, в свою очередь, означает повышение производительности и отзывчивости игр за счёт отсутствия дополнительных прослоек.

    Пока что драйвер считается экспериментальным, но он уже работает и поддерживает широкий спектр функций. Например, это работа сразу с несколькими экранами, масштабирование изображения на экранах с высокой плотностью пикселей, работа с относительными координатами при отслеживании движения мыши и т. п. Для того чтобы активировать драйвер, нужно в параметр реестра HKCU\Software\Wine\Drivers добавить 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 для обработки исключений.

Если вы уже установили «девятку», расскажите, возникали ли какие-то проблемы или пока что всё идёт гладко и без затруднений/глюков?

Теги:
Хабы:
+45
Комментарии 22
Комментарии Комментарии 22

Публикации

Информация

Сайт
www.mts.ru
Дата регистрации
Дата основания
Численность
свыше 10 000 человек
Местоположение
Россия