Пуснат Wine 5.0

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

Тази версия има около една година разработка и повече от 7400 индивидуални промени. Водещият разработчик Александър Джулиард идентифицира четири:

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


Научете повече за ключови иновации.

PE модули

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

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

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

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

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

Драйверът на Vulkan е актуализиран до спецификациите на Vulkan 1.1.126.

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

Direct3D

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

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

Функциите на Direct3D 12 са подобрени, за да включват поддръжка за превключване между режим на цял екран и режим с прозорци, промяна на режимите на екрана, мащабиране на изгледи и интервали за смяна. Всички тези функции вече са внедрени за предишни версии на 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 spinlocks на ядрото.
  • Благодарение на изтичането на патента за компресиране на DXTn и S3 текстури, стана възможно включването им в изпълнението по подразбиране.
  • Поддържа plug-and-play инсталиране на драйвери.
  • Различни подобрения на DirectWrite.
  • Подобрена поддръжка за API на Windows Media Foundation.
  • По-добра синхронизация на примитивите благодарение на внедряването на фютексове.
  • Споделяне на 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. Подобрена поддръжка за контролери за игри, включително превключвател за шапки, волан и педали.

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

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

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

Вижте пълния списък с промените. тук.

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

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

  1. Final Fantasy XI
  2. Adobe Photoshop CS6 (13.0)
  3. Светът на Warcraft 8.3.0
  4. EVE Online Current
  5. Magic: The Gathering Online 4.x

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

Забележка. Пускането на Wine 5.0 е посветено на паметта на Йозеф Куция, който трагично загина през август 2019 г. на 30-годишна възраст, докато изследва пещера в Южна Полша. Йозеф имаше важен принос за разработването на Direct3D Wine, както и водещ автор на проекта vkd3d. По време на работата си върху Wine той е допринесъл с повече от 2500 пача.

Пуснат Wine 5.0

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

Добавяне на нов коментар