Промените и нововъведенията във Wine 5.0

18
1869

След една година разработване и 28 предварителни експериментални версии бе представена отворената реализация на Win32 API – Wine 5.0, в който са направени 7400 промени. Сред ключовите нововъведения са използването на модули с PE формат във Wine 5.0, поддръжката на компютърни конфигурации с повече от един монитор, нова реализация на звуковия API XAudio2 интерфейс и поддръжката на API Vulkan 1.1.

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

Ключови промени и нововъведения във Wine 5.0

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

  • Изпълнимите PE файлове сега се копират в папката ~/.wine ($WINEPREFIX) и се използват вместо предишните фиктивни DLL файлове. По този начин инсталирането на програма е аналогично на реалното инсталиране във Windows, но се заема малко повече дисково пространство
  • Модулите с PE формат могат да използват стандартните wchar Си-функии и константи с уникод (например L“abc“)
  • Във Wine C runtime е добавена поддръжката на линкване на двоични файлове, компилирани с MinGW
Графичната подсистема
  • Добавена е поддръжката на работа с няколко монитора и няколко видеокарти, включително възможност за динамична промяна на настройките
  • Обновен е драйвера за API Vulkan, който сега съответства на спецификациите Vulkan 1.1.126
  • В библиотеката WindowsCodecs е реализирана възможност за преобразуване на нови файлови формати, включително формати с индексирана цветова палитра
Direct3D
  • При стартирането на Direct3D приложения на цял екран се блокира скрийнсейвъра
  • В DXGI (DirectX Graphics Infrastructure) е добавена поддръжката за подаване на информация към приложението, че предстои минимизиране на неговия програмен прозорец. По този начин значително се намаляват използваните системни ресурси при минимизирането на прозореца
  • За приложенията, използващи DXGI е реализирана възможност за превключване между пълен екран и прозоречен режим чрез клавишната комбинация Alt+Enter
  • Разширени са възможностите на реализацията на Direct3D 12. Вече се поддържа превключване между работата на цял екран или в прозорец, могат да се променят графичните режими на екрана, вече има мащабиране и управление на тайминга на подмяна на графичния буфер (swap interval)

  • Подобрена е обработката на граничните ситуации, като например използване на параметри извън техните диапазони – прозрачност, работа с буфери и текстури и други
  • В Direct3D 8 и 9 по-точно се проследяват неправилно обработените области на текстурите
  • Намален е размерът на необходимото адресно пространство при зареждането на 3D текстурите, компресирани чрез S3TC алгоритъма, при който те се зареждат на части, вместо наведнъж
  • Реализиран е ID3D11Multithread интерфейса за защита на критичните секции в многопоточните приложения
  • За старите приложения с DirectDraw са направени многобройни подобрения по отношение правилното изчисляване осветяването на сцените
  • Реализирани са допълнителни извиквания за получаване на информация за шейдърите в API ShaderReflection
  • Във wined3d е добавена поддръжката на работа с компресирани ресурси
  • Значително е разширена е базата данни на графичните карти, разпознавани от Direct3D
D3DX
  • Вградена е поддръжката на S3TC (S3 Texture Compression) компресирането на триизмерните текстури
  • Коригирани са операциите за използване на текстури и повърхности, които не отразяват светлината
  • Направени са редица подобрения и нововъведения във фреймуърка за специалните ефекти
Ядрото (интерфейсите на ядрото на Windows)
  • Повечето функции, използвани в Kernel32, са преместени в KernelBase, като по този начин се следва оригиналната архитектура на ОС Windows
  • Дадена е възможност за смесване на 32 и 64-битовите DLL библиотеки в папките, използване при зареждането на програмите. Ако бъде намерена коректната 32 или 64-битова библиотека, то аналогичната библиотека със същото име се отхвърля
  • При драйверите за различните устройства е подобрена емулацията на обектите на ядрото на ОС Windows
  • Реализирани са работещи на ниво ядро обекти за синхронизация, като spin блокажи и бързи мютекси
  • Осигурено е коректното информиране на приложенията за състоянието на акумулаторната батерия
Потребителски интерфейс и интеграция с десктопа
  • Минимизираните прозорци вече могат да се изобразяват и чрез използване на заглавието, а не само на иконките
  • Добавени са стандартните стилове на иконките SplitButton и Command Links
  • За папките Downloads и Templates са създадени символни препратки, указващи съответните директории в Unix системите
