Излязоха Wine 5.0

Излязоха Wine 5.0На 21 януари 2020 г. се състоя официалният релиз на стабилната версия Wine 5.0 — безплатен инструмент за стартиране на нативни Windows приложения в UNIX среда. Това е алтернативна, безплатна реализация на Windows API. Рекурсивната акроним WINE означава "Wine Is Not an Emulator".

След тази версия стои около година разработка и над 7400 отделни промени. Водещият разработчик Александър Жулиард (Alexandre Julliard) изтъква четири:

  • Поддръжка на модули в PE формат. Това решава проблеми с различни схеми за защита от копиране, които проверяват системните модули на диска и в паметта.
  • Поддръжка на множество монитори и GPU, включително динамично променяне на настройките.
  • Реимплементация на XAudio2, базирана на проекта FAudio, отворена реализация на звукови библиотеки DirectX. Преходът към FAudio позволява по-високо качество на звука в игрите, използване на смесване на обема, разширени звукови ефекти и др.
  • Поддръжка на Vulkan 1.1.


По-подробно за ключовите нововъведения.

PE модули

С наличието на компилатор MinGW, повечето модули на Wine сега се компилират в изпълними файлове PE (Portable Executable, бинарен формат на Windows) вместо ELF.

Изпълнимите файлове PE вече се копират в директорията ~/.wine вместо да се използват фиктивни DLL файлове, което прави приложенията по-подобни на реални инсталации на Windows.

Все още не всички модули са конвертирани в PE формат. Работата продължава.

Графична подсистема

Както беше споменато по-горе, добавена е поддръжка за работа с множество монитори и графични адаптери.

Vulkan драйверът е обновен до спецификациите Vulkan 1.1.126.

Освен това, библиотеката WindowsCodecs сега поддържа допълнителни растерни формати, включително формати с индексирана палитра.

Direct3D

Приложенията Direct3D на цял екран вече блокират извикването на скрийнсейвера.

За приложения DXGI е реализирана възможността за превключване между режим на цял екран и прозоречен режим с помощта на стандартната комбинация Alt+Enter.

Възможностите на Direct3D 12 са разширени: поддръжка на превключване между режим на цял екран и прозоречен режим, промени в режимите на екрана, представяне с мащабиране и интервали на замяна на буферите за рендиране (swap interval). Всички тези функции вече бяха реализирани за предишни версии на Direct3D API.

Участниците на проекта внимателно работиха и отстраниха буквално стотици бъгове, така че обработката на Wine на различни гранични ситуации е подобрена. Сред тях са проби на 2D ресурси в 3D семплери и обратно, използване на стойности извън допустимите диапазони за тестове на прозрачност и дълбочина, рендериране с отразяващи текстури и буфери, използване на некоректни клипери (обект DirectDraw) и много други.

Намален е размерът на необходимото адресно пространство при зареждане на 3D текстури, компресирани с метода S3TC (вместо да се зареждат изцяло, текстурите се зареждат на парчета).

За старите приложения DirectDraw са внесени различни подобрения и корекции, свързани с изчисляването на осветлението.

Разширена е базата от графични карти, разпознаваеми в Direct3D.

Мрежа и криптография

Двигателят Gecko е обновен до версия 2.47.1 за поддръжка на съвременни инструменти. Реализиран е редица нови HTML API.

В MSHTML е реализирана поддръжка за SVG елементи.

Добавени са много нови функции на VBScript (например, обработчици на грешки и изключения).

Реализирана е възможността за получаване на параметри за настройка на HTTP прокси чрез DHCP.

В криптографската част е реализирана поддръжка на криптографски ключове, базирани на елиптични криви (ECC) чрез GnuTLS, добавена е възможността за импорт на ключове и сертификати от файлове в PFX формат, добавена е поддръжка на схема за генериране на ключове, базирана на парола PBKDF2.

Излязоха Wine 5.0
Adobe Photoshop CS6 под Wine

Други значителни нововъведения

  • Поддръжка на спинлокове в ядрото NT.
  • Благодарение на изтичането на патента за компресия на текстури DXTn и S3 стана възможно включването им в дефолтната реализация.
  • Поддръжка на инсталиране на драйвъри plug-and-play.
  • Различни подобрения на DirectWrite.
  • Подобрена поддръжка на Windows Media Foundation API.
  • По-добра синхронизация на примитиви благодарение на реализацията на фьютексите.
  • Съвместно използване на Wine-Mono за икономия на място вместо отворената реализация на .NET за всеки. ~/.wine.
  • Поддръжка на Unicode 12.0 и 12.1.
  • Реализация на начален HTTP сервис (HTTP.sys) като заместител на Winsock API и IIS, в резултат на което производителността стана по-висока, отколкото при Windows Sockets API.
  • По-добра съвместимост с отладчиците на Windows.
  • По-добра поддръжка на LLVM MinGW и подобрения в крос-компилацията на WineGCC.

Можем също така да споменем подобренията в потребителския интерфейс. Например, свитите прозорци сега се показват с помощта на заглавен ред, а не с икони в стил Windows 3.1. Подобрена е поддръжката на игрови контролери, включително hat switch, волан и педали.

В Wine са премахнати вградените декодери за AVI, MPEG-I и WAVE, вместо тях сега се използват системните GStreamer или QuickTime.

Добавена е възможността да се прилага отладчик от Visual Studio за дистанционно отстраняване на грешки в приложения, стартирани в Wine, частично е реализирана библиотеката DBGENG (Debug Engine), а от събраните за Windows файлове е премахната зависимостта от libwine.

За оптимизация на производителността различни функции за работа с времето са пренасочени към използването на високопроизводителни системни функции за работа с таймери, което е позволило да се намалят разходите в цикъла на показване на много игри. Направени са и други оптимизации на производителността.

Пълен списък с промените виж. тук..

Изходният код на Wine 5.0, огледало
Бинарни файлове за различни дистрибуции
Документация

На сайта AppDB поддържа база данни с Windows-приложения, съвместими с Wine. Ето лидерите по броя на гласовете:

  1. Final Fantasy XI
  2. Adobe Photoshop CS6 (13.0)
  3. World of Warcraft 8.3.0
  4. EVE Online Current
  5. Magic: The Gathering Online 4.x

Можем да предположим, че тези приложения в Wine се стартират най-често.

Бележка. Релизът на Wine 5.0 е посветен на паметта на Юзеф Кучия (Józef Kucia), който трагично почина през август 2019 година на 30 години, докато изследваше пещера на юг от Полша. Юзеф беше важен участник в разработката на Direct3D Wine и водещ автор на проекта. vkd3dПо време на работата си по Wine е внесъл повече от 2500 патча.

Излязоха Wine 5.0

Източник: habr.com

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster