Op 21 januari 2020 vond de officiële release van de stabiele versie plaats — een gratis tool voor het uitvoeren van native Windows-programma's in een UNIX-omgeving. Dit is een alternatieve, gratis implementatie van de Windows API. De recursieve acroniem WINE betekent "Wine Is Not an Emulator".
Deze versie heeft ongeveer een jaar ontwikkeling achter de rug en meer dan 7400 afzonderlijke wijzigingen. Hoofduitontwikkelaar Alexandre Julliard benadrukt vier:
- Ondersteuning voor modules in PE-indeling. Dit lost problemen op met verschillende kopieerbeveiligingsschema's die systeemmodules op de schijf en in het geheugen controleren.
- Ondersteuning voor meerdere monitors en meerdere GPU's, inclusief dynamische aanpassing van instellingen.
- Hernieuwde implementatie van XAudio2 op basis van het FAudio-project, een open implementatie van DirectX-geluidbibliotheken. De overstap naar FAudio zorgt voor een hogere geluidskwaliteit in games, maakt volumemenging, uitgebreide geluidseffecten en meer mogelijk.
- Ondersteuning voor Vulkan 1.1.
Meer informatie over de belangrijkste nieuwe functies.
PE-modules
Met een MinGW-compiler worden de meeste Wine-modules nu gecompileerd in de PE uitvoerbare bestanden (Portable Executable, binaire Windows-indeling) in plaats van ELF.
PE uitvoerbare bestanden worden nu gekopieerd naar de map ~/.wine in plaats van gebruik te maken van fictieve DLL-bestanden, wat de applicaties meer op echte Windows-installaties doet lijken.
Voorlopig zijn nog niet alle modules naar PE geconverteerd. Het werk gaat door.
Grafisch subsysteem
Zoals eerder vermeld, is nu ondersteuning toegevoegd voor het werken met meerdere monitors en grafische adapters.
De Vulkan-driver is bijgewerkt naar de specificaties van Vulkan 1.1.126.
Bovendien ondersteunt de WindowsCodecs-bibliotheek nu extra rasterformaten, inclusief formaten met een geïndexeerde palette.
Direct3D
Volledige schermtoepassingen voor Direct3D blokkeren nu de screensaver-aanroep.
Voor DXGI-toepassingen is de mogelijkheid geïmplementeerd om te schakelen tussen volledige scherm- en venster modus met de standaardcombinatie Alt+Enter.
De mogelijkheden van Direct3D 12 zijn uitgebreid: ondersteuning voor het schakelen tussen de volle scherm- en venster modus, het wijzigen van scherminstellingen, schaalweergaven en vervangingsintervallen voor renderbuffers (swap interval). Al deze functies zijn al uitgevoerd voor eerdere versies van de Direct3D API.
De deelnemers aan het project hebben grondig gewerkt en letterlijk honderden bugs verholpen, waardoor de afhandeling van verschillende randgevallen in Wine is verbeterd. Onder deze gevallen vallen het sampling van 2D-resources in 3D-samplers en vice versa, het toepassen van waarden die buiten de toegestane reikwijdtes liggen voor tests van transparantie en diepte, het renderen met weerspiegelde texturen en buffers, het gebruik van onjuiste clipper-objecten (DirectDraw-object) en nog veel meer.
De benodigde adresruimte bij het laden van 3D-texturen, gecomprimeerd met de S3TC-methode, is verkleind (in plaats van volledig te laden, worden texturen in stukken geladen).
Voor oudere DirectDraw-toepassingen zijn verschillende verbeteringen en correcties aangebracht met betrekking tot de berekening van verlichting.
De database van grafische kaarten die in Direct3D worden herkend, is uitgebreid.
Netwerk en cryptografie
De Gecko-engine is bijgewerkt naar versie 2.47.1 ter ondersteuning van moderne tools. Een reeks nieuwe HTML API's is geïmplementeerd.
In MSHTML is ondersteuning voor SVG-elementen geïmplementeerd.
Veel nieuwe functies voor VBScript zijn toegevoegd (bijvoorbeeld fout- en uitzonderingafhandelaars).
Er is een mogelijkheid gerealiseerd om HTTP-proxy-instellingen via DHCP te verkrijgen.
In het cryptografische deel is ondersteuning voor cryptografische sleutels op basis van elliptische krommen (ECC) via GnuTLS geïmplementeerd, met de mogelijkheid om sleutels en certificaten vanuit bestanden in PFX-formaat te importeren, en de ondersteuning voor het op wachtwoord gebaseerde sleutelgeneratieschema PBKDF2 is toegevoegd.
Adobe Photoshop CS6 onder Wine
Andere aanzienlijke vernieuwingen
- Ondersteuning voor kernel NT spinlocks.
- Dankzij het verstrijken van het patent op DXTn- en S3-textuurcompressie is het mogelijk geworden om deze in de standaardimplementatie op te nemen.
- Ondersteuning voor het installeren van plug-and-play-stuurprogramma's.
- Diverse verbeteringen in DirectWrite.
- Verbeterde ondersteuning voor de Windows Media Foundation API.
- Betere synchronisatie van primitieve elementen dankzij de implementatie op futexen.
- Gezamenlijk gebruik van Wine-Mono om plaats te besparen in plaats van een open-source implementatie van .NET voor elke toepassing.
~/.wine. - Ondersteuning voor Unicode 12.0 en 12.1.
- Implementatie van een initiële HTTP-service (HTTP.sys) als vervanging voor de Winsock API en IIS, waardoor de prestaties beter zijn dan die van de Windows Sockets API.
- Betere compatibiliteit met Windows-debuggers.
- Betere ondersteuning voor LLVM MinGW en verbeteringen in cross-compilatie voor WineGCC.
We kunnen ook de verbeteringen in de gebruikersinterface vermelden. Bijvoorbeeld, ingeklapte vensters worden nu weergegeven met een titelbalk in plaats van pictogrammen zoals in Windows 3.1. De ondersteuning voor gamecontrollers is verbeterd, inclusief hat switches, stuurwielen en pedalen.
De ingebouwde decoders voor AVI, MPEG-I en WAVE zijn verwijderd uit Wine, en in plaats daarvan worden nu de systeem GStreamer of QuickTime gebruikt.
De mogelijkheid om de debugger van Visual Studio te gebruiken voor het op afstand debuggen van toepassingen die in Wine draaien is toegevoegd, en een deel van de DBGENG (Debug Engine) bibliotheek is geïmplementerd. De afhankelijkheid van libwine is verwijderd uit de bestanden die voor Windows zijn samengesteld.
Om de prestaties te optimaliseren, zijn verschillende tijdfuncties omgezet naar het gebruik van hoogrenderende systeemfuncties voor timers, wat heeft geleid tot een vermindering van de overhead in de rendercyclus van veel spellen. Er zijn ook andere prestatieoptimalisaties uitgevoerd.
Bekijk de volledige lijst met wijzigingen. .
,
staat geschreven: er wordt een database van Windows-toepassingen onderhouden die compatibel zijn met Wine. Hier zijn de leiders op basis van :
- Final Fantasy XI
- Adobe Photoshop CS6 (13.0)
- World of Warcraft 8.3.0
- EVE Online Current
- Magic: The Gathering Online 4.x
Het kan worden vermoed dat deze toepassingen het vaakst op Wine worden uitgevoerd.
Opmerking. De release van Wine 5.0 is opgedragen aan de nagedachtenis van Józef Kucia, die tragisch overleed in augustus 2019 op 30-jarige leeftijd terwijl hij een grot in het zuiden van Polen onderzocht. Józef was een belangrijke deelnemer aan de ontwikkeling van Direct3D Wine en ook de leidende auteur van het project. In de tijd dat hij aan Wine werkte, heeft hij meer dan 2500 patches bijgedragen.

Bron: habr.com