Устройствата за въвеждане на информация
  • При стартирането на Windows програмите е осигурено автоматичното зареждане на необходимите драйвери за Plug & Play устройствата
  • Подобрена е поддръжката на игровите контролери, включително на мини джойстиците, педалите за газ и спирачка
  • Прекратена е поддръжката на стария Linux API, който се използваше в ядрата до версия 2.2
.NET
  • Енджинът Mono е обновен до версия 4.9.4 и сега включва компоненти от фреймуърка Windows Presentation Foundation (WPF)
  • Добавена е възможност за инсталиране на допълнения от Mono и Gecko в една обща папка – /usr/share/wine

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

  • Браузърният енджин Wine Gecko, който се използва в библиотеката MSHTML е обновен до врсия 2.47.1. Реализирана е поддръжката на нови HTML API
  • В MSHTML е реализирана поддръжката на SVG елементите
  • Добавени са редица нови VBScript функции – Hour, Day, Month, String, LBound, RegExp.Replace, РScriptTypeInfo_* и ScriptTypeComp_Bind* и т.н.
  • Осигурено е съхраняването на състоянието на кода във VBScript и JScript (script persistence)
  • Добавена е началната реализация на HTTP (WinHTTP) и свързания с него API (HTTPAPI) за клиентските и сървърните приложения, които получават и изпращат заявки чрез HTTP протокола
  • Реализирана е възможността за получаване на параметрите на настройка на HTTP проксита чрез DHCP
Криптография
  • Вече се поддържат криптографски ключове, базирани на елиптични криви (ECC) при използването на GnuTLS
  • Добавена е възможност за импортиране на ключове и сертификати от файловете с PFX формат
  • Поддържа се PBKDF2 алгоритъма за формиране на ключ
Текстове и шрифтове
  • В реализацията на API DirectWrite е добавена поддръжката възможностите на OpenType, свързани с позиционирането на глифовете, включително кърнинга
  • Интерфейсите DirectWrite вече съответстват на новия SDK
Звук и видео
  • Предложена е нова реализация на звуковия API XAudio2, базиран на FAudio проекта. Използването на FAudio във Wine дава възможност за постигането на по-качествен звук в игрите, както и реализирането на сложни звукови ефекти
  • Добавен е голям брой нови извиквания в реализацията на фреймуърка Media Foundation, както и поддръжката на вградени и потребителски поредици, Source Reader API, Media Session и т.н.

  • Филтърът за прихващане на видео използва API v4l2 вместо v4l1 API, с което е разширен диапазона на поддържаните камери
  • Премахнати са вградените AVI, MPEG-I и WAVE декодери, като сега вместо тях се използват системните GStreamer или QuickTime
  • Добавено е подмножеството на конфигурационните API VMR7
  • В настройките на звука е добавена възможност за регулиране силата на звука на всеки един канал поотделно
Интернационализация
  • Unicode таблиците са обновени до версия 12.1.0
  • реализирана е поддръжката на нормализация за Unicode
  • Осигурено е автоматичното разпознаване на географския регион (HKEY_CURRENT_USERControl PanelInternationalGeo) на базата на текущата локала
ARM платформата
  • За ARM64 архитектурата в ntdll е добавена възможност за разгръщане на стека (stack unwinding). Вече се поддържат външни libunwind библиотеки
  • За ARM64 архитектурата в реализирана поддръжката на безшевни проксита (stubless proxies)
Инструменти за разработване
  • Добавена е възможност за използване на дебъгера от Visual Studio за отдалечено дебъгване на приложенията, стартирани във Wine
  • Частично е реализирана библиотеката DBGENG (Debug Engine)
Оптимизация на производителността
  • Всички функции за работа с времеви интервали вече използват високопроизводителните системни функции за работа с таймера, което значително е намалило разходите на ресурси при рендирането на почти всички игри

  • Добавена е възможност за използването на файловата система Ext4 без значение дали се използват големи или малки букви
  • Оптимизирана е производителността при обработката на голям брой списъци с елементи, работещи в режим LBS_NODATA

18
ДОБАВИ КОМЕНТАР

avatar
8 Коментари
10 Отговори на коментарите
0 Последователи
 
Коментарът с най-много реакции
Най-горещият коментар
  Абонирай се  
нови стари оценка
Извести ме за
Иван
Иван

Мхм. Сега всички Linux любители ще могат да пускат така омразния Windows софтуер.

Пламен
Пламен

Само, ако се налага с нещо много екзотично, което става все по-рядко.

