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

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

#

Стабильный релиз Wine 8.0
Дата публикации:Tue, 24 Jan 2023 23:53:59 +0300




После года разработки и 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.
    Изображение
    Графические драйверы (winex11.drv, winemac.drv, wineandroid.drv) преобразованы для выполнения на Unix-стороне системных вызовов и обращения к драйверам через библиотеку Win32u.
    Изображение

    Реализована архитектура обработчиков вывода на печать (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'.
<!--
Инструменты для разработки
  • - The PE conversion has made it necessary to implement a new mechanism to run
    static C++ constructors in Winelib ELF applications. Unfortunately, this
    requires the corresponding modules to be rebuilt with Wine 8.0. The rebuilt
    modules will still run correctly on older Wine versions, but older modules will
    no longer execute static constructors when run on Wine 8.0.

    - In regression tests, individual checks can be marked as "flaky". This is useful
    for checks that depend on external factors such as network timings. The errors
    are still reported but not counted as failures.

    - Test failure messages can be printed in color by setting the WINETEST_COLOR
    environment variable, to make them easier to spot in the test log.

    - The Resource Compiler (WRC) and Message Compiler (WMC) use the locale.nls
    database to detect languages and codepages, and thus support all the Windows
    locales.

    - The WineDump tool supports printing the contents of Enhanced Metafile spool
    files, as well as more contents from PDB files.
-->



Система сборки
  • Предоставлена возможность сборки исполняемых файлов в формате 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.
<!--
Специфичные для платформ возможности
  • - The experimental WoW64 architecture is supported on macOS versions from 10.15.

    - 64-bit time_t is supported on 32-bit Linux with recent Glibc versions.

    - Exception unwinding on ARM platforms is extended with EHABI support on ARM32
    and Dwarf support on ARM64.
-->


Разное
  • Обновлены версии встроенных библиотек 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.


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

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

Ответить