Излезе финалната версия на Wine 6.0: нововъведения и промени

0
2347

След една година разработване и 29 експериментални версии бе представена финалната версия на отворената реализация на Win32 API – Wine 6.0, в която са направени над 8300 промени. От ключовите нововъведения и промени в новата версия можем да отбележим интегрирането на базовите модули Wine в PE формат, бекендът на базата на графичния API Vulkan за WineD3D, новата реализация на текстовия терминал, поддръжката на DirectShow и фреймуърка Media Foundation.

В новата версия на Wine вече е потвърдена пълноценната работа на 5049 (преди година година бяха 4869) програми за Windows, още 4227 (преди година 4136) нормално работят при допълнителни настройки и външни DLL  библиотеки, при 3703 програми се наблюдават известни незначителни проблеми в работата, които не пречат на използването на всички основни функции на съответното приложение.

Ключови нововъведения във Wine 6.0

Модули с PE формат
  • Базовите DLL библиотеки, включително NTDLL, KERNEL32, GDI32 и USER32 са прехвърлени към използването на PE формата (Portable Executable) на изпълнимите файлове, който се използва във Windows, вместо досега използвания ELF. Използването на PE решава проблемите  с поддръжката на различните методи за защита от копиране, при които се осъществява проверка на идентичността на системните модули както на диска, така и в паметта
  • Предложен е нов механизъм за прикрепване на Unix библиотеките към PE модулите за осъществяване на възможност за извикване на Unix библиотеките от PE файловете. Допълнителните Unix библиотеки се разпознават по наличието на файл с разширението so и същото име като на PE модула – ntdll.so за ntdll.dll и т.н.

  •  Прекратено е обвързването на модулите Winelib с библиотеката libwine.so и е изключено зареждането на libwine.so по време на изпълнението. Заради тази промяна е изгубена обратната съвместимост – тоест, модулите на Wine 6.0 не са съвместими с по-старите версии на Wine и не могат да се използват в тези стари версии.  Библиотеката libwine вече не се използва в Wine 6.0, но продължава да се разпространява за осигуряване на съвместимост с модулите за старите версии на Wine.
  •  Реализирана е поддръжката на PE модули, при които информацията за дебъгерите е записана в отделен файл, като по този начин се намалява размера на инсталационните файлове
 Графичната подсистема
  • Добавена е възможността за рисуване на дъги, елипси и правоъгълници със закръглени ъгли с помощта на API Direct2D
  • В базовия каталог на Wine е осигурено поставянето на стандартния цветови sRGB профил за приложенията, на които е необходимо неговото директно зареждане

  • Във WindowsCodecs е добавена поддръжката на декодиране на изображенията във форматите  DDS (DirectDraw Surface) и JPEG-XR, както и кодирането в GIF формат
  • В драйвера на Vulkan е реализирана поддръжката на спецификацията на графичния API Vulkan 1.2.162. Осигурено е създаването на JSON манифест и записи в системния регистър, използвани от официалната зареждаща програма на Vulkan
  • подобрена е реализацията на GdiPlus, като е добавена и поддръжката на разширяващи се линии, допълнителни стилове за защриховане и нов тип записи в meta файловете

Direct3D

  • За WineD3D е реализиран експериментален енджин за рендиране, който осъществява транслацията на извикванията на Direct3D 12 към графичния API Vulkan. За работата на този енджин е необходима библиотеката libvkd3d-shader, която всъщност осъществява транслацията
  • Реализирани са нови възможности на Direct3D 11, като независимо смесване на изображенията, смесване от няколко източника, маски за MSAA (Multi-Sample Anti-Aliasing) и други
  • Разширена е базата данни на графичните карти за Direct3D

Ядрото (интерфейсите на Windows ядрото)

  • Реализиран е режим на съвместимост с различните версии на Windows, който дава възможност съответното приложение да получи необходимия номер на версията на Windows
  • Добавена е възможност за прехвърлянето на ini файловете от win9x в съответните параметри на системния регистър (NT)
  • Добавен е драйверът NetIO.sys, който се използва за достъп до веригата драйвери защитени от копиране
  • В ntdll е добавена поддръжката на AVX регистрите х86

Мрежови възможности

  • Браузърният енджин Gecko е обновен до версия 2.47.2
  • Реализиран е API WebSocket
  • Подобрена е поддръжката на LDAP процесите и на Active Directory
  • Добавена е началната реализация на мрежовия драйвер NDIS

Звук и видео

  • Съществено е преработена реализацията на фреймуърка Media Foundation, в който сега е добавена началната поддръжка на компонентите Media Session, Streaming Audio Renderer (SAR), Video Renderer, EVR mixer, Topology Loader и Media Engine
  • Предложена е по-пълна реализация на библиотеката AMStream (ActiveMovie Multimedia Streaming), в която вече са достъпни по-пълноценни средства за стрийминг и за управление честотата на дискретизация
  • Във Video Mixing Renderer е добавена поддръжката на режим без програмни прозорци (windowless) и на режим без рендиране (renderless), възможност за автоматично преоразмеряване на размера на видеото според размера на програмния прозорец, добавено е хардуерно ускорение на преобразуването на цветовото пространство
  • За извеждането на видео вместо GDI по подразбиране се използва компонента Video Mixing Renderer
  • Добавени са филтрите DirectShow File Writer и DirectX Media Object (DMO) Wrapper
  • Добавени са аудио библиотеките XACT3 Engine (Cross-platform Audio Creation Tool, xactengine3_*.dll), реализирани чрез FAudio

Алтернативните архитектури

  • Прекратена е поддръжката на 32-битовата архитектура PowerPC, която вече бе в неработоспособен вид
  • Добавена е обработката на изключения и работата със стека за 32 и 64-битовите ARM системи
  • Въведена е началната поддръжка на ARM64 за macOS с новите чипове на Apple
  • За FreeBSD са включени съответните оптимизации за игнориране на главните и малките букви в имената на файловете

 

5 5 гласа
Оценете статията
Абонирай се
Извести ме за
guest
0 Коментара
Отзиви
Всички коментари