Stabilno izdanje Wine 9.0

Nakon godinu dana razvoja i 26 eksperimentalnih verzija, predstavljeno je stabilno izdanje otvorene implementacije Win32 API-ja - Wine 9.0, koje je uključilo više od 7000 izmjena. Ključna dostignuća u novoj verziji uključuju implementaciju WoW64 arhitekture 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.

Potvrđeno je da 5336 (5266 prije godinu dana, 5156 prije dvije godine, 5049 prije tri godine) programa ispravno rade u Wineu. WindowsDodatnih 4397 programa (4370 prije godinu dana, 4312 prije dvije godine, 4227 prije tri godine) radi dobro s dodatnim postavkama i vanjskim DLL-ovima. 3943 programa (3888 prije godinu dana, 3813 prije dvije godine, 3703 prije tri godine) imaju manje probleme koji ne ometaju osnovnu funkcionalnost aplikacija.

Ključne inovacije u Wine 9.0:

  • Dodan je drajver winewayland.drv, koji omogućava korištenje Wine-a u Wayland okruženjima bez upotrebe XWayland ili X11 komponenti. Cilj ovog razvoja je pružiti čisto Wayland okruženje s podrškom za pokretanje. Windows- aplikacije koje ne zahtijevaju instaliranje paketa povezanih s X11, što omogućava veće performanse i responzivnost u igrama eliminiranjem nepotrebnih slojeva. Korištenje čistog Wayland okruženja za Wine također eliminira sigurnosne probleme svojstvene X11 (na primjer, nepouzdane X11 igre mogu špijunirati druge aplikacije jer X11 protokol omogućava pristup svim ulaznim događajima i vrši zamjenu pritisaka tipki).

    Drajver je označen kao eksperimentalan i u razvoju, ali, ipak, već ima podršku za mnoge funkcije, kao što su upravljanje prozorima, rad sa više monitora, podrška za skaliranje izlaza na ekranima visoke gustine piksela (visoki DPI), rad sa relativne koordinate prilikom praćenja kretanja miša i podršku za Vulkan grafički API. Podrazumevano, drajver nije aktivan i da biste ga omogućili, trebalo bi da dodate „wayland” u parametar registra „HKCU\Software\Wine\Drivers” i uverite se da varijabla okruženja DISPLAY nije podešena: wine reg.exe dodajte HKCU\ \Software\\Wine\\Drivers /v Graphics /d x11,wayland

  • Svi moduli su konvertovani u NT interfejs sistemskog poziva, umesto direktnih poziva između PE i Unix slojeva, označavajući završetak dugogodišnjeg rada na pretvaranju svih DLL-ova da koriste PE (Portable Executable) format izvršne datoteke.
  • Razvoj WoW64 sloja (64-bitni) je nastavljen Windows-na-Windows), što vam omogućava pokretanje 32-bitnih Windows- aplikacije na 64-bitnim Unix sistemima. Svi moduli koji pristupaju Unix bibliotekama koriste WoW64 prevodioce sistemskih poziva (thunks), što omogućava 32-bitnim modulima u PE formatu pristup 64-bitnim Unix bibliotekama.

    Novi WoW64 način pokretanja je poboljšan, omogućavajući pokretanje 32-bitnog koda unutar 64-bitnog procesa (u starom WoW64 načinu rada, 32-bitne aplikacije su se pokretale u 32-bitnim Unix procesima). Dodana je podrška za korištenje novog WoW64 načina rada na platformi. macOSBudući da novi WoW64 mod ima neke manje greške, kao što su nedostatak 16-bitne podrške i smanjene OpenGL performanse zbog nedostatka podrške za ARB_buffer_storage ekstenziju, još uvijek nije omogućen po defaultu i zahtijeva izgradnju s opcijom "--enable-archs=i386,x86_64" u skripti za konfiguraciju.

  • Dodata je mogućnost izvršavanja postojećih izvršnih datoteka Windows Na sistemima sa ARM64 arhitekturom. Wine se sada može izgraditi za ARM64EC (ARM64 Emulation Compatible) ABI, a mogu se učitati i ARM64EC moduli. Ovi moduli se koriste za pojednostavljenje prenošenja aplikacija prvobitno napisanih za x86_64 arhitekturu na ARM64 sisteme omogućavajući izvršavanje pojedinačnih x86_64 kodnih modula u ARM64 okruženju pomoću emulatora. Dodana je podrška za ARM64X PE format datoteke, koji omogućava učitavanje jedne izvršne datoteke i u x64/Arm64EC i u ARM64 procesima. Implementiran je interfejs za emulaciju 32-bitnih x86 sistema, ali biblioteka emulatora još nije uključena u glavnu Wine distribuciju (eksterni FEX emulator se može koristiti za pokretanje x86 koda u ARM64 okruženju).
  • Grafički podsistem
    • PostScript drajver je redizajniran kako bi podržavao spool datoteke u formatu Windows, koji pohranjuju podatke o zadacima ispisa. Direktni pozivi upravljačkog programa iz Unix okruženja su isključeni.
    • Podrška za tamni način rada je dodana WinRT temama. Postavka je dodana u WineCfg kako bi se omogućio tamni dizajn interfejsa.
    • Drajver za Vulkan grafički API je dodao podršku za specifikaciju Vulkan 1.3.272 (8.0 je podržan u Wine 1.3.237).
    • Funkcije GdiPlus biblioteke su optimizovane, omogućavajući povećane grafičke performanse.
  • Direct3D
    • Parsiranje višenitnog toka komandi je suspendovano kada nema obrađenih komandi za renderovanje, što omogućava smanjenje potrošnje energije na nivo jednonitne obrade kada se izvršavaju programi koji ne zauzimaju čitav propusni opseg komandnog toka.
    • Direct3D 10 uključuje podršku za dodatne efekte.
    • Napravio optimizacije performansi za WineD3D kod i pozadinu koristeći Vulkan grafički API.
    • Kod za renderiranje baziran na Vulkan API-ju sada provjerava koje mogućnosti uređaj podržava i govori aplikaciji koji nivo Direct3D funkcionalnosti je dostupan.
    • Implementirane su funkcije D3DXFillTextureTX i D3DXFillCubeTextureTX.
    • Klasični OpenGL ARB shader backend je dodao podršku za definiranje sjenki pomoću ekstenzije ARB_fragment_program_shadow.
    • D3DXLoadMeshHierarchyFromX i slične funkcije su dodale podršku za učitavanje korisničkih podataka pomoću sučelja ID3DXLoadUserData.
  • Zvuk i video
    • Predložena je početna implementacija DirectMusic API-ja. Dodata podrška za kolekcije, instrumente i uzorke zvuka u SoundFont formatu. Dodata podrška za Doplerov efekat. Sprovedeni su testovi kako bi se potvrdila ispravna implementacija prilikom rada sa dmime sekvencerom i dmsynth MIDI sintisajzerom.
    • FluidSynth biblioteka je ugrađena u DirectMusic API za upotrebu.
    • Implementirana je podrška za učitavanje zvučnih fontova (SoundFont - formati za sintezu na bazi uzoraka koji se koriste za reprodukciju MIDI datoteka) u DLS1 i DLS2 formatima, kao i u SF2 formatu koji se koristi u Linux.
    • Dodata je mogućnost reprodukcije MIDI sadržaja koristeći dmsynth biblioteku, koristeći softverski sintisajzer FluidSynth i DirectSound API za audio izlaz.
    • Dodan dekoder za video u formatu video kodeka Indeo IV50.
  • Directshow
    • Implementirana je DMO (DirectX Media Object) komponenta s dekoderom WMV formata (Windows Medijski video).
    • Dodan filter za snimanje zvuka (DirectShow Audio Capture Filter).
    • Pored audio tokova, MPEG‑1 Stream Splitter (DirectShow MPEG‑1 Stream Splitter) sada podržava video tokove i tokove usluga.
    • Implementiran je filter za dekodiranje videa u MPEG‑1 formatu (DirectShow MPEG‑1 Video Decoder).
  • Uređaji za unos
    • DirectInput podržava mapiranje akcija, koje vam omogućava da povežete dugmad na kontroleru igre za određene radnje u igricama.
  • Integracija sa desktopom
    • Vezivanja su izvezena u glavno korisničko okruženje, omogućavajući aplikacijama koje se pokreću pod Wine-om da budu pozvane kao rukovaoci protokola prilikom otvaranja URL-a (na primjer, pokretanje spotify.exe prilikom otvaranja veza poput “spotify:user:spotify:playlist:848218482355482821”).
    • Implementirano izdvajanje EDID (Extended Display Identification Data) podataka sa informacijama o parametrima povezanog monitora, kao što su naziv i model uređaja.
    • Moguće je zatvoriti prozor radne površine postavljen u režimu celog ekrana pomoću dugmeta „Izlaz sa radne površine“ u meniju „Start“.
  • Internacionalizacija
    • Proširena je podrška za IME-ove (Input Method Editore). Obavljen je rad na osiguravanju kompatibilnosti s izvornim Windows Implementacije IME-a i poboljšana integracija sa Linux NAME
    • Generiranje baza podataka lokalizacije u formatu locale.nls iz baze podataka Unicode CLDR (Unicode Common Locale Data Repository) verzije 44 je osigurano za dodatne lokalizacije bew-ID, blo-BJ, csw-CA, tj.-EE, mic-CA. , dodan je prg-PL, skr-PK, tyv-RU, vmw-MZ, xnr-IN i za-CN.
    • Interfejs je preveden na gruzijski. Potpuni prijevodi su obezbjeđeni za 16 jezika, a djelomični za 31 jezik.
    • Tabele Unicode znakova su ažurirane na standardnu ​​verziju 15.1.0. Baza podataka vremenske zone je ažurirana.
  • Jezgro (jezgreni interfejsi Windows)
    • Kao izdata verzija Windows definirano po zadanim postavkama Windows 10.
    • Za izvršne datoteke u PE formatu implementirana je podrška za randomizaciju adresnog prostora (ASLR), ali adrese za učitavanje koda u memoriju još nisu potpuno randomizirane.
    • Implementirana je podrška za slabo fragmentiranu hrpu (LFH, Low Fragmentation Heap), što je povećalo performanse operacija dodjele memorije.
    • Podrška za rezervisanje memorije (placeholder) dodata je mehanizmu za dodelu virtuelne memorije, omogućavajući aplikaciji da rezerviše određeno područje virtuelne memorije za buduću upotrebu.
    • 64-bitni učitavači (učitavač i predučitavač) izvršnih datoteka i biblioteka kompajlirani su u PIE (Position-Independent Executables) formatu kako bi se oslobodio dio 32-bitnog adresnog prostora.
    • Ispravno odmotavanje steka je omogućeno za NT sistemske pozive i povratne pozive korisnika.
  • Značajke umrežavanja
    • MSHTML mehanizam podržava mehanizam prikupljanja smeća “Cycle Collection”.
    • MSHTML je dodao podršku za sinhronu obradu XMLHttpRequest zahtjeva.
    • jscript.dll dodaje podršku za WeakMap objekt za rad sa kolekcijom parova ključ/vrijednost u kojoj je ključ objekat koji može imati proizvoljnu vrijednost pridruženu njemu. Implementirane metode WeakMap.get(), WeakMap.delete(), WeakMap.clear() i WeakMap.has().
    • Gecko pretraživač je ažuriran na verziju 2.47.4.
    • Implementirana je podrška za obavještenja o promjenama stanja mrežnog interfejsa.
  • Kriptografija i sigurnost
    • Podrška za pametne kartice dodata je biblioteci Winscard.dll, implementiranoj preko PCSClite sistemske biblioteke.
    • BCrypt je dodao podršku za Diffie-Hellman protokol za razmjenu ključeva.
    • Implementiran je paket Negotiate, koji pruža sloj za korištenje SSPI (Interfejs dobavljača sigurnosne podrške) sučelja za pristup SSP (Dobavljač sigurnosne podrške) provajderima.
  • Ugrađene aplikacije
    • Wine Debugger (winedbg) koristi Zydis biblioteku za rastavljanje X86 mašinskih instrukcija.
    • WineCfg interfejs je ažuriran kako bi podržavao starije verzije na 64-bitnim platformama. Windows (prije XP-a), koji vam omogućava pokretanje starijih aplikacija koristeći WoW64 mod.
    • Sve ugrađene grafičke aplikacije sada prikazuju informacije o greškama u zasebnom dijalogu, umjesto da ih prikazuju u konzoli.
    • Program systeminfo omogućava prikaz informacija iz WMI baze podataka (Windows Instrumentacija upravljanja).
    • Dodata klist aplikacija za prikaz Kerberos tiketa.
    • Aplikacija taskkill implementira mogućnost prisilnog prekida podređenih procesa.
    • Dodata opcija "/machine" u pomoćni program za pokretanje za odabir arhitekture koja se koristi pri pokretanju hibridnih izvršnih datoteka koje podržavaju x86 i ARM.
    • Većina funkcionalnosti programa liste zadataka je implementirana.
    • Dodata osnovna implementacija findstr aplikacije.
  • Razvojni alati
    • Uslužni program WineDump ima mogućnost prikaza sadržaja datoteka registra. Windows (REGF format), kao i prikazivanje podataka za sve arhitekture (x86/ARM64) podržane u hibridnim PE datotekama.
    • IDL kompajler je dodao podršku za atribute "composable", "default_overload", "deprecated" i "protected".
    • Uklonjen je libwine.so, koji je zastario u Wine 6.0 i dugo se više ne koristi u Wineu. Programi u ELF formatu ugrađeni u starije verzije Wine-a (5.0 i starije) sa libwine.so zahtijevaju ponovnu izgradnju da bi se pokrenuli u Wine-u 9.0.
  • Ugrađene biblioteke i eksterne zavisnosti
    • Biblioteke FluidSynth 2.3.3, Musl 1.2.3 (samo matematičke funkcije) i Zydis 4.0.0 su integrisane u paket.
    • 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 nove verzije. Wine Mono engine sa implementacijom .NET platforme je ažuriran u izdanje 2.11.5.
    • Drajver winewayland.drv koristi klijentsku biblioteku Wayland kao eksterne zavisnosti, kao i biblioteke xkbcommon i xkbregistry.
    • Za podršku pametnim karticama koristi se eksterna PCSClite biblioteka (u macOS — PCSC).
    • Izgradnja PE datoteka na platformama koje nisu i386 sada zahtijeva unakrsni kompajler s podrškom za ".seh" direktive za rukovanje izuzecima.

izvor: opennet.ru

Kupite pouzdan hosting za sajtove sa DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan web hosting sa DDoS zaštitom, VPS VDS servere | ProHoster