Pirate
Pirate

Линукс феновете са веганите на дигиталния свят, а Wine е тяхното хапче с аминокиселини.

Иван
Иван

Pirate, а пък линукс хейтърите сте безглутеновите жендери…
Всеки ползва каквото иска. Някой „нямате какво да криете“ и си снимате боба всеки ден във фейсбук. Всеки си ползва живота както намери за добре.

Мангалата
Мангалата

Чичо ваньо, не виндос софтуера ни е омразен, ами сами вин-дос. Иначе си обичаме и ДОС софтуера, тва ретро-игрички едно-друго с DOSEMU.

Самоуиндоуслинуксзанищонестава
Самоуиндоуслинуксзанищонестава

За какво им е на линук феновете Wine, нали все скачат че за всичко си имат алтернативи, че даже били по добри от windows-ките.

Иван
Иван

За да видят как се мъчиш ти със спайуера и казваш че ти е хубаво. Всички странни неща са интересни.

Чип за зеле
Чип за зеле

Аз не знам Linux фен, който да мрази софтуер. Дори и Windows го обичаме, искаме само да има алтернатеива.

Кокошка
Кокошка

Хм, аз не знам за Linux фен, който да не мрази „Онази боза“, както и „Огризката“ 🙂
Андроидаджиите са същата пасмина =))

Чип за зеле
Чип за зеле

Явно зависи с какви хора общуваш. Щастлив съм да кажа, че поне в моя кръг от познати няма такива, които да възприемат която и да е операционна система все едно са футболни фенове, чийто отбор „на всяка цена трябва да победи!“ Впрочем и Windows потребители които мразят Linux съм срещал единствено в този сайт.

жак
жак

Че ти освен Wine и Sudo имаш ли друг кръг от познати ???

даааа
даааа

От 10 години съм само на Лунукс и това НИКОГА НЕ МИ СЕ Е НАЛОЖИЛО да го инсталирам. Та се чудя, за какво е тая програма освен да играят хлапетата игри на нея.

Кокошка
Кокошка

За да си подкараш макросите на ексела, за какво друго?

Линукс е Боза
Линукс е Боза

Бахти омазаният емулатор. Да не дава Господ да излезе грешка,че се отваря Черният Команд промпт и се почва да се редят по 3км.команди… Енджинът Mono е обновен до версия 4.9.4 и сега включва компоненти от фреймуърка Windows Presentation Foundation (WPF) демек ТЕЛЕМЕТРИЙКА за Дурияни Дураци.Добавен е голям брой нови извиквания в реализацията на фреймуърка Media Foundation, както и поддръжката на вградени и потребителски поредици, Source Reader API, Media Session и т.н. Т.н означава и още Телеметрийка. Премахнати са вградените AVI, MPEG-I и WAVE декодерив полза на GStreamer или QuickTime Мъкка ,мъкка Бахти омазаният емулатор.аБе сложете си Windows 7 бе касапи.… Виж още »

AxOx
AxOx

Инсталирах го на Линукс Минт 19.3 и не ползвам други добавки към нея. Инсталирах за тест 7zip, XnView и няколко други малки програмки. Всичко се инсталира перфектно и иконките се появиха където трябва. Програмите работят безупречно. Не съм го тествал с по-тежки и сложни програми или с програми които искат Интернет и мрежи. Доволен съм от резултата… така мога да стартирам програми от 2 различни ОС. Супер удобно е. За тези които искат да го инсталират за Минт 19.Х – ето изпитан ред за исталация: sudo apt remove winehq-stable wine-stable wine1.6 wine-mono wine-geco winetricks sudo dpkg –add-architecture i386 wget -qO… Виж още »

сет
сет

Никога повече нама да си губя времето с това -sudo- недоразумение Linux !!! Писна ми да имам проблеми с карти nvidia, принтери, периферия… Не съм мазохист и няма никога повече да си губя времето. Времето е пари, а не ровене по форуми дадено нещо защо не работи на Linux !!!!!!!

Иван
Иван

По добре да прочетеш във форум и да копи пейстнеш една команда от колкото по цял ден да преписваш едно и също нещо след като точно преди да сейвнеш и ти блъсне в мутрата син екран…

Technical
Technical

Преди години пуснах един Линукс и инсталирах WINE да видя какво представлява. Ами голяма грозотия е. Не знам за новите версии, но тогава прозорецът дори не можеше да стане fullscreen.