Stabilní vydání Wine 8.0

Po roce vývoje a 28 experimentálních verzích byla představena stabilní verze otevřené implementace Win32 API - Wine 8.0, která obsahovala více než 8600 XNUMX změn. Klíčovým úspěchem v nové verzi je dokončení práce na překladu modulů Wine do formátu.

Wine potvrdilo plné fungování 5266 (před rokem 5156, před dvěma lety 5049) programů pro Windows, dalších 4370 (před rokem 4312, před dvěma lety 4227) programů funguje perfektně s dodatečným nastavením a externími DLL. 3888 programů (před rokem 3813, před dvěma lety 3703) má drobné provozní problémy, které nenarušují používání hlavních funkcí aplikací.

Klíčové inovace ve Wine 8.0:

  • Moduly ve formátu PE
    • Po čtyřech letech práce byl dokončen převod všech knihoven DLL do formátu spustitelných souborů PE (Portable Executable, používaný ve Windows). Použití PE umožňuje použití debuggerů dostupných pro Windows a řeší problémy s podporou různých schémat ochrany proti kopírování, která ověřují identitu systémových modulů na disku a v paměti. Byly také vyřešeny problémy se spouštěním 32bitových aplikací na 64bitových hostitelích a aplikací x86 na systémech ARM. Mezi zbývající úkoly, které se plánují vyřešit v následujících experimentálních verzích Wine 8.x, je přechod modulů na rozhraní systémových volání NT namísto přímých volání mezi vrstvami PE a Unix.
    • Byl implementován speciální správce systémových volání, který se používá k překladu volání z PE do unixových knihoven, aby se snížila režie při provádění úplného systémového volání NT. Optimalizace například umožnila snížit degradaci výkonu při použití knihoven OpenGL a Vulkan.
    • Aplikace Winelib si zachovávají možnost používat smíšená sestavení knihoven ELF (.dll.so) Windows/Unix, ale takové aplikace bez 32bitových knihoven nebudou podporovat funkce dostupné prostřednictvím rozhraní systémového volání NT, jako je WoW64.
  • WoW64
    • Vrstvy WoW64 (64-bit Windows-on-Windows) jsou k dispozici pro všechny knihovny Unix, což umožňuje 32bitovým modulům ve formátu PE přistupovat k 64bitovým knihovnám Unix, které po odstranění přímých volání PE/Unixu umožní možné spouštět 32bitové aplikace Windows bez instalace 32bitových unixových knihoven.
    • Při absenci 32bitového Wine loaderu mohou 32bitové aplikace běžet v novém experimentálním režimu WoW64 podobnému Windows, ve kterém 32bitový kód běží uvnitř 64bitového procesu. Režim je povolen při sestavování Wine s možností '—enable-archs'.
  • Grafický subsystém
    • Výchozí konfigurace používá světlé téma („Světlo“). Motiv můžete změnit pomocí nástroje WineCfg.
      Stabilní vydání Wine 8.0
    • Ovladače grafiky (winex11.drv, winemac.drv, wineandroid.drv) jsou převedeny tak, aby spouštěly systémová volání na úrovni Unixu a přistupovaly k ovladačům prostřednictvím knihovny Win32u.
      Stabilní vydání Wine 8.0
    • Byla implementována architektura tiskového procesoru, která se používá k odstranění přímých volání mezi úrovněmi PE a Unix v ovladači tiskárny.
    • Direct2D API nyní podporuje efekty.
    • Direct2D API přidalo možnost nahrávat a přehrávat seznamy příkazů.
    • Ovladač pro grafické API Vulkan přidal podporu pro specifikaci Vulkan 1.3.237 (Vulkan 7 byl podporován ve Wine 1.2).
  • Direct3D
    • Přidán nový kompilátor shaderů pro jazyk HLSL (High-Level Shader Language), implementovaný na základě knihovny vkd3d-shader. Na základě vkd3d-shaderu byly také připraveny disassembler HLSL a preprocesor HLSL.
    • Rozhraní Thread Pump představené v D3DX 10 bylo implementováno.
    • Efekty Direct3D 10 přidávají podporu pro mnoho nových výrazů.
    • Knihovna podpory pro D3DX 9 nyní podporuje projekci textur Cubemap.
  • Zvuk a video
    • Na základě rámce GStreamer byla implementována podpora filtrů pro dekódování zvuku ve formátu MPEG-1.
    • Přidán filtr pro čtení streamovaného zvuku a videa ve formátu ASF (Advanced Systems Format).
    • Byla odstraněna mezivrstva knihovny OpenAL32.dll, místo níž je nyní použita nativní knihovna Windows OpenAL32.dll dodávaná s aplikacemi.
    • Media Foundation Player má vylepšenou detekci typu obsahu.
    • Byla implementována schopnost řídit rychlost přenosu dat (Rate control).
    • Vylepšená podpora pro výchozí směšovač a presenter v Enhanced Video Renderer (EVR).
    • Přidána počáteční implementace rozhraní Writer Encoding API.
    • Vylepšená podpora zavaděče topologie.
  • Vstupní zařízení
    • Výrazně vylepšená podpora pro hot plugging ovladačů.
    • Je navržena vylepšená implementace kódu pro určování herních volantů, postaveného na bázi knihovny SDL.
    • Vylepšená podpora efektu Force feedback při používání herních koleček.
    • Byla implementována možnost ovládat levý a pravý vibrační motor pomocí specifikace HID Haptic.
    • Změněn design ovládacího panelu joysticku.
    • Díky použití backendu hidraw je poskytována podpora pro ovladače Sony DualShock a DualSense.
    • Modul WinRT Windows.Gaming.Input je navržen s implementací softwarového rozhraní pro přístup k gamepadům, joystickům a herním kolům. Pro nové API je mimo jiné implementována podpora upozornění na hot plugging zařízení, hmatové a vibrační efekty.
  • Internacionalizace
    • Je zajištěno generování správné databáze locale ve formátu locale.nls z úložiště Unicode CLDR (Unicode Common Locale Data Repository).
    • Funkce porovnávání řetězců Unicode byly přesunuty tak, aby místo algoritmu Unicode Collation využívaly databázi a algoritmus řazení Windows, čímž se chování přiblížilo systému Windows.
    • Většina funkcí přidala podporu pro vyšší rozsahy kódů Unicode (roviny).
    • Jako kódování ANSI je možné použít UTF-8.
    • Tabulky znaků byly aktualizovány na specifikaci Unicode 15.0.0.
  • Text a písma
    • Pro většinu systémových písem bylo povoleno propojení písem, což řeší problém chybějících glyfů v systémech s čínskými, korejskými a japonskými lokalitami.
    • Přepracovaná záloha záložního písma v DirectWrite.
  • Kernel (rozhraní jádra systému Windows)
    • Byla implementována databáze ApiSetSchema, která nahradila moduly api-ms-* a snížila spotřebu místa na disku a adrese.
    • Atributy souborů DOS jsou uloženy na disk ve formátu kompatibilním se Sambou pomocí rozšířených atributů FS.
  • Síťové funkce
    • Přidána podpora pro protokol OCSP (Online Certificate Status Protocol), který se používá ke kontrole zrušených certifikátů.
    • Byla rozšířena řada funkcí EcmaScript dostupných v režimu dodržování standardů JavaScript.
    • Implementován garbage collector pro JavaScript.
    • Balíček Gecko engine obsahuje funkce pro osoby se zdravotním postižením.
    • MSHTML přidává podporu pro Web Storage API, objekt Performance a další objekty pro zpracování událostí.
  • Vestavěné aplikace
    • Všechny vestavěné aplikace byly převedeny tak, aby používaly knihovnu Common Controls 6 s podporou návrhových motivů a vykreslování zohledňující obrazovky s vysokou hustotou pixelů.
    • Vylepšené možnosti pro ladění vláken ve Wine Debugger (winedbg).
    • Nástroje registru (REGEDIT a REG) nyní podporují typ QWORD.
    • Poznámkový blok přidal stavový řádek s informacemi o pozici kurzoru a funkci Přejít na řádek pro skok na zadané číslo řádku
    • Vestavěná konzola poskytuje výstup dat v kódové stránce OEM.
    • Do obslužného programu sc.exe (řízení služby) byl přidán příkaz 'query'.
  • Montážní systém
    • Byla poskytnuta možnost vytvářet spustitelné soubory ve formátu PE pro několik architektur (například '—enable-archs=i386,x86_64').
    • Na všech platformách s typem 32-bit long jsou datové typy definované jako long ve Windows nyní předefinovány jako „long“ namísto „int“ ve Wine. Ve Winelib lze toto chování zakázat pomocí definice WINE_NO_LONG_TYPES.
    • Přidána možnost generování knihoven bez použití dlltool (povoleno nastavením volby '—without-dlltool' ve winebuild).
    • Pro zlepšení efektivity načítání a zmenšení velikosti knihoven bez kódu a pouze zdrojů implementuje winegcc možnost '--data-only'.
  • Různé
    • Aktualizované verze vestavěných knihoven Faudio 22.11, LCMS2 2.14, LibJPEG 9e, LibMPG123 1.31.1, LibPng 1.6.39, LibTiff 4.4.0, LibXml2 2.10.3, LibXslt 1.1.37, LibXslt 1.2.13
    • Engine Wine Mono s implementací platformy .NET byl aktualizován na verzi 7.4.
    • Byla implementována podpora pro šifrování založené na algoritmu RSA a digitálních podpisech RSA-PSS.
    • Přidána počáteční verze rozhraní UI Automation API.
    • Zdrojový strom obsahuje knihovny LDAP a vkd3d, které jsou kompilovány ve formátu PE, takže není potřeba dodávat unixové sestavy těchto knihoven.
    • Knihovna OpenAL byla ukončena.

Zdroj: opennet.ru

Přidat komentář