2020. január 21-én hivatalosan megjelent a stabil verzió — egy ingyenes eszközt, amely natív Windows programok futtatására szolgál UNIX környezetben. Ez a Windows API alternatív, ingyenes megvalósítása. A WINE rekurzív akroním jelentése: "Wine Is Not an Emulator".
Ezt a verziót körülbelül egy év fejlesztés előzte meg, és több mint 7400 egyedi változás történt. A vezető fejlesztő, Alexandre Julliard négy fő szempontot emel ki:
- PE-formátumú modulok támogatása. Ez megoldja a különböző másolásvédelemmel kapcsolatos problémákat, amelyek ellenőrzik a rendszermodulokat a lemezen és a memóriában.
- Több monitor és több GPU támogatása, beleértve a beállítások dinamikus módosítását.
- Az XAudio2 újraimplementálása az FAudio projekt alapján, amely a DirectX hangkönyvtárainak nyílt megvalósítása. Az FAudio-ra való áttérés lehetővé teszi a játékokban a jobb hangminőséget, a hangerőkeverés, a kibővített hanghatások stb. használatát.
- Vulkan 1.1 támogatás.
Részletesebben a kulcsfontosságú újításokról.
PE modulok
Ha a MinGW fordító elérhető, a Wine legtöbb modulját most PE (Portable Executable, Windows bináris formátum) formátumban állítják elő az ELF helyett.
A PE végrehajtható fájlok most a következő mappába másolódnak: ~/.wine ahelyett, hogy hamis DLL fájlokat alkalmaznának, ami a programokat valós Windows telepítésekhez hasonlóbbá teszi.
Jelenleg még nem minden modul konvertálódott PE formátumra. A munka folyamatban van.
Grafikai alrendszer
Ahogy már említettem, hozzáadódott a több monitorral és grafikus kártyákkal való együttműködés támogatása.
A Vulkan drivert a Vulkan 1.1.126 specifikációinak megfelelően frissítették.
Ezen kívül a WindowsCodecs könyvtár már támogatja a további raszteres formátumokat, beleértve az indexelt palettás formátumokat is.
Direct3D
A Direct3D teljes képernyős alkalmazásai most blokkolják a képernyővédő hívását.
A DXGI alkalmazások számára megvalósult a váltás a teljes képernyős és ablakos mód között a standard Alt+Enter kombináció segítségével.
Kibővítették a Direct3D 12 lehetőségeit: támogatás a teljes képernyős és ablakos mód közötti váltásra, képernyőmódok módosítására, skálázott megjelenítésekre és a rajzolási pufferek cserélési intervallumaira (swap interval). Mindezek a funkciók már megvalósításra kerültek a korábbi Direct3D API verziók számára.
A projekt résztvevői alapos munkát végeztek, és szó szerint több száz hibát orvosoltak, így javult a Wine különböző határhelyzeteinek kezelése. Ezek között szerepel a 2D erőforrások mintavételezése a 3D mintavételezőkben és fordítva, a teszteléshez használt átláthatósági és mélységi alapértékek határain túllépő alkalmazása, a tükrözött textúrákkal és bufferekkel való rajzolás, hibás klipperek (DirectDraw objektum) használata és még sok egyéb.
Csökkent a 3D textúrák betöltéséhez szükséges címtér mérete, S3TC tömörítési módszerrel (a teljes betöltés helyett a textúrák darabonként töltődnek be).
Régebbi DirectDraw alkalmazásokhoz különféle fejlesztések és hibajavítások kerültek bevezetésre a világítási számításokkal kapcsolatban.
Bővült a Direct3D-ben felismerhető grafikus kártyák listája.
Hálózat és kriptográfia
A Gecko motor frissítve lett 2.47.1 verzióra, hogy támogassa a modern eszközöket. Számos új HTML API került bevezetésre.
Az MSHTML támogatja az SVG elemeket.
Sok új VBScript funkció került hozzáadásra (például hibakezelők és kivételek).
Lehetőség nyílt a HTTP-proxy beállításainak megszerzésére DHCP-n keresztül.
A kriptográfiai részben támogatás került bevezetésre elliptikus görbéken (ECC) alapuló kriptográfiai kulcsokhoz a GnuTLS-en keresztül, importálási lehetőség kulcsok és tanúsítványok PFX formátumú fájlokból, és PBKDF2 jelszóalapú kulcsgenerálási séma támogatása is hozzáadásra került.
Adobe Photoshop CS6 Wine alatt
Egyéb jelentős újítások
- NT kernel spinlock támogatás.
- A DXTn és S3 textúra tömörítésének szabadalma lejárta révén lehetőség nyílt a használatukra az alapértelmezett megvalósításban.
- Plug-and-play illesztőprogramok telepítésének támogatása.
- Különböző DirectWrite fejlesztések.
- Javított Windows Media Foundation API támogatás.
- Javított primér szinkronizáció a fúttexek megvalósításának köszönhetően.
- A Wine-Mono közös használata a helymegtakarítás érdekében a .NET nyílt forráskódú megvalósítása helyett minden egyes alkalommal.
~/.wine. - Unicode 12.0 és 12.1 támogatása.
- Az alap HTTP-szolgáltatás (HTTP.sys) megvalósítása a Winsock API és az IIS helyettesítésére, aminek következtében a teljesítmény meghaladta a Windows Sockets API-ét.
- Javított kompatibilitás a Windows debuggerekkel.
- Javított támogatás LLVM MinGW-hez és a WineGCC keresztkompilálásához.
Emellett említhetjük a felhasználói felület fejlesztéseit is. Például, a minimalizált ablakok most a címcsík segítségével jelennek meg, nem pedig a Windows 3.1 stílusú ikonokkal. Javították a játékos vezérlők támogatását, beleértve a hatkapcsolót, a kormányt és a pedálokat.
A Wine-ból eltávolították a beépített AVI, MPEG-I és WAVE dekódereket, helyettük a rendszer GStreamer vagy QuickTime használatos.
Lehetővé vált a Visual Studio debuggere távoli hibakereséshez történő alkalmazása a Wine alatt futó alkalmazások számára, a DBGENG (Debug Engine) könyvtár részben megvalósult, a Windows-ra készített fájlokból eltávolították a libwine függőséget.
A teljesítményoptimalizálás érdekében különböző, idővel kapcsolatos funkciók átváltottak a nagy teljesítményű rendszeridőzítő funkciók használatára, ezáltal csökkentve a sok játék rajzolási ciklusának túlterhelését. További teljesítményoptimalizálásokat is végeztek.
A változtatások teljes listája itt található. .
,
A weboldalon itt egy adatbázis a Windows alkalmazásokról, amelyek kompatibilisek a Wine-nal. Itt vannak a szavazatok alapján az élen állók: :
- Final Fantasy XI
- Adobe Photoshop CS6 (13.0)
- World of Warcraft 8.3.0
- EVE Online Current
- Magic: The Gathering Online 4.x
Feltételezhető, hogy ezeket az alkalmazásokat gyakran indítják a Wine alatt.
Megjegyzés: A Wine 5.0 kiadása Józef Kucia emlékének szentelt, aki tragikus baleset következtében, 30 éves korában hunyt el 2019 augusztusában, miközben egy barlangot kutatott Lengyelország déli részén. Józef fontos szerepet játszott a Direct3D Wine fejlesztésében, és a projekt vezető szerzője volt. A Wine-on végzett munkája során több mint 2500 javítást nyújtott be.

Forrás: habr.com
