Stabilní vydání Wine 10.0.

Po roce vývoje a 29 experimentálních verzích byl uveden stabilní release otevřené implementace Win32 API – Wine 10.0, která zahrnuje více než 6000 změn. Mezi klíčovými úspěchy v nové verzi vyniká plná podpora architektury ARM64EC, škálování na obrazovkách s vysokou hustotou pixelů, defaultní zapnutí Wayland ovladače, realizace panelů pro nastavení obrazovky a joysticku, alternativní multimediální backend založený na FFmpeg, Bluetooth ovladač, podpora Vulkan 1.4 a možnost emulace přepínání video režimů.

Ve Wine byla potvrzena plná funkčnost 5372 programů pro Windows (před rokem 5336, před dvěma lety 5266, před třemi lety 5156), dalších 4435 programů (před rokem 4397, před dvěma lety 4370, před třemi lety 4312) funguje skvěle s dodatečnými nastaveními a externími DLL. U 4020 programů (před rokem 3943, před dvěma lety 3888, před třemi lety 3813) se objevují drobné problémy v práci, které nebrání používání základních funkcí aplikací.

Klíčové novinky Wine 10.0:

  • ARM64
    • Byla zajištěna plná podpora architektury ARM64EC (ARM64 Emulation Compatible), úroveň podpory ve Wine dosáhla parity s architekturou ARM64. Architektura ARM64EC byla vyvinuta pro usnadnění portování aplikací původně napsaných pro systémy x86_64 na systémy ARM64 a umožňuje spouštění jednotlivých modulů s kódem x86_64 v prostředí ARM64 pomocí emulátoru.
    • Byla realizována plná podpora formátu PE souborů ARM64X, který umožňuje kombinaci kódu pro architektury ARM64EC a ARM64 v jednom spustitelném souboru. Pro sestavení Wine ve formátu ARM64X je nutné nainstalovat LLVM z Gitu (nevyhnutelná funkčnost bude součástí vydání LLVM 20) a při spuštění skriptu „configure“ uvést volbu „—enable-archs=arm64ec,aarch64“.
    • Byl realizován rozhraní pro emulaci 64-bitových systémy x86. Při použití ARM64EC se Wine spouští tak, jak je, a emulace se aplikuje pouze na kód aplikací x86-64. Knihovna s emulátorem zatím není součástí hlavního podílu Wine, ale pro spuštění kódu x86-64 v prostředí ARM64 lze použít externí emulátor FEX, sestavený s podporou ARM64EC.
    • Pro podporu ARM64 je nutné v systému používat stránky paměti o velikosti 4KB, jak vyžaduje ABI Windows (spuštění v prostředích s jádry Linux, používajícími stránky paměti 16K nebo 64K zatím není podporováno).
  • Grafický subsystém
    • Bylo realizováno přesnější škálování na obrazovkách s vysokou hustotou pixelů (High-DPI). Byla zajištěna podpora režimu DPI Awareness pro organizaci zobrazování aplikací na obrazovkách s vysokou hustotou pixelů, podle toho, zda aplikace podporuje přizpůsobení změně DPI, či nikoli (aplikace, které s DPI nepočítají, se automaticky škálují). Byly přidány možnosti pro přepsání podpory High-DPI vázané k jednotlivým aplikacím nebo prefixům Wine.
    • Do ovladače pro grafické API Vulkan byla přidána podpora specifikace Vulkan 1.4 (ve Wine 9.0 byla podporována Vulkan 1.3.272). Byla přidána podpora rozšíření Vulkan pro kódování a dekódování videa.
    • Při použití backendu X11 byla realizována možnost vykreslování podřízených oken Vulkan pro aplikace, které využívají podobná okna pro zobrazení 3D obsahu (dříve byla podobná možnost dostupná pouze pro OpenGL).
    • Do knihovny GdiPlus byla přidána podpora mechanismu svazování písem ("Font Linking"), který umožňuje při zobrazení textu využít několik písem, pokud neexistují písma, která by jednotlivě pokrývala všechny symboly obsažené v textu.
  • Wayland
    • Ve výchozí konfiguraci byl aktivován ovladač winewayland.drv, který umožňuje používat Wine v prostředích založených na protokolu Wayland bez použití XWayland a komponentů X11. Wine spouští aplikace ve výchozím nastavení na Waylandu přímo pouze pokud je XWayland nedostupný, jinak zůstává spuštění s použitím XWayland prioritní. Pro vynucení zapnutí Waylandu můžete použít proměnnou prostředí DISPLAY, nebo přidat klíč do registru tím, že vytvoříte soubor file.reg: Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Wine\Drivers] "Graphics"="wayland" a použijete ho příkazem: $ WINEPREFIX=\/cesta\/k\/prefixu wine regedit \/cesta\/k\/file.reg
    • Do ovladače winewayland.drv byla přidána podpora OpenGL a pixelových bufferů (pBuffer).
    • Byly vyřešeny problémy s umístěním vyskakovacích oken v prostředích založených na Waylandu.
    • Při použití Waylandu byla realizována podpora automatického opakování stisknutí kláves při jejich podržení.
  • Integrace s plochou
    • Byl přidán experimentální mechanismus emulace "modesetting", který umožňuje emulovat přepínání video módů bez skutečné změny nastavení obrazovky. Viditelnost změny rozlišení obrazovky bez přepínání video módu je vytvořena prostřednictvím rozšíření a škálování oken.
    • Byl přidán nový aplikační modul Desktop Control Panel (desk.cpl) s implementací rozhraní pro správu nastavení zobrazení (například je možné měnit virtuální rozlišení plochy nebo nastavovat emulované parametry zobrazení).
    • Byla přidána možnost resetování nastavení obrazovky na výchozí hodnoty v případě, že není možné obnovit stav po havarijním ukončení procesu.
    • Byla přidána podpora pro vypnutí zobrazení ikonek v systémové liště (v „HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer“ je třeba nastavit „NoTrayItemsDisplay=1“).
    • Byla přidána podpora pro vypnutí shellů (Shell launcher) v režimu plochy (v „HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer“ je třeba nastavit „NoDesktop=1“).
  • Direct3D
    • Pro vykreslování pomocí OpenGL je nyní vyžadována podpora GLSL 1.20, a také rozšíření EXT_framebuffer_object a ARB_texture_non_power_of_two. Podpora starého backendu ARB shader a nastavení OffscreenRenderingMode byla ukončena.
    • Pro Direct3D 9 a starší verze byl přidán grafický pipeline s pevnými funkcemi (ve starších verzích Direct3D byly k dispozici pouze předdefinované grafické operace, které nebylo možné měnit), realizovaný pomocí jazyka HLSL a umožňující emulaci pevných funkcí při vykreslování přes API Vulkan nebo OpenGL.
    • Při vykreslování pomocí Vulkan byly použity rozšíření Vulkan pro dynamické měnění stavu grafického pipeline, což pomáhá zkracovat zpoždění ve hrách.
    • Byl přidán alternativní backend glsl-vkd3d pro shadery GLSL, využívající vkd3d-shader.
    • Byla poskytnuta základní podpora pro kompilaci efektů Direct3D s použitím vkd3d-shader.
    • V knihovně D3DX9 byla implementována možnost generace MIP-textur (MipMap) při načítání objemových textur. Byla přidána podpora pro formáty barev 64bpp RGBA a 48bpp RGB v obrázcích PNG, stejně jako pro formáty X8L8V8U8, A2W10V10U10, A8P8, V16U16 a Q16W16V16U16.
  • Zvuk a video
    • Jako alternativa k backendu na bázi GStreamer byl implementován nový multimediální backend založený na FFmpeg, který je vhodný pro zajištění fungování rámce Media Foundation. Pro aktivaci alternativního backendu je nutné v registru v sekci „HKCU\Software\Wine\MediaFoundation“ nastavit „DisableGstByteStreamHandler=1“.
    • Byla vylepšena implementace API Media Foundation, která nyní lépe spolupracuje s aplikacemi závislými na demultiplexingových a dekódovacích komponentách.
    • Do API DirectMusic byla přidána podpora nahrávání MIDI souborů.
  • Vstupní zařízení
    • Byla přidána počáteční verze ovladače Bluetooth.
    • Byl přidán ovladač Joystick Control Panel (joy.cpl) s implementací nastavení pro joystick.
    • Byla provedena vylepšení týkající se ukazatelů (touchpady, myši), které používají protokol HID (Human Interface Device). Byla přidána ovladač mouhid.sys pro HID zařízení. Byla implementována správná analýza složených vstupních zařízení a zajištěn přenos informací o nich do aplikací Windows jako o samostatných zařízeních.
    • Pro backend X11 byla přidána podpora dotykových obrazovek a byla realizována možnost použití multitouch režimu prostřednictvím zpracování událostí WM_POINTER* (WM_POINTERENTER, WM_POINTERLEAVE atd.).
    • Bylo realizováno umístění některých vnitřních struktur knihovny user32 do sdílené paměti, což zvýšilo výkon a snížilo zátěž na Wine Server.
    • V winex11 byla přidána podpora zpracování událostí XInput2 vázaných na jednotlivá okna.
    • Byla zajištěna správná podpora klávesnic s rozložením Dvorak.
  • Jádro (rozhraní jádra Windows)
    • Byla přidána podpora zvyšování oprávnění procesů (procesu spuštěnému původně jako běžný uživatel, mohou být přidělena oprávnění administrátora). Při vytváření serverových procesů (msi action server) a procesů vyvolávajících funkce RtlCreateUserProcess() a CreateProcessInternal() je ve výchozím nastavení použit omezený token administrátora.
    • Při získávání informací o značkách disků se nyní pokusíme použít volání systémových služeb přes DBus, místo pokusu o přímý přístup k zařízení.
    • Jednosměrný mechanismus meziprocesního komunikace (IPC) Mailslots byl nyní implementován přímo v Wine serveru, což umožnilo dosáhnout plné podpory Windows semantiky.
    • Bylo implementováno čekání na události sériového portu v asynchronním režimu.
    • Byla přidána plná podpora procesorových rozšíření XSTATE v kontextech vláken, což umožnilo využití nových vektorových rozšíření, jako je AVX-512.
  • Vestavěné aplikace
    • Byl přepsán engine zpracování vstupních dat používaný v příkazovém interpreteru cmd.exe. V cmd.exe byla přidána podpora operací „||“ a „&&“.
    • Do utilitě findstr byla přidána podpora regulárních výrazů a vyhledávání bez rozlišení velikosti písmen.
    • Do utilit regsvr32 a rundll32 byla přidána možnost registrace modulů ARM64EC.
    • Byly přidány nástroje: sort pro třídění vstupních dat, fc pro porovnání souborů a where pro vyhledávání souborů.
    • Aplikace wmic nyní implementuje interaktivní režim.
    • Explorer nyní obsahuje volitelnou podporu pro nabídku Start a panel nástrojů. Zajištěno spuštění explorer.exe s omezenými právy přístupu.
  • Nástroje pro vývojáře
    • Do winebuild byla přidána volba „-marm64x“ pro generaci hybridních knihoven ARM64X.
    • Do winegcc byla přidána volba „-marm64x“, která umožňuje sestavení pro ARM64X.
    • Ve souborech generovaných pomocí jazyka pro popis rozhraní IDL (Interface Definition Language) byly použity komponenty plně podporující interpretaci.
    • Do kompilátoru jazyka pro popis rozhraní IDL (Interface Definition Language) byla přidána podpora pro generaci typových knihoven (TypeLib) ve starém formátu (SLTG).
    • Do utility winedump byla přidána podpora pro ukládání dumpů tabulek minidump, informací o výjimkách C++ a prostředků typelib.
  • Různé
    • Byla vylepšena podpora protokolu pro výměnu klíčů Diffie-Hellman (DH). Byla přidána možnost nastavení a získání parametrů DH. Implementovány byly obslužné funkce pro vytváření párů veřejného a soukromého klíče.
    • Zajištěno použití doplňkového paddingu OAEP (Optimal Asymmetric Encryption Padding) spolu s algoritmem RSA.
    • V API DirectPlay byla realizována podpora pro síťové relace.
    • Byla vylepšena správa stavů asynchronního vstupu/výstupu při práci v režimu WoW64 (Windows-on-Windows 64-bit), což umožňuje spouštět 32bitové aplikace Windows na 64bitových unixových systémech.
    • Byla přidána podpora pro načítání ODBC ovladačů databází sestavených pro Windows.
    • Pro platformu ARM byla zajištěna plná podpora RPC/COM, C++ RTTI (Run-Time Type Information) a výjimek C++.
    • V C runtime byla v ANSI funkcích zajištěna podpora kódování UTF-8.
    • Možnosti motoru MSHTML byly rozšířeny. Byla zajištěna podpora prototypů a konstruktorů objektů. Do JavaScript motoru byl přidán nový rozhraní pro vazbu objektů pro MSHTML. Vstupní funkce MSHTML byly převedeny na platné objekty JavaScript. Bylo zlepšeno shromažďování odpadu pro JavaScript, které nyní pokrývá všechny kontexty provádění skriptu v rámci vlákna. Byla přidána podpora pro JavaScript objekty ArrayBuffer a DataView.
    • Do systému kontinuální integrace postaveného na Gitlabu byla přidána podpora pro statickou analýzu s použitím Clang a zpráv o úspěšnosti testů JUnit.
    • Systém obsahuje knihovnu Capstone 5.0.3, která implementuje disasembler v ladicím programu WineDb.
    • Byly aktualizovány komponenty na nové verze: Vkd3d 1.14, Faudio 24.10, FluidSynth 2.4.0, LDAP 2.5.18, LCMS2 2.16, LibJpeg 9f, LibMPG123 1.32.9, LibPng 1.6.44, LibTiff 4.7.0, LibXml2 2.12.8, LibXslt 1.1.42 a Zlib 1.3.1.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster