Stabilné vydanie Wine 7.0

Po roku vývoja a 30 experimentálnych verzií bol predstavený stabilný release otvorenej implementácie Win32 API — Wine 7.0, ktorý zahŕňa viac ako 9100 zmien. Medzi kľúčové dosiahnutia novej verzie patrí prechod väčšiny modulov Wine na formát PE, podpora tém, rozšírenie zásobníka pre joystickové a vstupné zariadenia s rozhraním HID a implementácia architektúry WoW64 na spúšťanie 32-bitových programov v 64-bitovom prostredí.

V Wine bola potvrdená plná funkčnosť 5156 (pred rokom 5049) programov pre Windows, ďalších 4312 (pred rokom 4227) programov funguje vynikajúco s dodatočnými nastaveniami a externými DLL. U 3813 programov (pred rokom 3703) sa pozorujú drobné problémy v prevádzke, ktoré nebránia používaniu základných funkcií aplikácií.

Kľúčové novinky Wine 7.0:

  • Moduly vo formáte PE
    • Takmer všetky DLL knižnice boli prevedené na používanie formátu spustiteľných súborov PE (Portable Executable, používa sa v systéme Windows) namiesto ELF. Použitie PE rieši problémy s podporou rôznych schém ochrany pred kopírovaním, ktoré kontrolujú identitu systémových modulov na disku a v pamäti.
    • Bola implementovaná možnosť interakcie modulov PE s Unix knihovnami prostredníctvom štandardného systémového volania jadra NT, čo umožňuje skryť prístup k Unix kódu od laditeľov Windows a sledovať registráciu vlákien.
    • Vstavané DLL sa teraz načítavajú iba v prípade, že na disku sa nachádza príslušný súbor v formáte PE, nezávisle od toho, či ide o skutočnú knižnicu alebo zástupcu. Uvedená zmena umožňuje aplikácii vždy vidieť správne prepojenie na PE súbory. Na vypnutie tohto správania je možné použiť premennú prostredia WINEBOOTSTRAPMODE.
  • WoW64
    • Bola implementovaná architektúra WoW64 (64-bit Windows-on-Windows), ktorá umožňuje spúšťanie 32-bitových Windows aplikácií v 64-bitových Unix procesoch. Podpora je realizovaná prostredníctvom pripojenia vrstvy, ktorá prekladá 32-bitové systémové volania NT na 64-bitové volania na NTDLL.
    • Vrstvy WoW64 sú pripravené pre väčšinu Unix knižníc a umožňujú 32-bitovým modulom v formáte PE pristupovať k 64-bitovým Unix knižniciam. Po dokončení prechodu všetkých modulov na formát PE sa objaví možnosť vykonávania 32-bitových Windows aplikácií bez inštalácie 32-bitových Unix knižníc.
  • Témy
    • Podpora tém bol implementovaná. Súčasťou sú témy „Light“, „Blue“ a „Classic Blue“, ktoré je možné vybrať prostredníctvom konfigurátora WineCfg.
    • Bola pridaná možnosť prispôsobiť vzhľad všetkých prvkov rozhrania prostredníctvom tém. Zabezpečené automatické aktualizovanie vzhľadu prvkov po zmene témy.
    • Všetky vstavané aplikácie Wine získali podporu tém. Aplikácie boli prispôsobené obrazovkám s vysokou hustotou pixelov (High DPI).
  • Grafický subsystém
    • Pridaná nová knižnica Win32u, do ktorej boli presunuté časti knižníc GDI32 a USER32, súvisiace s grafickým spracovaním a riadením okien na úrovni jadra. Následne sa začne práca na prenose komponentov ovládačov do Win32u, ako sú winex11.drv a winemac.drv.
    • V ovládači Vulkan bola implementovaná podpora špecifikácie grafického API Vulkan 1.2.201.
    • Poskytla sa podpora výstupu cez API Direct2D pre pruhované geometrické objekty s možnosťou kontroly úderu (hit-test).
    • V API Direct2D bola implementovaná základná podpora vizuálnych efektov používaných pomocou rozhrania ID2D1Effect.
    • API Direct2D pridalo podporu rozhrania ID2D1MultiThread, ktoré sa používa na organizáciu exkluzívneho prístupu k zdrojom v viacvláknových aplikáciách.
    • V súbore knižníc WindowsCodecs bola implementovaná podpora dekódovania obrázkov vo forme WMP (Windows Media Photo) a kódovania obrázkov do formátu DDS (DirectDraw Surface). Podpora kódovania obrázkov vo formáte ICNS (pre macOS), ktorý nie je podporovaný v systéme Windows, bola zastavená.
  • Direct3D
    • Nový engine vykresľovania bol výrazne vylepšený, uskutočňujúci transláciu volaní Direct3D do grafického API Vulkan. V väčšine situácií bol úroveň podpory Direct3D 10 a 11 v engine na báze Vulkan zrovnaná so starým engine založeným na OpenGL. Pre aktiváciu vykresľovacieho engine cez Vulkan je potrebné nastaviť registry Direct3D premennú „renderer“ na hodnotu „vulkan“.
    • Implementované mnohé možnosti Direct3D 10 a 11, vrátane odložených kontextov (Deferred Contexts), ktoré fungujú v kontexte zariadení, objekty stavu, trvalé posuny v vyrovnávacích pamätiach, čistenie neusporiadaných predstavení textúr, kopírovanie údajov medzi zdrojmi v typoch bez typov (DXGI_FORMAT_BC3_TYPELESS, DXGI_FORMAT_R32G32B32A32_TYPELESS) a podobne.
    • Pridaná podpora viacmonitorových konfigurácií, ktorá umožňuje vybrať monitor na zobrazenie Direct3D aplikácie na celú obrazovku.
    • V API DXGI bola implementovaná funkcia gama korekcie obrazovky, ktorá môže byť použitá aplikáciami založenými na Direct3D 10 a 11 na zmenu jasnosti obrazovky. Zabezpečené bolo získavanie čítačov virtuálnych rámcových vyrovnávacích pamätí (SwapChain).
    • V Direct3D 12 bola pridaná podpora koreňových podpisov verzie 1.1.
    • V kóde vykresľovania prostredníctvom API Vulkan bola zvýšená efektívnosť spracovania požiadaviek pri existencii podpory rozšírenia VK_EXT_host_query_reset v systéme.
    • Pridaná možnosť výstupu virtuálnych rámcových vyrovnávacích pamätí (SwapChain) cez GDI, ak nemôžu byť použité na zobrazenie OpenGL alebo Vulkan, napríklad pri výstupe do okna z rôznych procesov, ako sú programy založené na frameworku CEF (Chromium Embedded Framework).
    • Pri použití backendu pre shadery GLSL pre shadrové inštrukcie je zabezpečené použitie modifikátora „precise“.
    • V API DirectDraw bola pridaná podpora 3D vykresľovania do systémovej pamäte, pričom sa používajú softvérové zariadenia, ako sú „RGB“, „MMX“ a „Ramp“.
    • Do databázy grafických kariet Direct3D boli pridané karty AMD Radeon RX 5500M, AMD Radeon RX 6800/6800 XT/6900 XT, AMD Van Gogh, Intel UHD Graphics 630 a NVIDIA GT 1030.
    • Z registra HKEY_CURRENT_USER\Software\Wine\Direct3D bol odstránený kľúč „UseGLSL“, namiesto ktorého je od verzie Wine 5.0 potrebné použiť „shader_backend“.
    • Na podporu Direct3D 12 je teraz potrebná knižnica vkd3d aspoň verzie 1.2.
  • D3DX
    • V implementácii D3DX 10 bola zlepšená podpora frameworku vizuálnych efektov a pridaná podpora formátu obrázkov Windows Media Photo (JPEG XR).
    • Pridané funkcie na vytváranie textúr poskytované v D3DX10, ako D3DX10CreateTextureFromMemory().
    • Čiastočne boli implementované programové rozhrania ID3DX10Sprite a ID3DX10Font.
  • Zvuk a video
    • Do spoločného backendu WineGStreamer boli zlúčené GStreamer rozšírenia pre DirectShow a framework Media Foundation, čo by malo uľahčiť vývoj nových API dekódovania obsahu.
    • Na základe backendu WineGStreamer boli implementované objekty Windows Media pre synchronné a asynchrónne čítanie.
    • Pokračovalo sa v dokončovaní implementácie frameworku Media Foundation, bola pridaná podpora funkčnosti IMFPMediaPlayer, distribútora vzoriek (sample allocator), a bola zlepšená podpora EVR a vyrovnávacích pamätí na vykresľovanie SAR.
    • Knižnica wineqtdecoder, poskytujúca dekodér pre formát QuickTime, bola odstránená (pre všetky kodeky sa teraz používa GStreamer).
  • Vstupné zariadenia
    • Výrazne zlepšený stack pre vstupné zariadenia podporujúce protokol HID (Human Interface Devices), ktorý implementuje možnosti ako analýza HID popisov, spracovanie HID správ a poskytovanie mini ovládačov HID.
    • V backendoch ovládača winebus.sys bola vylepšená translácia popisov zariadení do HID správ.
    • Bol pridaný nový backend DirectInput pre joystickové ovládače podporujúce protokol HID. Implementovali sa možnosti použitia efektov spätnej väzby v joystickoch. ovládací panel Optimalizovalo sa interakcia s zariadeniami kompatibilnými s XInput. V WinMM bola podpora joystickov prevedená na DInput, namiesto použitia backendu evdev v Linuxe a IOHID v macOS. Starý ovládač joystickov winejoystick.drv bol odstránený.
    • Do modulu DInput boli pridané nové testy založené na použití virtuálnych HID zariadení a nevyžaduje prítomnosť fyzického zariadenia.
  • Text a písma
    • Do DirectWrite bol pridaný objekt Font Set.
    • V RichEdit bol správne implementovaný rozhranie TextHost.
  • Jadro (rozhrania jadra Windows)
    • Pri spustení neznámeho spustiteľného súboru v Wine (napríklad ‘wine foo.msi’) sa teraz volá start.exe, ktorý spúšťa handleri súvisiace s typom súboru.
    • Bola pridaná podpora synchronizačných mechanizmov NtAlertThreadByThreadId a NtWaitForAlertByThreadId, ktoré sú blízke futexom v Linuxe.
    • Bola pridaná podpora pre debugovacie objekty NT používané na ladenie funkcií jadra.
    • Bola pridaná podpora pre dynamické registry kľúče na uchovávanie údajov o výkonnosti.
  • C Runtime
    • V C runtime bol implementovaný úplný súbor matematických funkcií, ktorý bol hlavne prenesený z knižnice Musl.
    • Pre všetky platformy CPU bola zabezpečená správna podpora funkcií na výpočty s pohyblivou desatinnou čiarkou.
  • Network capabilities
    • Zlepšený režim kompatibility s Internet Explorer 11 (IE11), ktorý sa teraz používa ako predvolený na spracovanie HTML dokumentov.
    • V knižnici mshtml bol implementovaný JavaScript režim ES6 (ECMAScript 2015), ktorý zabezpečuje podporu pre možnosti ako výraz let a objekt Map.
    • Inštalácia doplnkov Wine MSI balíkov do pracovného adresára sa teraz vykonáva podľa potreby, nie pri aktualizácii Wine.
    • Pridaná podpora protokolu DTLS.
    • Bol implementovaný servis NSI (Network Store Interface), ktorý uchováva a prenáša informácie o smerovaní a sieťových rozhraniach na počítači iným servisom.
    • API spracovatelia WinSock, ako setsockopt a getsockopt, boli presunuté do knižnice NTDLL a ovládača afd.sys, aby zodpovedali architektúre Windows.
    • Do pracovného adresára Wine sa teraz inštalujú vlastné súbory so sieťovými DB, ako napríklad /etc/protocols a /etc/networks, namiesto odkazu na podobné Unix DB.
  • Alternatívne platformy
    • Pridaná podpora hardvéru Apple založeného na ARM čipoch M1 (Apple Silicon).
    • Na podporu funkcií BCrypt a Secur32 na platforme macOS je teraz potrebné nainštalovať knižnicu GnuTLS.
    • 32-bitové spustiteľné súbory pre platformy ARM sa teraz zostavujú v režime Thumb-2, podobne ako v systéme Windows. Na načítanie takýchto súborov je použitý preloader.
    • Na 32-bitových platformách ARM bola implementovaná podpora rozvinovania (unwinding) výnimiek.
    • Pre FreeBSD bolo rozšírené množstvo podporovaných požiadaviek na nízkoúrovňové informácie o systéme, ako sú údaje o stave pamäte a úrovni nabitia batérie.
  • Vstavané aplikácie a nástroje na vývoj
    • Do nástroja reg.exe sa pridala podpora 32- a 64-bitových reprezentácií registra. Pridaná podpora kopírovania kľúčov registra.
    • Do nástroja WineDump sa pridala podpora výstupu dumpu metadát Windows a zobrazenia podrobných informácií o záznamoch CodeView.
    • V ladení Wine Debugger (winedbg) bola realizovaná možnosť ladění 32-bitových procesov z 64-bitového debuggera.
    • Do kompilátora IDL (widl) bola pridaná možnosť načítania knižníc integrovaných do PE súborov, bola zabezpečená podpora atribútov a konštrukcií špecifických pre WinRT, ako aj realizovaný vyhľadávanie knižníc viazané na platformu.
  • Systém zostavovania
    • V adresároch špecifických pre architektúry sa knižnice teraz ukladajú s názvami, ktoré odrážajú architektúru a typ spustiteľných súborov, napríklad 'i386-windows' pre formát PE a 'x86_64-unix' pre unixové knižnice, čo umožňuje implementovať podporu rôznych architektúr v jednej inštalácii Wine a zabezpečiť krížovú kompiláciu Winelib.
    • Na nastavenie v hlavičkách PE súborov volieb, ktoré riadia prechod na používanie natívnych DLL knižníc, bol do winebuild pridaný parameter '--prefer-native option' (spracovanie DLL_WINE_PREATTACH v DllMain bolo zastavené).
    • Pridaná podpora 4. verzie formátu debugovacích údajov Dwarf, ktorý sa teraz používa ako predvolený pri zostavovaní knižníc Wine.
    • Pridaná zostavovacia možnosť '--enable-build-id' na zachovanie unikátnych identifikátorov zostavenia v spustiteľných súboroch.
    • Pridaná podpora pre použitie kompilátora Clang v režime kompatibility s MSVC.
  • Rôzne
    • Názvy typových adresárov v používateľskom prostredí (Windows Shell) boli prispôsobené schéme používané od Windows Vista, t.j., namiesto 'Moje dokumenty' sa teraz vytvára adresár 'Dokumenty' a väčšina údajov sa ukladá do adresára 'AppData'.
    • V medzivrstve pre knižnicu OpenCL bola pridaná podpora špecifikácie OpenCL 1.2.
    • V ovládači WinSpool bola pridaná podpora rôznych variantov veľkostí strán pri tlači.
    • Pridaná počiatočná podpora MSDASQL, poskytovateľa Microsoft OLE DB pre ovládače ODBC.
    • Engin Wine Mono s implementáciou platformy .NET bol aktualizovaný na verziu 7.0.0.
    • Údaje Unicode boli aktualizované na špecifikáciu Unicode 14.
    • Do stromu zdrojových textov boli začlenené knižnice Faudio, GSM, LCMS2, LibJPEG, LibJXR, LibMPG123, LibPng, LibTiff, LibXml2, LibXslt a Zlib, ktoré sú kompilované vo formáte PE a nevyžadujú variant v Unix formáte. Tieto knižnice môžu byť tiež importované zo systému na použitie externých zostáv namiesto zabudovaných PE variantov.

Zdroj: opennet.ru

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster