Stabilno izdanje Wine 9.0

Nakon godine dana razvoja i 26 eksperimentalnih verzija, objavljen je stabilni izdanak otvorene implementacije Win32 API — Wine 9.0, koji uključuje više od 7000 promjena. Ključna postignuća u novoj verziji uključuju implementaciju arhitekture WoW64 za pokretanje 32-bitnih programa u 64-bitnom okruženju, integraciju drajvera za podršku Waylandu, podršku za ARM64 arhitekturu, implementaciju DirectMusic API-ja i podršku za pametne kartice.

U Wine-u je potvrđeno potpuno funkcioniranje 5336 (prije godinu dana 5266, prije dvije godine 5156, prije tri godine 5049) programa za Windows, dok još 4397 (prije godinu dana 4370, prije dvije godine 4312, prije tri godine 4227) programa dobro radi uz dodatna podešavanja i vanjske DLL-ove. Kod 3943 programa (prije godinu dana 3888, prije dvije godine 3813, prije tri godine 3703) uočeni su manji problemi u radu, koji ne ometaju korištenje osnovnih funkcija aplikacija.

Ključne novosti Wine 9.0:

  • Dodavanjem drajvera winewayland.drv, omogućeno je korištenje Wine-a u okruženjima temeljenim na Wayland protokolu bez korištenja XWayland-a i X11 komponenti. Razvoj je usmjeren na omogućavanje rada čistog Wayland okruženja s podrškom za pokretanje Windows aplikacija, ne zahtijevajući instalaciju paketa povezanih s X11, što omogućuje postizanje bolje izvedbe i odziva igara uklanjanjem suvišnih slojeva. Korištenje čistog Wayland okruženja za Wine također omogućuje izbjegavanje sigurnosnih problema svojstvenih X11 (na primjer, nepouzdane igre za X11 mogu prisluškivati druge aplikacije jer X11 protokol omogućuje pristup svim ulaznim događajima i može zamijeniti lažne pritiske tipki).

    Drajver je označen kao eksperimentalni i u razvoju, ali unatoč tome već ima podršku za mnoge funkcionalnosti, poput upravljanja prozorima, rada s više monitora, podrške za skaliranje prikaza na ekranima visoke gustoće piksela (high-DPI), praćenja pokreta miša s relativnim koordinatama i podrške za grafički API Vulkan. Prema zadanim postavkama, drajver nije aktivan, a kako bi se aktivirao, potrebno je dodati „wayland“ u registri ključ „HKCU\Software\Wine\Drivers“ i osigurati da varijabla okruženja DISPLAY nije postavljena: wine reg.exe add HKCU\\Software\\Wine\\Drivers /v Graphics /d x11,wayland

  • Završeno je prevođenje svih modula na sučelje sistemskih poziva NT, umjesto izravnih poziva između razina PE i Unix, što označava završetak višegodišnjeg rada na prevođenju svih DLL biblioteka za korištenje formata izvršnih datoteka PE (Portable Executable).
  • Nastavljeno je razvoj sloja WoW64 (64-bit Windows-on-Windows), koji omogućava pokretanje 32-bitnih Windows aplikacija u 64-bitnim Unix sistemima. U svim modulima koji se obraćaju Unix bibliotekama, koriste se pretvarači sistemskih poziva WoW64 (thunk), što omogućava 32-bitnim PE modulima pristup 64-bitnim Unix bibliotekama.

    Unaprijeđen je novi način pokretanja WoW64, u kojem se 32-bitni kod izvršava unutar 64-bitnog procesa (u starom WoW64 načinu, 32-bitne aplikacije su se pokretale u 32-bitnim Unix procesima). Dodana je podrška za korištenje novog WoW64 načina na macOS platformi. Budući da novi WoW64 način ima određene nedostatke, poput nedostatka podrške za 16-bitni način i smanjenja performansi OpenGL zbog nedostatka podrške za ARB_buffer_storage, još uvijek nije uključen prema zadanim postavkama i zahtijeva kompilaciju s opcijom „—enable-archs=i386,x86_64” u konfiguracijskom skriptu.

  • Dodana je mogućnost izvođenja postojećih izvršnih Windows datoteka na sustavima s ARM64 arhitekturom. Ostvarena je mogućnost kompilacije Winea za ABI ARM64EC (ARM64 Emulation Compatible) i podrška za učitavanje ARM64EC modula, što olakšava prenos aplikacija izvorno napisanih za x86_64 arhitekturu na ARM64 sustave, putem omogućavanja izvođenja u ARM64 okruženju pojedinih modula s x86_64 kodom pomoću emulatora. Dodana je podrška za ARM64X PE datotečni format, koji omogućava učitavanje jedne izvršne datoteke u x64/Arm64EC i ARM64 procesima. Ostvaren je sučelje za emulaciju 32-bitnih x86 sustava, ali biblioteka emulatora još nije uključena u osnovni sklop Winea (za pokretanje x86 koda u ARM64 okruženju može se koristiti vanjski emulator FEX).
  • Grafički podsustav
    • PostScript drajver je revidiran za podršku spool datotekama u Windows formatu, u kojima se čuvaju podaci o poslovima za ispis. Izuzeti su izravni pozivi drajveru iz Unix okruženja.
    • Teme WinRT su dodale podršku za tamni režim. U WineCfg je dodata opcija za uključivanje tamnog uređenja sučelja.
    • U drivere za grafički API Vulkan dodana je podrška za specifikaciju Vulkan 1.3.272 (u Wine 8.0 podržavana je 1.3.237).
    • Optimizirane su funkcije GdiPlus biblioteke, što je omogućilo povećanje performansi rada s grafikom.
  • Direct3D
    • Osigurano je zaustavljanje analize više-thread komandnog toka u uvjetima nedostatka obrađenih prikaznih naredbi, što omogućava smanjenje potrošnje energije na razinu jednokanalne obrade prilikom izvođenja programa koji ne koriste cijelu propusnost komandnog toka.
    • U Direct3D 10 implementirana je podrška za dodatne efekte.
    • U kod WineD3D i backend koji koristi grafički API Vulkan unijete su optimizacije performansi.
    • U kodu za prikaz temeljenu na API Vulkan dodana je provjera mogućnosti podržanih od strane uređaja i prikaz aplikaciji informacija o dostupnom nivou funkcionalnosti Direct3D.
    • Implementirane su funkcije D3DXFillTextureTX i D3DXFillCubeTextureTX.
    • U klasičnom backendu shadera OpenGL ARB dodana je podrška za definiranje sjena pomoću ARB_fragment_program_shadow proširenja.
    • U D3DXLoadMeshHierarchyFromX i slične funkcije dodana je podrška za učitavanje korisničkih podataka putem ID3DXLoadUserData sučelja.
  • Zvuk i video
    • Predložena je inicijalna implementacija API DirectMusic. Dodana je podrška za kolekcije, instrumente i uzorke zvukova u SoundFont formatu. Dodana je podrška za Doppler efekt. Implementirani su testovi za provjeru točnosti implementacije pri radu sekvencera dmime i MIDI sintizatora dmsynth.
    • Za korištenje u API-ju DirectMusic ugrađena je biblioteka FluidSynth.
    • Implementirana je podrška za učitavanje zvučnih fontova (SoundFont — formati za sintezu temeljem uzoraka, koji se koriste za reprodukciju MIDI datoteka) u DLS1, DLS2 pa i SF2 formatima koji se koriste u Linuxu.
    • Dodana je mogućnost reprodukcije MIDI sadržaja putem dmsynth biblioteke, koristeći softverski sintizator FluidSynth i API DirectSound za izlaz zvuka.
    • Dodana je dekoder za video u formatu Indeo IV50 video kodeka.
  • DirectShow
    • Implementirana je komponenta DMO (DirectX Media Object) s dekoderom za WMV (Windows Media Video) format.
    • Dodani su filteri za snimanje zvuka (DirectShow Audio Capture Filter).
    • U MPEG-1 stream splitter filtar (DirectShow MPEG-1 Stream Splitter) dodana je podrška za video tokove, pored zvučnih tokova i pomoćnih tokova.
    • Implementiran je filtar za dekodiranje videa u MPEG-1 formatu (DirectShow MPEG-1 Video Decoder).
  • Uređaji za ulaz
    • U DirectInput-u implementirana je podrška za mape akcija (action maps), koja omogućava povezivanje tipki na igraćem kontroleru s određenim radnjama u igrama.
  • Integracija s radnom površinom
    • Omogućeno je izvođenje veza u osnovno korisničko okruženje, što omogućava pokretanje aplikacija upravljanih Wine-om kao rukovatelja protokola prilikom otvaranja URL-a (na primjer, pokretanje spotify.exe prilikom otvaranja veza poput „spotify:user:spotify:playlist:848218482355482821“).
    • Implementirano je izdvajanje podataka EDID (Extended Display Identification Data) s informacijama o parametrima povezanog monitora, kao što su naziv i model uređaja.
    • Omogućeno je zatvaranje prozora radne površine prikazane u punom ekranu, korištenjem gumba «Exit desktop» u izborniku «Start».
  • Međunarodizacija
    • Povećana je podrška za IME (Input Method Editors). Održani su radovi na osiguranju kompatibilnosti s izvorim Windows-ovim realizacijama IME-a i poboljšanja integracije s Linux IME-om.
    • Osigurana je generacija Baze podataka lokalizacija u formatu locale.nls iz Baze podataka Unicode CLDR (Unicode Common Locale Data Repository) verzije 44. Dodana je podrška za dodatne lokalizacije bew-ID, blo-BJ, csw-CA, ie-EE, mic-CA, prg-PL, skr-PK, tyv-RU, vmw-MZ, xnr-IN i za-CN.
    • Obavljen je prijevod sučelja na gruzijski jezik. Osigurani su potpuni prijevodi za 16 jezika i djelomični za 31 jezik.
    • Tablice Unicode znakova ažurirane su na verziju standarda 15.1.0. Ažurirana je baza vremenskih zona.
  • Jezgro (Windows jezgreni interfesi)
    • Kao proizvedena verzija Windowsa po defaultu određena je Windows 10.
    • Za izvršne datoteke u PE formatu implementirana je podrška za randomizaciju adresnog prostora (ASLR), ali adrese učitavanja koda u memoriju još uvijek nisu potpuno randomizirane.
    • Implementirana je podrška za nisko fragmentiranu hrpu (LFH, Low Fragmentation Heap), što je omogućilo povećanje performansi operacija alokacije memorije.
    • U mehanizam alokacije virtualne memorije dodana je podrška za rezervaciju memorije (placeholder), koja omogućava aplikaciji da rezervira određeni prostor virtualne memorije za buduću upotrebu.
    • 64-bitni učitavači (loader i preloader) izvršnih datoteka i biblioteka sastavljeni su u PIE formatu (Position-Independent Executables) kako bi se oslobodio dio 32-bitnog adresnog prostora.
    • Osigurana je ispravna obrada steka (stack unwinding) za NT sistemske pozive i korisničke povratne pozive.
  • Mrežne mogućnosti
    • U MSHTML motoru implementirana je podrška za mehanizam sakupljanja smeća „Cycle Collection”.
    • MSHTML je dodao podršku za sinkroni način obrade XMLHttpRequest zahtjeva.
    • U jscript.dll dodat je predmet WeakMap za rad s kolekcijom parova ključ/vrijednost, gdje je ključ objekt kojem se može dodati proizvoljna vrijednost. Implementirane su metode WeakMap.get(), WeakMap.delete(), WeakMap.clear() i WeakMap.has().
    • Web preglednik Gecko ažuriran je na verziju 2.47.4.
    • Implementirana je podrška za obavijesti o promjenama stanja mrežnog sučelja.
  • Kriptografija i sigurnost
    • U biblioteci Winscard.dll dodana je podrška za pametne kartice, implementirana putem sistemske biblioteke PCSClite.
    • U BCrypt dodana je podrška za protokol razmjene ključeva Diffie-Hellman.
    • Implementiran je paket Negotiate, koji pruža sloj za korištenje SSPI (Security Support Provider Interface) za pristup SSP-ovima (Security Support Provider).
  • Ugrađene aplikacije
    • U alatu Wine Debugger (winedbg) za dezintegraciju mašinskih instrukcija X86 korištena je biblioteka Zydis.
    • U sučelju WineCfg dodana je mogućnost postavljanja starijih verzija Windowsa (do XP) na 64-bitnim platformama, što omogućuje pokretanje zastarjelih aplikacija korištenjem WoW64 moda.
    • U svim ugrađenim grafičkim aplikacijama implementirano je ispisivanje informacija o greškama u zasebnom dijalogu, umjesto da se prikazuju u konzoli.
    • U programu systeminfo omogućeno je prikazivanje podataka iz WMI (Windows Management Instrumentation) baze podataka.
    • Dodana je aplikacija klist za ispis Kerberos karata.
    • U aplikaciji taskkill implementirana je mogućnost prisilnog završavanja podređenih procesa.
    • U alatu start dodat je parametar "/machine" za odabir arhitekture koja se koristi prilikom pokretanja hibridnih izvršnih datoteka koje podržavaju x86 i ARM.
    • Implementirana je veća partija funkcionalnosti programa tasklist.
    • Dodana je osnovna implementacija aplikacije findstr.
  • Alati za razvoj
    • U alatu WineDump implementirana je mogućnost ispisa sadržaja Windows registra (REGF format), kao i prikaza podataka za sve arhitekture (x86/ARM64) podržane u hibridnim PE datotekama.
    • U IDL prevoditelju dodana je podrška za atribute "composable", "default_overload", "deprecated" i "protected".
    • Biblioteka libwine.so je uklonjena, jer je proglašena zastarjelom u izdanju Wine 6.0 i dugo se nije koristila u Wineu. Programi u ELF formatu, sastavljeni u starijim verzijama Wine (5.0 i starijim) s libwine.so, zahtijevaju ponovnu gradnju za izvođenje u Wine 9.0.
  • Ugrađene biblioteke i vanjske zavisnosti
    • Integrirane su biblioteke FluidSynth 2.3.3, Musl 1.2.3 (samo matematičke funkcije) i Zydis 4.0.0.
    • Ažurirane su komponente 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, LibXslt 1.1.38 i Zlib 1.3. Engine Wine Mono s implementacijom platforme .NET ažuriran je na verziju 8.1.0.
    • U upravljaču winewayland.drv kao vanjske zavisnosti korištena je klijent biblioteka Wayland, kao i biblioteke xkbcommon i xkbregistry.
    • Za podršku pametnim karticama korištena je vanjska biblioteka PCSClite (na macOS-u — PCSC).
    • Za izgradnju PE-datoteka na platformama koje nisu i386, sada je potrebna prisutnost cross-kompilatora s podrškom za direktive "seh" za obradu iznimaka.

Izvor: opennet.ru

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster