21. januar 2020 je bil uradni izid stabilne različice — prostega orodja za zagon domačih Windows programov v UNIX okolju. To je alternativna, prosta implementacija Windows API. Rekurzivna kratica WINE pomeni 'Wine Is Not an Emulator'.
Za to različico je bilo porabljenih okoli leto dni razvoja in več kot 7400 posameznih sprememb. Glavni razvijalec Alexandre Julliard izpostavlja štiri:
- Podpora modulom v formatu PE. To rešuje težave z različnimi shemami zaščite pred kopiranjem, ki izvajajo preverjanje sistemskih modulov na disku in v pomnilniku.
- Podpora več monitorjem in več grafičnim procesorjem, vključno s dinamično spremembo nastavitev.
- Reimplementacija XAudio2 na osnovi projekta FAudio, odprte implementacije zvočnih knjižnic DirectX. Prehod na FAudio omogoča dosego višje kakovosti zvoka v igrah, vključuje mešanje glasnosti, razširjene zvočne učinke in druge.
- Podpora Vulkan 1.1.
Podrobneje o ključnih novostih.
Moduli PE
Ob prisotnosti prevajalnika MinGW se večina Wine modulov zdaj gradi v formatu izvršnih datotek PE (Portable Executable, binarni format Windows) namesto ELF.
Izvršne datoteke PE so zdaj kopirane v imenik ~/.wine namesto uporabe fiktivnih DLL-datotek, kar naredi aplikacije bolj podobne pravim namestitvam Windows.
Zaenkrat v format PE še niso konvertirani vsi moduli. Delo se nadaljuje.
Grafični sistem
Kot je bilo že omenjeno, je dodana podpora za delovanje z več monitorji in grafičnimi adapterji.
Vulkan gonilnik je bil posodobljen na specifikacije Vulkan 1.1.126.
Poleg tega knjižnica WindowsCodecs zdaj podpira dodatne rastrske formate, vključno s formati z indeksirano paleto.
Direct3D
Celozaslonske aplikacije Direct3D zdaj blokirajo klic screensaverja.
Za aplikacije DXGI je bila implementirana možnost preklapljanja med celozaslonskim in okenskim načinom z uporabo standardne kombinacije Alt+Enter.
Možnosti Direct3D 12 so bile razširjene: podpora za preklapljanje med celozaslonskim in okenskim načinom, spremembe načinov zaslona, predstavitev s povečevalnimi učinki in intervali zamenjave predpomnilnikov (swap interval). Vse te funkcije so že bile implementirane v prejšnjih različicah Direct3D API.
Udeležniški projekt je temeljito delal in odpravil dobesedno stotine napak, kar je izboljšalo obdelavo Wine v različnih mejnih primerih. Med njimi je vzorčenje 2D virov v 3D vzorčevalnikih in obratno, uporaba izhodnih vrednosti, ki presegajo dovoljene meje za teste prosojnosti in globine, risanje z odsevnimi teksturami in buferji, uporaba neveljavnih klipperjev (objekt DirectDraw) in še mnoge druge.
Zmanjšana je bila velikost potrebnega naslovnega prostora pri nalaganju 3D tekstur, stisnjenih z metodo S3TC (namesto da bi se nalagale celotno, se teksture nalagajo po delih).
Za stare aplikacije DirectDraw so uvedena različna izboljšanja in popravki, povezani s preračunavanjem osvetlitve.
Razširjena je baza grafičnih kartic, ki jih prepoznava Direct3D.
Mreža in kriptografija
Motor Gecko je bil posodobljen na različico 2.47.1 za podporo sodobnim orodjem. Uveden je bil niz novih HTML API-jev.
V MSHTML je bila uvedena podpora za elemente SVG.
Dodane so številne nove funkcije VBScript (na primer obravnavalci napak in izjem).
Uvedena je bila možnost pridobivanja nastavitev HTTP-proksija preko DHCP.
V kriptografskem delu je bila uvedena podpora za kriptografske ključe na osnovi eliptičnih krivulj (ECC) preko GnuTLS, dodana je bila možnost nalaganja ključev in certifikatov iz datotek v formatu PFX, dodana je bila podpora za shemo generiranja ključa na osnovi gesla PBKDF2.
Adobe Photoshop CS6 pod Wine
Druga pomembna novost
- Podpora za spin locke jedra NT.
- Zaradi izteka patenta za stiskanje tekstur DXTn in S3 je bilo mogoče vključiti v privzeto implementacijo.
- Podpora za namestitev gonilnikov plug-and-play.
- Različne izboljšave DirectWrite.
- Izboljšana podpora za Windows Media Foundation API.
- Boljša sinhronizacija primitivov zahvaljujoč implementaciji na fjučeksih.
- Skupna raba Wine-Mono za varčevanje prostora namesto odprtokodne implementacije .NET za vsak posamezen projekt.
~/.wine. - Podpora za Unicode 12.0 in 12.1.
- Implementacija začetne HTTP storitve (HTTP.sys) kot zamenjava za Winsock API in IIS, kar je privedlo do boljše učinkovitosti kot pri Windows Sockets API.
- Boljša združljivost z debuggerji Windows.
- Boljša podpora za LLVM MinGW in izboljšave pri križnem prevajanju WineGCC.
Lahko omenjamo tudi izboljšave v uporabniškem vmesniku. Na primer, zdaj so minimizirana okna prikazana s pomočjo naslovne vrstice, namesto ikon, podobnih Windows 3.1. Izboljšana je podpora za igralne kontrolerje, vključno z hat switch, volanom in pedali.
Iz Wine so odstranjeni vgrajeni dekoderji AVI, MPEG-I in WAVE, za kar zdaj uporabljamo sistemske GStreamer ali QuickTime.
Dodana je možnost uporabe razhroščevalnika iz Visual Studio za oddaljeno razhroščevanje aplikacij, ki tečejo v Wine, delno je implementirana knjižnica DBGENG (Debug Engine), odstranili smo odvisnost od libwine iz datotek, zgrajenih za Windows.
Za optimizacijo zmogljivosti so različne funkcije dela s časom prešle na uporabo visokozmogljivih sistemskih funkcij za delo s časovnikom, kar je omogočilo zmanjšanje stroškov v ciklu risanja mnogih iger. Opravljene so bile tudi druge optimizacije zmogljivosti.
Popoln seznam sprememb si oglejte. .
,
Na spletnem mestu vodi bazo Windows aplikacij, združljivih z Wine. Tu so vodilni po :
- Final Fantasy XI
- Adobe Photoshop CS6 (13.0)
- World of Warcraft 8.3.0
- EVE Online Current
- Magic: The Gathering Online 4.x
Lahko predpostavimo, da te aplikacije najpogosteje zaženejo v Wine.
Opomba. Izdaja Wine 5.0 je posvečena spominu Józefa Kucie, ki je tragično preminil avgusta 2019 pri 30 letih, med raziskovanjem jame na jugu Poljske. Józef je bil pomemben član pri razvoju Direct3D Wine, ter glavni avtor projekta. Med svojim delom na Wine je vnesel več kot 2500 popravkov.

Izvor: habr.com
