A Wine 8.0 stabil kiadása

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 Wine 8.0 stabil kiadása
    • 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.
      A Wine 8.0 stabil kiadása
    • 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).
  • 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

Hozzászólás