Egy év fejlesztés és 28 kísérleti verzió után bemutatták a Win32 API nyílt implementációjának stabil kiadását - a Wine 8.0-t, amely több mint 8600 változtatást tartalmazott. Az új verzió legfontosabb vívmánya a Wine modulok formátumba történő fordításával kapcsolatos munka befejezését jelenti.
A Wine 5266 (egy éve 5156, két éve 5049) program teljes körű működését igazolta Windowsra, további 4370 (egy éve 4312, két éve 4227) program működik tökéletesen kiegészítő beállításokkal és külső DLL-ekkel. 3888 program (egy éve 3813, két éve 3703) kisebb működési problémákkal küzd, amelyek nem zavarják az alkalmazások fő funkcióinak használatát.
A Wine 8.0 legfontosabb újításai:
- Modulok PE formátumban
- Négy év munka után az összes DLL-könyvtár átalakítása PE (Portable Executable, Windows-ban használatos) futtatható fájlformátum használatára befejeződött. A PE használata lehetővé teszi a Windows számára elérhető hibakeresők használatát, és megoldja a különféle másolásvédelmi sémák támogatásával kapcsolatos problémákat, amelyek ellenőrzik a lemezen és a memóriában lévő rendszermodulok azonosságát. A 32 bites alkalmazások 64 bites gazdagépeken és az x86 alkalmazások ARM rendszereken való futtatásával kapcsolatos problémák is megoldódtak. A további, a Wine 8.x kísérleti kiadásaiban megoldandó feladatok között szerepel a modulok átállása az NT rendszerhívási interfészre, ahelyett, hogy a PE és a Unix rétegek között közvetlen hívásokat kezdeményeznének.
- Egy speciális rendszerhívás-kezelő került bevezetésre, amely a PE-ről Unix könyvtárakba történő hívások lefordítására szolgál, hogy csökkentse a teljes NT rendszerhívás végrehajtásával járó többletköltséget. Az optimalizálás például lehetővé tette a teljesítményromlás csökkentését az OpenGL és a Vulkan könyvtárak használatakor.
- A Winelib alkalmazások megtartják az ELF (.dll.so) könyvtárak vegyes Windows/Unix összeállításainak használatát, de az ilyen, 32 bites könyvtárakat nem tartalmazó alkalmazások nem támogatják az NT rendszerhívási interfészen keresztül elérhető funkciókat, például a WoW64-et.
- WoW64
- A WoW64 (64 bites Windows-on-Windows) rétegek minden Unix könyvtárhoz rendelkezésre állnak, lehetővé téve a 32 bites PE formátumú modulok számára a 64 bites Unix könyvtárak elérését, amelyek, miután megszabadultak a közvetlen PE/Unix hívásoktól, 32 bites Windows alkalmazások futtatása 32 bites Unix könyvtárak telepítése nélkül is lehetséges.
- 32 bites Wine betöltő hiányában a 32 bites alkalmazások az új kísérleti Windows-szerű WoW64 módban futhatnak, amelyben a 32 bites kód egy 64 bites folyamaton belül fut. A mód engedélyezve van, amikor a Wine-t az „—enable-archs” opcióval építi.
- Grafikai alrendszer
- Az alapértelmezett konfiguráció a világos témát („Light”) használja. A témát a WineCfg segédprogrammal módosíthatja.
- A grafikus illesztőprogramokat (winex11.drv, winemac.drv, wineandroid.drv) a rendszer úgy alakítja át, hogy Unix szintű rendszerhívásokat hajtson végre, és a Win32u könyvtáron keresztül érje el az illesztőprogramokat.
- Megvalósult a Print Processor architektúra, amely a nyomtató-illesztőprogram PE és Unix szintjei közötti közvetlen hívások kiküszöbölésére szolgál.
- A Direct2D API mostantól támogatja az effektusokat.
- A Direct2D API hozzáadta a parancslisták rögzítésének és lejátszásának lehetőségét.
- A Vulkan grafikus API illesztőprogramja hozzáadta a Vulkan 1.3.237 specifikáció támogatását (a Vulkan 7-t a Wine 1.2 támogatta).
- Az alapértelmezett konfiguráció a világos témát („Light”) használja. A témát a WineCfg segédprogrammal módosíthatja.
- Direct3D
- Hozzáadott egy új shader fordítót a HLSL-hez (High-Level Shader Language), amely a vkd3d-shader könyvtáron alapul. Szintén a vkd3d-shaderre alapozva készült egy HLSL disassembler és egy HLSL előfeldolgozó.
- A D3DX 10-ben bemutatott Thread Pump interfész megvalósításra került.
- A Direct3D 10 effektusok számos új kifejezést támogatnak.
- A D3DX 9 támogatási könyvtára mostantól támogatja a Cubemap textúravetítést.
- Hang és videó
- A GStreamer keretrendszeren alapuló szűrők támogatása az MPEG-1 formátumú hang dekódolásához.
- Szűrő hozzáadva a streaming audio és video olvasásához ASF (Advanced Systems Format) formátumban.
- Az OpenAL32.dll köztes könyvtárréteget eltávolítottuk, helyette az alkalmazásokhoz mellékelt natív Windows könyvtárat, az OpenAL32.dll-t használjuk.
- A Media Foundation Player továbbfejlesztett tartalomtípus-észlelést kínál.
- Megvalósult az adatátviteli sebesség szabályozásának képessége (Rate control).
- Továbbfejlesztett támogatás az Enhanced Video Renderer (EVR) alapértelmezett keverőjéhez és előadójához.
- A Writer Encoding API kezdeti megvalósítása hozzáadva.
- Továbbfejlesztett topológia betöltő támogatás.
- Bemeneti eszközök
- Jelentősen továbbfejlesztett támogatás a vezérlők üzem közbeni csatlakoztatásához.
- Javasoljuk a játékkormánykerekek meghatározására szolgáló kód továbbfejlesztett megvalósítását, amely az SDL könyvtárra épül.
- Továbbfejlesztett támogatás a Force feedback effektushoz játékkorongok használatakor.
- Megvalósult a bal és jobb oldali vibrációs motorok vezérlése a HID Haptic specifikáció segítségével.
- Megváltoztatta a joystick vezérlőpult kialakítását.
- A Sony DualShock és DualSense vezérlők támogatása a hidraw háttérrendszeren keresztül biztosított.
- A Windows.Gaming.Input WinRT modul egy szoftveres interfész megvalósításával javasolt a játékvezérlők, joystickok és játékkerekek eléréséhez. Az új API-hoz többek között az eszközök üzem közbeni csatlakoztatásáról szóló értesítés, a tapintási és vibrációs effektusok támogatása valósul meg.
- Nemzetközivé válás
- Biztosított a megfelelő területi beállítás adatbázis létrehozása locale.nls formátumban a Unicode CLDR (Unicode Common Locale Data Repository) lerakatból.
- A Unicode karakterlánc-összehasonlítási funkciókat áthelyezték az adatbázis és a Windows Sortkey algoritmus használatára a Unicode Collation algoritmus helyett, így a viselkedés közelebb került a Windowshoz.
- A legtöbb funkció támogatja a felső Unicode kódtartományokat (síkokat).
- Lehetőség van UTF-8 használatára ANSI kódolásként.
- A karaktertáblákat frissítettük a Unicode 15.0.0 specifikációra.
- Szöveg és betűtípusok
- A betűtípusok összekapcsolása a legtöbb rendszer-betűtípushoz engedélyezve van, megoldva a hiányzó karakterjelek problémáját a kínai, koreai és japán nyelvű rendszereken.
- Átdolgozott tartalék betűkészlet tartalék a DirectWrite-ben.
- Kernel (Windows Kernel interfészek)
- Megvalósult az ApiSetSchema adatbázis, amely felváltotta az api-ms-* modulokat, és csökkentette a lemez- és címterület-felhasználást.
- A DOS-fájlattribútumok Samba-kompatibilis formátumban, kiterjesztett FS-attribútumok használatával kerülnek mentésre a lemezre.
- Hálózati szolgáltatások
- Támogatás hozzáadva az OCSP-hez (Online Certificate Status Protocol), amely a visszavont tanúsítványok ellenőrzésére szolgál.
- Bővült a JavaScript szabványoknak való megfelelési módban elérhető EcmaScript-funkciók köre.
- Bevezetett egy szemétgyűjtőt a JavaScript számára.
- A Gecko motorcsomag fogyatékkal élők számára is kínál szolgáltatásokat.
- Az MSHTML támogatja a Web Storage API-t, a Performance objektumot és további objektumokat az eseményfeldolgozáshoz.
- Beágyazott alkalmazások
- Az összes beépített alkalmazást a Common Controls 6 könyvtár használatára alakították át, amely támogatja a tervezési témákat és a nagy pixelsűrűségű képernyőket is figyelembe vevő renderelést.
- Továbbfejlesztett lehetőségek a szálak hibakereséséhez a Wine Debuggerben (winedbg).
- A rendszerleíró segédprogramok (REGEDIT és REG) mostantól támogatják a QWORD típust.
- A Jegyzettömb hozzáadott egy állapotsort a kurzor pozíciójával kapcsolatos információkkal és egy Goto Line funkciót, amellyel egy megadott sorszámra ugorhat
- A beépített konzol adatkimenetet biztosít az OEM kódlapon.
- A 'query' parancs hozzáadásra került az sc.exe (Service Control) segédprogramhoz.
- Összeszerelő rendszer
- Lehetőség van végrehajtható fájlok készítésére PE formátumban számos architektúrához (például '—enable-archs=i386,x86_64').
- A 32 bites hosszú típust használó összes platformon a Windowsban hosszúnak definiált adattípusok mostantól "long"-ként vannak újradefiniálva a Wine-ban az "int" helyett. A Winelibben ez a viselkedés letiltható a WINE_NO_LONG_TYPES definícióval.
- Hozzáadtuk a könyvtárak létrehozásának lehetőségét a dlltool használata nélkül (ezt a winebuild „—without-dlltool” beállításával engedélyeztük).
- A betöltési hatékonyság javítása és a kód nélküli, csak erőforrásokat használó könyvtárak méretének csökkentése érdekében a winegcc megvalósítja a „--data-only” opciót.
- Vegyes cikkek
- A beépített könyvtárak frissített verziói: Faudio 22.11, LCMS2 2.14, LibJPEG 9e, LibMPG123 1.31.1, LibPng 1.6.39, LibTiff 4.4.0, LibXml2 2.10.3, Z.libX1.1.37, LibX1.2.13.
- A Wine Mono motor a .NET platform megvalósításával 7.4-ra frissült.
- Megvalósult az RSA algoritmuson és az RSA-PSS digitális aláírásokon alapuló titkosítás támogatása.
- Az UI Automation API kezdeti verziója hozzáadva.
- A forrásfa tartalmazza az LDAP és a vkd3d könyvtárakat, amelyek PE formátumban vannak lefordítva, így nincs szükség Unix-szerelvényekre ezekből a könyvtárakból.
- Az OpenAL könyvtár megszűnt.
Forrás: opennet.ru