A Wine 9.0 stabil kiadása

Egy év fejlesztés és 26 kísérleti verzió után bemutatásra került a Win32 API nyílt megvalósításának stabil kiadása - a Wine 9.0, amely több mint 7000 módosítást tartalmazott. Az új verzió legfontosabb vívmányai közé tartozik a WoW64 architektúra megvalósítása 32 bites programok futtatásához 64 bites környezetben, a Wayland támogatására szolgáló illesztőprogram-integráció, az ARM64 architektúra támogatása, a DirectMusic API megvalósítása és az intelligens kártyák támogatása.

5336 (5266 egy évvel ezelőtt, 5156 két évvel ezelőtt, 5049 három évvel ezelőtt) program megfelelő működését megerősítették Wine-ban. WindowsTovábbi 4397 program (egy évvel ezelőtt 4370, két évvel ezelőtt 4312, három évvel ezelőtt 4227) működik megfelelően további beállításokkal és külső DLL-ekkel. 3943 program (egy évvel ezelőtt 3888, két évvel ezelőtt 3813, három évvel ezelőtt 3703) rendelkezik kisebb problémákkal, amelyek nem zavarják az alkalmazások alapvető működését.

A Wine 9.0 legfontosabb újításai:

  • A winewayland.drv illesztőprogram hozzáadásra került, lehetővé téve a Wine használatát Wayland-alapú környezetekben XWayland vagy X11 komponensek használata nélkül. A fejlesztés célja egy tiszta Wayland környezet biztosítása indítási támogatással. Windows- olyan alkalmazások, amelyek nem igénylik az X11-hez kapcsolódó csomagok telepítését, ami nagyobb teljesítményt és válaszidőt tesz lehetővé a játékokban a felesleges rétegek kiküszöbölésével. A tiszta Wayland környezet használata a Wine-hoz kiküszöböli az X11-re jellemző biztonsági problémákat is (például a nem megbízható X11 játékok kémkedhetnek más alkalmazások után, mivel az X11 protokoll hozzáférést biztosít az összes bemeneti eseményhez és billentyűleütés-helyettesítést hajt végre).

    Az illesztőprogram kísérleti és fejlesztés alatt állóként van megjelölve, de ennek ellenére már számos funkciót támogat, például ablakkezelést, több monitorral való munkavégzést, nagy pixelsűrűségű (nagy DPI) képernyőkön történő kimenet méretezésének támogatását, valamint relatív koordináták az egér mozgásának követésekor és a Vulkan grafikus API támogatása. Alapértelmezés szerint az illesztőprogram nem aktív, és engedélyezéséhez hozzá kell adni a „wayland” kifejezést a „HKCU\Software\Wine\Drivers” beállításjegyzék paraméterhez, és meg kell győződni arról, hogy a DISPLAY környezeti változó nincs beállítva: wine reg.exe add HKCU\ \Software\\Wine\\Drivers /v Graphics /d x11,wayland

  • Az összes modult NT rendszerhívási interfészre konvertálták, ahelyett, hogy a PE és a Unix rétegek között közvetlen hívásokat kezdeményeznének. Ezzel a sokéves munka befejeződött, amely során az összes DLL-t PE (Portable Executable) futtatható fájlformátumra konvertálták.
  • A WoW64 réteg (64 bites) fejlesztése folytatódott. Windows-tovább-Windows), amely lehetővé teszi a 32 bites futtatását Windows- alkalmazások 64 bites Unix rendszereken. Minden Unix könyvtárakat elérő modul WoW64 rendszerhívás-fordítókat (thunkokat) használ, amelyek lehetővé teszik a PE formátumú 32 bites modulok számára a 64 bites Unix könyvtárak elérését.

    Az új WoW64 indítási mód továbbfejlesztésre került, lehetővé téve a 32 bites kód futtatását egy 64 bites folyamaton belül (a régi WoW64 módban a 32 bites alkalmazások 32 bites Unix folyamatokban futottak). Hozzáadtuk a platformon az új WoW64 mód használatának támogatását. macOSMivel az új WoW64 módnak vannak apróbb hibái, például a 16 bites támogatás hiánya és az ARB_buffer_storage kiterjesztés támogatásának hiánya miatt csökkent OpenGL teljesítménye, ezért alapértelmezés szerint még nincs engedélyezve, és a konfigurációs szkriptben a "--enable-archs=i386,x86_64" opcióval kell fordítani.

  • Lehetőséget adtunk a meglévő futtatható fájlok végrehajtására Windows Az ARM64 architektúrájú rendszereken a Wine mostantól fordítható az ARM64EC (ARM64 Emulation Compatible) ABI-ra, és az ARM64EC modulok is betölthetők. Ezek a modulok az eredetileg x86_64 architektúrára írt alkalmazások ARM64 rendszerekre való portolásának egyszerűsítésére szolgálnak azáltal, hogy lehetővé teszik az egyes x86_64 kódmodulok végrehajtását az ARM64 környezetben egy emulátor segítségével. Támogatás került az ARM64X PE fájlformátumhoz, amely lehetővé teszi egyetlen végrehajtható fájl betöltését mind az x64/Arm64EC, mind az ARM64 folyamatokban. Megvalósították a 32 bites x86 rendszerek emulálására szolgáló interfészt, de az emulátorkönyvtár még nem része a fő Wine disztribúciónak (a külső FEX emulátor használható x86 kód futtatására az ARM64 környezetben).
  • Grafikai alrendszer
    • A PostScript illesztőprogramot áttervezték, hogy támogassa a következő formátumú spoolfájlokat: Windows, amelyek nyomtatási feladatokra vonatkozó adatokat tárolnak. A Unix környezetből a meghajtóhoz intézett közvetlen hívások ki vannak zárva.
    • A sötét mód támogatása hozzáadásra került a WinRT témákhoz. A WineCfg-hez hozzáadtunk egy beállítást, amely lehetővé teszi a sötét felület kialakítását.
    • A Vulkan grafikus API illesztőprogramja hozzáadta a Vulkan 1.3.272 specifikáció támogatását (az 8.0 támogatott a Wine 1.3.237-ban).
    • A GdiPlus könyvtár funkcióit optimalizálták, ami lehetővé teszi a nagyobb grafikus teljesítményt.
  • Direct3D
    • A többszálú parancsfolyam elemzése felfüggesztésre kerül, ha nincsenek renderelési parancsok feldolgozás alatt, ami lehetővé teszi az energiafogyasztás csökkentését az egyszálú feldolgozás szintjére olyan programok futtatásakor, amelyek nem foglalják el a teljes parancsfolyam sávszélességét.
    • A Direct3D 10 támogatja a további effektusokat.
    • Teljesítményoptimalizálást hajtott végre a WineD3D kódon és a háttérben a Vulkan grafikus API segítségével.
    • A Vulkan API-alapú renderelő kód most ellenőrzi, hogy az eszköz milyen képességeket támogat, és közli az alkalmazással, hogy milyen szintű Direct3D funkciók érhetők el.
    • A D3DXFillTextureTX és D3DXFillCubeTextureTX függvények megvalósításra kerültek.
    • A klasszikus OpenGL ARB shader háttérrendszer támogatja az árnyékok meghatározását az ARB_fragment_program_shadow kiterjesztéssel.
    • A D3DXLoadMeshHierarchyFromX és hasonló funkciók támogatást nyújtottak a felhasználói adatok betöltéséhez az ID3DXLoadUserData felületen keresztül.
  • Hang és videó
    • Javasolták a DirectMusic API kezdeti megvalósítását. A SoundFont formátumú gyűjtemények, hangszerek és hangminták támogatása hozzáadva. Hozzáadott támogatás a Doppler-effektushoz. Teszteket hajtottak végre a helyes megvalósítás ellenőrzésére a dmime szekvenszer és a dmsynth MIDI szintetizátor működtetésekor.
    • A FluidSynth könyvtár a DirectMusic API-ba van beépítve.
    • Megvalósult a hangbetűtípusok (SoundFont - MIDI fájlok lejátszásához használt minta alapú szintézis formátumai) betöltésének támogatása DLS1 és DLS2 formátumokban, valamint az SF2 formátumban, amelyet a következőkben használnak: Linux.
    • Hozzáadtuk a MIDI-tartalom lejátszásának lehetőségét a dmsynth könyvtár használatával, a FluidSynth szoftverszintetizátor és a DirectSound API használatával a hangkimenethez.
    • Dekóder hozzáadva az Indeo IV50 videokodek formátumú videóhoz.
  • DirectShow
    • A WMV formátumú dekóderrel ellátott DMO (DirectX Media Object) komponens implementálva lett (Windows Média Videó).
    • Hangrögzítési szűrő (DirectShow Audio Capture Filter) hozzáadva.
    • Az audió adatfolyamokon kívül az MPEG-1 Stream Splitter (DirectShow MPEG-1 Stream Splitter) mostantól támogatja a video- és szolgáltatásadatfolyamokat is.
    • A videó MPEG-1 formátumú dekódolására szolgáló szűrőt (DirectShow MPEG-1 Video Decoder) implementáltak.
  • Bemeneti eszközök
    • A DirectInput támogatja az akcióleképezést, amely lehetővé teszi, hogy a játékvezérlő gombjait a játékokban meghatározott műveletekhez rendelje.
  • Asztali integráció
    • A kötések exportálva lettek a fő felhasználói környezetbe, így a Wine alatt futó alkalmazások protokollkezelőként hívhatók meg az URL megnyitásakor (például a spotify.exe elindítása olyan hivatkozások megnyitásakor, mint a „spotify:user:spotify:playlist:848218482355482821”).
    • Megvalósította az EDID (Extended Display Identification Data) adatok kinyerését a csatlakoztatott monitor paramétereivel, például az eszköz nevével és modelljével kapcsolatos információkkal.
    • Lehetőség van a teljes képernyős módban telepített asztali ablak bezárására a „Start” menü „Kilépés az asztalról” gombjával.
  • Nemzetközivé válás
    • Bővítettük az IME-k (beviteli módszer szerkesztők) támogatását. Munkálkodtunk a natív nyelvekkel való kompatibilitás biztosítása érdekében. Windows IME implementációk és továbbfejlesztett integráció a következővel: Linux EMI
    • Területi beállítási adatbázisok létrehozása locale.nls formátumban a Unicode CLDR (Unicode Common Locale Data Repository) 44-es verziójú adatbázisból biztosított további területi beállításokhoz (bew-ID, blo-BJ, csw-CA, azaz-EE, mic-CA). , a prg-PL hozzáadásra került , skr-PK, tyv-RU, vmw-MZ, xnr-IN és za-CN.
    • A felületet lefordították grúz nyelvre. A teljes fordítás 16 nyelvre, a részleges fordítások pedig 31 nyelvre állnak rendelkezésre.
    • A Unicode karaktertáblázatok a szabványos 15.1.0 verzióra frissültek. Az időzóna adatbázis frissítve lett.
  • Kernel (kernel interfészek Windows)
    • A kiadott változat szerint Windows alapértelmezés szerint definiált Windows 10.
    • A PE formátumú futtatható fájlok esetében a címtér véletlenszerűsítése (ASLR) támogatott, de a kód memóriába való betöltéséhez szükséges címek még nincsenek teljesen véletlenszerűen randomizálva.
    • A gyengén töredezett kupac (LFH, Low Fragmentation Heap) támogatása megtörtént, ami növelte a memóriafoglalási műveletek teljesítményét.
    • A memóriafoglalás (helyőrző) támogatása hozzáadásra került a virtuális memóriakiosztási mechanizmushoz, lehetővé téve az alkalmazás számára, hogy lefoglaljon egy adott területet a virtuális memóriából jövőbeli használatra.
    • A végrehajtható fájlok és könyvtárak 64 bites betöltői (betöltő és előbetöltő) PIE (Position-Independent Executables) formátumban vannak fordítva, hogy felszabadítsák a 32 bites címtér egy részét.
    • Az NT rendszerhívásokhoz és a felhasználói visszahívásokhoz a verem megfelelő letekercselése biztosított.
  • Hálózati szolgáltatások
    • Az MSHTML motor támogatja a „Cycle Collection” szemétgyűjtő mechanizmust.
    • Az MSHTML támogatja az XMLHttpRequest kérések szinkron feldolgozását.
    • A jscript.dll támogatja a WeakMap objektumot, hogy olyan kulcs/érték párok gyűjteményével működjön együtt, amelyben a kulcs egy olyan objektum, amelyhez tetszőleges érték kapcsolható. Megvalósított WeakMap.get(), WeakMap.delete(), WeakMap.clear() és WeakMap.has() metódusok.
    • A Gecko böngészőmotor a 2.47.4-es verzióra frissült.
    • Megvalósult a hálózati interfész állapotváltozásairól szóló értesítések támogatása.
  • Kriptográfia és biztonság
    • Az intelligens kártyák támogatása hozzáadásra került a Winscard.dll könyvtárhoz, amelyet a PCSClite rendszerkönyvtáron keresztül valósítottak meg.
    • A BCrypt hozzáadta a Diffie-Hellman kulcscsere protokoll támogatását.
    • Megvalósult a Negotiate csomag, amely egy réteget biztosít az SSPI (Security Support Provider Interface) interfész használatához az SSP (Security Support Provider) szolgáltatók eléréséhez.
  • Beágyazott alkalmazások
    • A Wine Debugger (winedbg) a Zydis könyvtárat használja az X86 gép utasításainak szétszedésére.
    • A WineCfg felülete frissült, hogy támogassa a régebbi verziókat 64 bites platformokon. Windows (XP előtt), amely lehetővé teszi a régebbi alkalmazások futtatását WoW64 módban.
    • Az összes beépített grafikus alkalmazás mostantól külön párbeszédpanelen jeleníti meg a hibainformációkat, ahelyett, hogy a konzolon jelenítené meg azokat.
    • A systeminfo program a WMI adatbázisból jeleníti meg az információkat (Windows Vezetési eszközök).
    • Hozzáadott klist alkalmazás a Kerberos jegyek megjelenítéséhez.
    • A Taskkill alkalmazás megvalósítja a gyermekfolyamatok kényszerített leállításának képességét.
    • A „/machine” opció hozzáadva az indító segédprogramhoz, amellyel kiválasztható az x86-ot és ARM-et támogató hibrid végrehajtható fájlok futtatásakor használt architektúra.
    • A feladatlista program funkcióinak nagy része megvalósult.
    • A findstr alkalmazás alapvető megvalósítása hozzáadva.
  • Fejlesztési eszközök
    • A WineDump segédprogram képes megjeleníteni a rendszerleíró fájlok tartalmát. Windows (REGF formátum), valamint a hibrid PE fájlokban támogatott összes architektúra (x86/ARM64) adatainak megjelenítése.
    • Az IDL-fordító hozzáadta a „composable”, „default_overload”, „deprecated” és „protected” attribútumok támogatását.
    • Eltávolítottuk a libwine.so fájlt, amely a Wine 6.0-ban elavult volt, és már régóta nem használják a Wine-ban. A Wine régebbi (5.0 és régebbi) verzióiba beépített ELF formátumú programok a libwine.so-val, újraépítést igényelnek a Wine 9.0-s futtatásához.
  • Beépített könyvtárak és külső függőségek
    • A csomagban a FluidSynth 2.3.3, a Musl 1.2.3 (csak matematikai függvények) és a Zydis 4.0.0 könyvtárak integrálva vannak.
    • Az összetevők Vkd3d 1.10, Faudio 23.12, OpenLDAP 2.5.16, LCMS2 2.15, LibMPG123 1.32.2, LibPng 1.6.40, LibTiff 4.6.0, LibXml2 2.11.5 és 1.1.38 LibXslt s. A Wine Mono motor a .NET platform megvalósításával 1.3-ra frissült.
    • A winewayland.drv illesztőprogram a Wayland ügyfélkönyvtárat használja külső függőségekként, valamint az xkbcommon és az xkbregistry könyvtárakat.
    • Az intelligens kártyák támogatásához külső PCSClite könyvtárat használnak (a macOS — PCSC).
    • A PE-fájlok nem i386-os platformokon történő építéséhez mostantól szükség van egy keresztfordítóra, amely támogatja a ".seh" direktívákat a kivételek kezeléséhez.

Forrás: opennet.ru

Vásároljon megbízható tárhelyet DDoS védelemmel, VPS VDS szerverekkel rendelkező webhelyekhez 🔥 Vásároljon megbízható weboldal tárhelyet DDoS védelemmel, VPS VDS szerverekkel | ProHoster