Стабильный релиз Wine 8.0

После года разработки и 28 экспериментальных версий представлен стабильный релиз открытой реализации Win32 API — Wine 8.0, который вобрал в себя более 8600 изменений. Ключевым достижением в новой версии отмечается завершение работы по переводу модулей Wine в формат.

В Wine подтверждена полноценная работа 5266 (год назад 5156, два года назад 5049) программ для Windows, ещё 4370 (год назад 4312, два года назад 4227) программ прекрасно работают при дополнительных настройках и внешних DLL. У 3888 программ (года назад 3813, два года назад 3703) наблюдаются небольшие проблемы в работе, которые не мешают использованию основных функций приложений.

Ключевые новшества Wine 8.0:

  • Модули в формате PE
    • После четырёх лет работы полностью завершён перевод всех DLL-библиотек на использование формата исполняемых файлов PE (Portable Executable, применяется в Windows). Применение PE позволяет использовать доступные для Windows отладчики и решает проблемы с поддержкой различных схем защиты от копирования, осуществляющих сверку идентичности системных модулей на диске и в памяти. Также решены проблемы с работой 32-разрядных приложений на 64-разрядных хостах и x86-приложений на системах ARM. Из остающихся задач, которые планируют решить в последующих экспериментальных выпусках Wine 8.x, отмечается перевод модулей на интерфейс системных вызовов NT вместо осуществления прямых вызовов между уровнями PE и Unix.

    • Реализован специальный диспетчер системных вызовов, используемый для трансляции обращений из PE в Unix-библиотеки с целью снижения накладных расходов при выполнении полного системного вызова NT. Например, выполненная оптимизация дала возможность снизить падение производительности при использовании библиотек OpenGL и Vulkan.

    • В Winelib-приложениях сохранена возможность использования смешанных сборок Windows/Unix библиотек в формате ELF (.dll.so), но подобные приложения без 32-разрядных библиотек не будут поддерживать функциональность, доступную через интерфейс системных вызовов NT, такую как WoW64.

  • WoW64
    • Для всех Unix-библиотек предоставлены прослойки WoW64 (64-bit Windows-on-Windows), позволяющие 32-разрядным модулям в формате PE обращаться к 64-разрядным Unix-библиотекам, что после избавления от прямых вызовов PE/Unix даст возможность выполнения 32-разрядных Windows-приложений без установки 32-разрядных Unix-библиотек.

    • При отсутствии 32-разрядного загрузчика Wine обеспечен запуск 32-разрядных приложений в новом экспериментальном Windows-подобном режиме WoW64, в котором 32-разрядный код запускается внутри 64-разрядного процесса. Режим включается при сборке Wine с опцией '--enable-archs'.

  • Графическая подсистема
    • В конфигурации по умолчанию применена светлая тема оформления («Light»). Сменить тему можно при помощи утилиты WineCfg. 0_1647059162.png

    • Графические драйверы (winex11.drv, winemac.drv, wineandroid.drv) преобразованы для выполнения на Unix-стороне системных вызовов и обращения к драйверам через библиотеку Win32u.

      CFD0C5CECEC5D4_1674588099.jpg

    • Реализована архитектура обработчиков вывода на печать (Print Processor), применяемая для исключения в драйвере принтера прямых вызовов между зонами PE и Unix.

    • В API Direct2D реализована поддержка эффектов.

    • В API Direct2D добавлена возможность записи и воспроизведения списков команд.
    • В драйвере для графического API Vulkan добавлена поддержка спецификации Vulkan версии 1.3.237 (в Wine 7 поддерживался Vulkan 1.2).

  • Direct3D
    • Добавлен новый компилятор шейдеров на языке HLSL (High-Level Shader Language), реализованный на базе библиотеки vkd3d-shader. Также на базе vkd3d-shader подготовлены дизассемблер HLSL и препроцессор HLSL.

    • Реализован интерфейс Thread Pump, появившийся в D3DX 10.
    • В эффектах Direct3D 10 добавлена поддержка многих новых выражений.

    • Во вспомогательной библиотеке для D3DX 9 реализована поддержка проекции текстур Cubemap.

  • Звук и видео
    • На базе фреймворка GStreamer реализована поддержка фильтров для декодирования звука в формате MPEG-1.
    • Добавлен фильтр для для чтения потокового звука и видео в формате ASF (Advanced Systems Format).

    • Удалена промежуточная библиотека-прослойка OpenAL32.dll, вместо которой теперь используется родная Windows-библиотека OpenAL32.dll, поставляемая с приложениями.
    • В Media Foundation Player улучшена определение типа содержимого.
    • Реализована возможность управления скоростью передачи данных (Rate control).

    • Улучшена поддержка микшера и отрисовщика (presenter), предлагаемых по умолчанию в Enhanced Video Renderer (EVR).

    • Добавлена начальная реализация API Writer Encoding.

    • Улучшена поддержка загрузчика топологий.

  • Устройства ввода
    • Значительно улучшена поддержка горячего подключения контроллеров.

    • Предложена улучшенная реализация кода для определения игровых рулей, построенная на базе библиотеки SDL.
    • Улучшена поддержка эффекта тактильной обратной связи (Force feedback) при использовании игровых рулей.

    • Реализована возможность управления левым и правым вибромоторами, использующими спецификацию HID Haptic.
    • Изменено оформлением панели управления джойстиком.
    • Через использование бэкенда hidraw обеспечена поддержка контроллеров Sony DualShock и DualSense.
    • Предложен WinRT-модуль Windows.Gaming.Input с реализацией программного интерфейса для доступа к геймпадам, джойстикам и игровым рулям. Для нового API среди прочего реализована поддержка уведомления о горячем подключении устройств, тактильных и вибро эффектов.

  • Интернационализация
    • Обеспечена генерация корректной БД локалей в формате locale.nls из репозитория Unicode CLDR (Unicode Common Locale Data Repository).

    • Функции сравнения строк Unicode переведены на использование БД и алгоритма Windows Sortkey вместо алгоритма Unicode Collation, что приблизило поведение к Windows.

    • В большинстве функций добавлена поддержка верхних диапазонов кодов (плоскостей) Unicode.

    • Предоставлена возможность использования UTF-8 в качестве ANSI-кодировки.

    • Таблицы символов обновлены до спецификации Unicode 15.0.0.

  • Текст и шрифты
    • Для большинства системных шрифтов включено связывание шрифтов, позволившее решить проблему с отсутствием глифов на системах с китайскими, корейскими и японскими локалями.

    • Переработан откат на запасной шрифт в DirectWrite.

  • Ядро (интерфейсы ядра Windows)
    • Реализована БД ApiSetSchema, которая заменила собой модули api-ms-* и позволила сократить потребление диска и памяти.
    • Обеспечено сохранение на диске файловых атрибутов DOS в совместимом с Samba формате, используя для этого расширенные атрибуты ФС.

  • Сетевые возможности
    • Добавлена поддержка протокола OCSP (Online Certificate Status Protocol), применяемого для проверки отозванных сертификатов.

    • Расширен спектр возможностей EcmaScript, доступных в режиме соответствия стандартам JavaScript.
    • Реализован сборщик мусора для JavaScript.

    • В пакете с движком Gecko включены средства для людей с ограниченными возможностями.
    • В MSHTML добавлена поддержка API Web Storage, объекта Performance и дополнительных объектов для обработки событий.

  • Встроенные приложения
    • Все встроенные приложения переведены на использование библиотеки Common Controls 6, с поддержкой тем оформления и отрисовки с учётом экранов в высокой плотностью пикселей.

    • Расширены возможности отладки потоков в отладчике Wine Debugger (winedbg).
    • В утилитах для работы с реестром (REGEDIT и REG) добавлена поддержка типа QWORD.

    • В Notepad добавлена строка состояния с информацией о позиции курсора и функция Goto Line для перехода на указанный номер строки

    • Во встроенной консоли обеспечен вывод данных в кодовой странице OEM.
    • В утилиту sc.exe (Service Control) добавлена команда 'query'.

  • Система сборки
    • Предоставлена возможность сборки исполняемых файлов в формате PE для нескольких архитектур (например, '--enable-archs=i386, x86_64').

    • На всех платформах с 32-разрядным типом long типы данных, определённые в Windows как long, в Wine определены как 'long' вместо 'int'. В Winelib данное поведение можно отключить через определение WINE_NO_LONG_TYPES.

    • Добавлена возможность генерации библиотек без использования dlltool через задание опции '--without-dlltool' в winebuild.

    • Для повышения эффективности загрузки и снижения размера библиотек без кода, включающих только ресурсы, реализована опция '--data-only' в winegcc.

  • Разное
    • Обновлены версии встроенных библиотек Faudio 22.11, LCMS2 2.14, LibJPEG 9e, LibMPG123 1.31.1, LibPng 1.6.39, LibTiff 4.4.0, LibXml2 2.10.3, LibXslt 1.1.37, Zlib 1.2.13.
    • Движок Wine Mono с реализацией платформы .NET обновлён до выпуска 7.4.
    • Реализована поддержка шифрования RSA и цифровых подписей RSA-PSS.
    • Добавлена начальная версия API UI Automation.
    • В дерево исходных текстов включены библиотеки LDAP и vkd3d, которые собираются в формате PE, что избавило от необходимости поставки Unix-сборок данных библиотек.
    • Прекращено использование библиотеки OpenAL.



Источник: http://www.opennet.ru/opennews/art.shtml? num=58539

© OpenNet