A Wine 7.0 stabil kiadása

Egy év fejlesztés és 30 kísérleti verzió után bemutatták a Win32 API nyílt megvalósításának stabil kiadását - a Wine 7.0-t, amely több mint 9100 módosítást tartalmazott. Az új verzió legfontosabb vívmányai közé tartozik a legtöbb Wine modul PE formátumba fordítása, a témák támogatása, a joystickok és beviteli eszközök veremének bővítése HID interfésszel, valamint a WoW64 architektúra megvalósítása a 32 bites programok futtatásához 64 bites környezet.

A Wine 5156 (egy éve 5049) program teljes körű működését erősítette meg Windowsra, további 4312 (egy éve 4227) program működik tökéletesen kiegészítő beállításokkal és külső DLL-ekkel. 3813 programnál (3703 évvel ezelőtt) vannak olyan kisebb működési problémák, amelyek nem zavarják az alkalmazások fő funkcióinak használatát.

A Wine 7.0 legfontosabb újításai:

  • Modulok PE formátumban
    • Szinte minden DLL-t átalakítottak PE (Portable Executable, Windowson használt) futtatható fájlformátum használatára ELF helyett. A PE használata 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 rendszermodulok azonosságát a lemezen és a memóriában.
    • Megvalósult a PE-modulok és a Unix-könyvtárak közötti interakció lehetősége a szabványos NT kernel rendszerhívással, ami lehetővé teszi a Unix-kódhoz való hozzáférés elrejtését a Windows hibakeresői elől, és a szálak regisztrációját.
    • A beépített DLL-ek most csak akkor töltődnek be, ha van egy megfelelő PE-fájl a lemezen, függetlenül attól, hogy valódi könyvtárról vagy csonkról van-e szó. Ez a módosítás lehetővé teszi az alkalmazás számára, hogy mindig lássa a megfelelő kötést a PE-fájlokhoz. Ennek a viselkedésnek a letiltásához használja a WINEBOOTSTRAPMODE környezeti változót.
  • WoW64
    • Megvalósult a WoW64 architektúra (64 bites Windows-on-Windows), amely lehetővé teszi a 32 bites Windows alkalmazások futtatását 64 bites Unix folyamatokban. A támogatás egy olyan réteg csatlakozásán keresztül valósul meg, amely a 32 bites NT rendszerhívásokat 64 bites NTDLL-hívásokká alakítja.
    • A WoW64 rétegek a legtöbb Unix könyvtárhoz készültek, és lehetővé teszik a 32 bites PE modulok számára a 64 bites Unix könyvtárak elérését. Miután az összes modult PE formátumba konvertáltuk, 32 bites Windows alkalmazások futtathatók 32 bites Unix könyvtárak telepítése nélkül.
  • Témák
    • A tématámogatás megvalósult. A „Light”, „Blue” és „Classic Blue” tervezési témákat tartalmazza, amelyek a WineCfg konfigurátoron keresztül választhatók ki.
    • Hozzáadtuk az összes felületvezérlő megjelenésének testreszabását a témákon keresztül. A tervezési téma megváltoztatása után az elemek megjelenése automatikusan frissül.
    • Minden beépített Wine alkalmazáshoz tématámogatást adtunk. Az alkalmazások a nagy pixelsűrűségű (High DPI) képernyőkre lettek igazítva.
  • Grafikai alrendszer
    • Bekerült egy új Win32u könyvtár, amely magába foglalja a GDI32 és USER32 könyvtárak grafikus feldolgozással és ablakkezeléssel kapcsolatos részeit kernel szinten. A jövőben megkezdődik a munka az illesztőprogram-összetevők, például a winex32.drv és a winemac.drv Win11u-ra történő portolásával kapcsolatban.
    • A Vulkan illesztőprogram támogatja a Vulkan grafikus API 1.2.201 specifikációját.
    • Támogatja a sraffozott geometriai objektumok Direct2D API-n keresztüli kiadását, és lehetővé teszi annak ellenőrzését, hogy egy kattintás eltalál-e (találatteszt).
    • A Direct2D API kezdeti támogatást nyújt az ID2D1Effect felületen alkalmazott vizuális effektusokhoz.
    • A Direct2D API kiegészítette az ID2D1MultiThread interfész támogatását, amely az erőforrásokhoz való exkluzív hozzáférés megszervezésére szolgál a többszálú alkalmazásokban.
    • A WindowsCodecs könyvtárkészlet támogatja a képek WMP (Windows Media Photo) formátumú dekódolását és a képek DDS (DirectDraw Surface) formátumú kódolását. A továbbiakban nem támogatjuk a képek ICNS formátumú kódolását (macOS esetén), amelyet a Windows nem támogat.
  • Direct3D
    • Az új renderelőmotor jelentősen továbbfejlesztett, a Direct3D-hívásokat a Vulkan grafikus API-ra fordítja. A legtöbb esetben a Direct3D 10 és 11 támogatási szintje a Vulkan-alapú motorban a régebbi OpenGL-alapú motorral egyenlő. A Vulkan renderelőmotor engedélyezéséhez állítsa a Direct3D "renderer" rendszerleíró változóját "vulkan" értékre.
    • A Direct3D 10 és 11 számos funkciója megvalósul, beleértve a késleltetett kontextusokat, az eszközkontextusban működő állapotobjektumokat, a pufferek állandó eltolásait, a rendhagyó textúranézetek törlését, az adatok másolását az erőforrások között típusmentes formátumban (DXGI_FORMAT_BC3_TYPELESS, DXGI_FORMAT_R32G32B32A), stb. .
    • Hozzáadott támogatás a többmonitoros konfigurációkhoz, lehetővé téve a monitor kiválasztását a Direct3D alkalmazás teljes képernyős módban való megjelenítéséhez.
    • A DXGI API képernyő gamma korrekciót biztosít, amelyet a Direct3D 10 és 11 alapú alkalmazások használhatnak a képernyő fényerejének módosítására. Engedélyezett a virtuális framebufferek számlálóinak lekérése (SwapChain).
    • A Direct3D 12 támogatja az 1.1-es verziójú root aláírásokat.
    • A Vulkan API-n keresztüli leképezési kódban a lekérdezésfeldolgozás hatékonysága javult, ha a rendszer támogatja a VK_EXT_host_query_reset kiterjesztést.
    • A virtuális keretpufferek (SwapChain) GDI-n keresztüli kiadásának lehetőségét hozzáadtuk, ha az OpenGL vagy a Vulkan nem használható megjelenítésre, például amikor különböző folyamatokból adunk ki egy ablakot, például a CEF (Chromium Embedded Framework) keretrendszeren alapuló programokban.
    • A GLSL shader háttérprogram használatakor a shader utasításokhoz a "precíz" módosító biztosított.
    • A DirectDraw API támogatja a 3D renderelést a rendszermemóriában olyan szoftvereszközök használatával, mint az „RGB”, „MMX” és „Ramp”.
    • AMD Radeon RX 3M, AMD Radeon RX 5500/6800 XT/6800 XT, AMD Van Gogh, Intel UHD Graphics 6900 és NVIDIA GT 630 kártyák kerültek a Direct1030D grafikus kártya adatbázisába.
    • A „UseGLSL” kulcsot eltávolítottuk a HKEY_CURRENT_USER\Software\Wine\Direct3D nyilvántartásból, helyette a Wine 5.0-tól kezdve a „shader_backend”-et kell használni.
    • A Direct3D 12 támogatásához most legalább a vkd3d könyvtár 1.2-es verziójára van szüksége.
  • D3DX
    • A D3DX 10 megvalósítás javította a vizuális effektusok keretrendszerének támogatását, és hozzáadta a Windows Media Photo képformátum (JPEG XR) támogatását.
    • A D3DX10-ben biztosított textúra-létrehozó funkciók hozzáadva, például a D3DX10CreateTextureFromMemory().
    • Az ID3DX10Sprite és ID3DX10Font szoftveres interfészek részben megvalósultak.
  • Hang és videó
    • A DirectShow és a Media Foundation keretrendszer GStreamer-bővítményei egyetlen közös WineGStreamer-háttérrendszerben egyesülnek, ami leegyszerűsíti az új tartalomdekódoló API-k fejlesztését.
    • A WineGStreamer háttérrendszer alapján a Windows Media objektumok szinkron és aszinkron olvasásra vannak megvalósítva.
    • A Media Foundation keretrendszer megvalósítása tovább finomodott, hozzáadásra került az IMFPMediaPlayer funkcionalitás és a mintaelosztó támogatása, valamint javult az EVR és SAR renderelési pufferek támogatása.
    • A QuickTime formátumhoz dekódolót biztosító wineqtdecoder könyvtárat eltávolítottuk (most már minden kodek GStreamert használ).
  • Bemeneti eszközök
    • A HID (Human Interface Devices) protokollt támogató beviteli eszközök veremét jelentősen továbbfejlesztették, és olyan lehetőségeket biztosítanak, mint a HID leírók elemzése, a HID üzenetek feldolgozása és a mini-HID illesztőprogramok biztosítása.
    • A winebus.sys illesztőprogram háttérprogramjaiban javították az eszközleírások HID-üzenetekké fordítását.
    • Új DirectInput háttérrendszer hozzáadva a HID protokollt támogató joystickokhoz. Bevezették a visszacsatolási effektusok használatának lehetőségét a joystickban. Továbbfejlesztett joystick vezérlőpanel. Optimalizált interakció az XInput-kompatibilis eszközökkel. A WinMM-ben a joystick-támogatás átkerült a DInputba, ahelyett, hogy Linuxon az evdev-háttérprogramot, macOS IOHID-en pedig IOHID-t használnánk. A régi joystick driver winejoystick.drv eltávolítva.
    • Új tesztek kerültek a DInput modulba, amelyek a virtuális HID eszközök használatán alapulnak, és nem igényelnek fizikai eszközt.
  • Szöveg és betűtípusok
    • Hozzáadott betűtípus Állítsa be a DirectWrite objektumot.
    • A RichEdit megfelelően implementálja a TextHost felületet.
  • Kernel (Windows Kernel interfészek)
    • Amikor egy azonosítatlan végrehajtható fájlt (például "wine foo.msi") futtat a Wine-ban, a start.exe meghívódik, amely meghívja a fájltípushoz társított kezelőket.
    • Hozzáadott támogatás az NtAlertThreadByThreadId és NtWaitForAlertByThreadId szinkronizálási mechanizmusokhoz, hasonlóan a Linux futexeihez.
    • Támogatás hozzáadva az NT hibakeresési objektumokhoz, amelyek a kernelfunkciók hibakeresésére szolgálnak.
    • Támogatás hozzáadva a dinamikus rendszerleíró kulcsokhoz a teljesítményadatok mentéséhez.
  • C Futásidő
    • A C futtatókörnyezet a matematikai függvények teljes készletét valósítja meg, amelyek főként a Musl könyvtárból kerülnek át.
    • Minden CPU platform megfelelő támogatást nyújt a lebegőpontos funkciókhoz.
  • Hálózati szolgáltatások
    • Továbbfejlesztett kompatibilitási mód az Internet Explorer 11-hez (IE11), amely mostantól alapértelmezés szerint HTML-dokumentumok feldolgozására szolgál.
    • Az mshtml könyvtár az ES6 JavaScript módot (ECMAScript 2015) valósítja meg, amely támogatja az olyan funkciókat, mint a let kifejezés és a Map objektum.
    • A Gecko-motor kiegészítéseit tartalmazó MSI-csomagok telepítése a Wine munkakönyvtárba most szükség esetén történik, és nem a Wine frissítése során.
    • Hozzáadott támogatás a DTLS protokollhoz.
    • Megvalósult az NSI (Network Store Interface) szolgáltatás, amely információkat tárol és továbbít a számítógépen lévő útválasztásról és hálózati interfészekről más szolgáltatások felé.
    • A WinSock API-kezelők, például a setsockopt és a getsockopt átkerültek az NTDLL-be és az afd.sys illesztőprogramba, hogy megfeleljenek a Windows architektúrának.
    • A Wine saját hálózati adatbázis-fájljai, mint például az /etc/protocols és az /etc/networks, a hasonló Unix-adatbázisokhoz való hozzáférés helyett a Wine munkakönyvtárában vannak telepítve.
  • Alternatív platformok
    • Támogatás hozzáadva az M1 ARM chipeken (Apple Silicon) alapuló Apple berendezésekhez.
    • A BCrypt és a Secur32 funkciók támogatása a macOS rendszeren mostantól a GnuTLS könyvtár telepítését igényli.
    • Az ARM-platformok 32 bites végrehajtható fájljai most már Thumb-2 módban készülnek, hasonlóan a Windowshoz. Az ilyen fájlok betöltésére előbetöltőt használnak.
    • A 32 bites ARM-platformok esetében a kivételek feloldásának támogatása megvalósult.
    • A FreeBSD esetében az alacsony szintű rendszerinformációk, például a memória állapota és az akkumulátor töltöttségi szintje támogatott lekérdezések száma bővült.
  • Beépített alkalmazások és fejlesztőeszközök
    • A reg.exe segédprogram hozzáadta a 32 és 64 bites rendszerleíró nézetek támogatását. Támogatás hozzáadva a rendszerleíró kulcsok másolásához.
    • A WineDump segédprogram kiegészítette a Windows metaadatok kiíratását és a CodeView bejegyzésekkel kapcsolatos részletes információk megjelenítését.
    • A Wine Debugger (winedbg) lehetővé teszi a 32 bites folyamatok hibakeresését egy 64 bites hibakeresőről.
    • Az IDL fordítóba (widl) bekerült a PE-fájlokba épített könyvtárak betöltésének lehetősége, a WinRT-specifikus attribútumok és konstrukciók támogatása, valamint platform-specifikus könyvtárkeresés valósult meg.
  • Összeszerelő rendszer
    • Az architektúra-specifikus könyvtárakban a programkönyvtárak az architektúrát és a végrehajtható fájl típusát tükröző nevekkel kerülnek mentésre, például „i386-windows” a PE formátumhoz és „x86_64-unix” a unix könyvtárak számára, lehetővé téve a különböző architektúrák támogatását egyetlen Wine-ban. telepítése és a Winelib kereszt-összeállítása.
    • A natív DLL-ek használatára való átállást szabályozó beállítás megadásához a PE-fájlok fejlécében a '--prefer-native option' jelző hozzáadásra került a winebuild-hez (a DLL_WINE_PREATTACH feldolgozása a DllMainben leállt).
    • Támogatás hozzáadva a Dwarf hibakeresési adatformátum 4-es verziójához, amelyet most alapértelmezés szerint használnak a Wine könyvtárak építésekor.
    • Hozzáadott '—enable-build-id' összeállítási opció az egyedi buildazonosítók futtatható fájlokban való mentéséhez.
    • Hozzáadott támogatás a Clang fordító használatához MSVC kompatibilitási módban.
  • Vegyes cikkek
    • A felhasználói shellben (Windows Shell) található tipikus könyvtárak neveit a Windows Vista-tól kezdődően használt séma adja, azaz. A „My Documents” helyett most egy „Dokumentumok” könyvtár jön létre, és az adatok nagy része az „AppData” könyvtárba kerül.
    • Az OpenCL 1.2 specifikáció támogatása hozzáadásra került az OpenCL könyvtárréteghez.
    • A WinSpool illesztőprogram különböző oldalméreteket támogat a nyomtatás során.
    • Kezdeti támogatás hozzáadva az MSDASQL-hez, a Microsoft OLE DB szolgáltatójához az ODBC illesztőprogramokhoz.
    • A Wine Mono motor a .NET platform megvalósításával 7.0.0-ra frissült.
    • A Unicode adatok a Unicode 14 specifikációra frissültek.
    • A forrásfa tartalmazza a Faudio, GSM, LCMS2, LibJPEG, LibJXR, LibMPG123, LibPng, LibTiff, LibXml2, LibXslt és Zlib könyvtárakat, amelyek PE formátumban vannak fordítva, és nem igényelnek Unix formátumú verziót. Ugyanakkor ezek a könyvtárak is importálhatók a rendszerből, hogy külső összeállításokat használhassanak a beépített PE opciók helyett.

Forrás: opennet.ru

Hozzászólás