Stabilna različica Wine 5.0

Po letu razvoja in 28 eksperimentalnih različic predstavljen stabilna izdaja odprte različice Win32 API — Wine 5.0, ki je vključevala več kot 7400 sprememb. Med ključnimi dosežki nove različice izstopa dobava vgrajenih modulov Wine v formatu PE, podpora za večmonitorne nastavitve, nova prenova zvočnega API XAudio2 in podpora za grafični API Vulkan 1.1.

V Wine je potrjena ima zdaj polno delovanje 4869 (pred enim letom 4737) programov za Windows, dodatnih 4136 (pred enim letom 4045) programov deluje odlično ob dodatnih nastavitvah in zunanjih DLL-jih. Pri 3635 programih opazimo manjše težave pri delu, ki ne ovira uporabe osnovnih funkcij aplikacij.

Ključne novosti Wine 5.0:

  • Moduli v formatu PE
    • Ob prisotnosti prevajalnika MinGW se zdaj večina modulov Wine sestavlja v formatu izvršljivih datotek PE (Portable Executable, uporablja se v Windows) namesto ELF. Uporaba PE rešuje težave s podporo različnim zaščitnim mehanizmom proti kopiranju, ki preverjajo identiteto sistemskih modulov na disku in v pomnilniku;
    • Izvršljive datoteke PE se zdaj kopirajo v imenik ~/.wine ($WINEPREFIX) namesto da bi uporabljali lažne DLL-datoteke, kar napravo bolj približa realnim namestitvam Windows, ob ceni dodatnega prostora na disku;
    • Moduli, pretvorjeni v format PE, lahko uporabljajo standardne wchar C-funkcije in konstante z unikatnimi znaki (na primer, L"abc");
    • V Wine C runtime je bila dodana podpora za povezovanje z binarnimi datotekami, zgrajenimi v MinGW, ki se pri sestavljanju DLL privzeto uporablja namesto MinGW runtime;
  • Grafični sistem
    • Dodana je bila podpora za delovanje z več monitorji in grafičnimi adapterji, vključno z možnostjo dinamične spremembe nastavitev;
    • Posodobljen je bil gonilnik za grafični API Vulkan, ki je usklajen s specifikacijo Vulkan 1.1.126;
    • V knjižnici WindowsCodecs je bila implementirana možnost pretvorbe dodatnih rastrskih formatov, vključno s formati z indekserano paleto;
  • Direct3D
    • Pri izvajanju aplikacij v celozaslonskem načinu je bila zagotovljena blokada klica varnostnega skrbnika;
    • V DXGI (DirectX Graphics Infrastructure) je bila dodana podpora za obveščanje aplikacije o minimizaciji njenega okna, kar omogoča aplikaciji, da zmanjša izvajanje virov ob zmanjšanju okna;
    • Za aplikacije, ki uporabljajo DXGI, je bila uvedena možnost preklapljanja med celozaslonskim in okenjskim načinom s kombinacijo Alt+Enter;
    • Razširjene so možnosti izvajanja Direct3D 12, na primer, dodana je podpora za preklapljanje med celozaslonskim in okenjskim načinom, spremembo načinov zaslona, izhodom s skaliranjem in upravljanjem intervala izmenjave okvirjev (swap interval);
    • Izboljšano je obravnavanje različnih robnih situacij, kot so uporaba izhodnih vrednosti, ki presegajo dovoljene razpone za teste prosojnosti in globine, izris z odraženimi teksturami in buferji, uporaba neveljavnih predmetov DirectDraw. clipper, ustvarjanje naprav Direct3 za neveljavna okna, uporaba vidnih območij, katerih minimumi imajo enake maksimume itd.
    • V Direct3D 8 in 9 je natančneje slediti "nečistim" območjem nalaganih tekstur;
    • Zmanjšana je velikost potrebnega naslovnega prostora pri nalaganju 3D-tekstur, sklanjanih s metodo S3TC (namesto da bi se nalagale v celoti, se teksture nalagajo po delih).
    • Uveden je vmesnik ID3D11Multithread za zaščito kritičnih sekcij v večnitenjskih aplikacijah;
    • Za stare aplikacije DirectDraw so bile uvedene različne izboljšave in popravki, povezani z izračunavanjem osvetlitve;
    • Uvedeni so dodatni klici za pridobitev informacij o senčnikih v API-ju ShaderReflection;
    • V wined3d je bila dodana podpora CPU-based blitterju za obdelavo stisnjenih virov;
    • Razširjena je baza podatkov grafičnih kartic, prepoznanih v Direct3D;
    • Dodani so novi registrski ključi HKEY_CURRENT_USER\Software\Wine\Direct3D: "shader_backend" (baze za delo s senčniki: "glsl" za GLSL, "arb" za ARB vertex/fragment in "none" za izklop podpore senčnikom), "strict_shader_math" (0x1 — omogoči, 0x0 — izklopi pretvorbo senčnikov Direct3D). Ključ "UseGLSL" je razglašen za zastarelega (uporabiti je treba "shader_backend");
  • D3DX
    • Uvedena je podpora za mehanizem stiskanja 3D-tekstur S3TC (S3 Texture Compression);
    • Dodane so pravilne implementacije takšnih operacij, kot sta polnjenje s teksturo in neodsevne (unmappable) površine;
    • Vnesene so različne izboljšave in popravki v okviru ustvarjanja vizualnih učinkov;
  • Jezgro (interfejsi jezgra Windows-a)
    • Večina funkcij, ki se uporabljajo v Kernel32, je bila prenesena v
      KernelBase, v skladu s spremembami v arhitekturi Windows;
    • Možnost mešanja 32- in 64-bitnih DLL-jev v imenikih, ki se uporabljajo za nalaganje. Zagotovljeno je ignoriranje knjižnic, ki ne ustrezajo trenutni bitni širini (32/64), za primer, če se na poti najde ustrezna knjižnica za trenutno bitno širino;
    • Za gonilnike naprav je izboljšana emulacija jedrskih objektov;
    • Izvedeni so jedrski objekti za sinhronizacijo, kot so spin zaklepi, hitri mutexi in spremenljivke, povezane z virom;
    • Zagotovljeno je pravilno obveščanje aplikacij o stanju baterije;
  • Uporabniški vmesnik in integracija s namizjem
    • Minimizirana okna se zdaj prikazujejo z uporabo naslovne vrstice, ne pa ikone v slogu Windows 3.1;
    • Dodani so novi slogi gumbov SplitButton (gumb z razpoložljivim seznamom dejanj) in Command Links (povezave v pogovornih oknih, ki se uporabljajo za prehod na naslednjo stopnjo);
    • Za mape 'Downloads' in 'Templates' so ustvarjene simbolne povezave, ki kažejo na ustrezne imenike v Unix sistemih;
  • Ulazni uređaji
    • Ob zagonu je zagotovljena namestitev in nalaganje potrebnih gonilnikov naprav Plug & Play;
    • Izboljšana podpora za igralne krmilnike, vključno z mini-joystickom (hat switch), volanom, pedalom za plin in zavora.
    • Podpora za staro Linux API interakcijo z joysticki, ki se je uporabljala v jedrih Linuxa do različice 2.2, je bila ukinjena;
  • .NET
    • Mono motor je posodobljen na različico 4.9.4 in zdaj vključuje dele ogrodja Windows Presentation Foundation (WPF);
    • Dodana je možnost namestitve dodatkov z Mono in Gecko v eno skupno mapo s postavitvijo datotek v hierarhiji /usr/share/wine namesto kopiranja v nove prefiksne mape;
  • Mrežne mogućnosti
    • Brskalni motor Wine Gecko, ki se uporablja v knjižnici MSHTML, je posodobljen na različico 2.47.1. Izvedena je podpora za nove HTML API;
    • V MSHTML je bila podpora za SVG elemente;
    • Dodane so številne nove funkcije VBScript (na primer, obdelovalci napak in izjem, funkcije Hour, Day, Month, String, LBound, RegExp.Replace, RScriptTypeInfo_* in ScriptTypeComp_Bind* itn.);
    • Obezbeđena je trajnost skripti kod VBScript i JScript (persistence script);
    • Dodana je začetna izvedba HTTP storitev (WinHTTP) in povezanega API (HTTPAPI) za odjemalske in strežniške aplikacije, ki pošiljajo in sprejemajo zahteve preko protokola HTTP;
    • Uvedena je možnost pridobivanja nastavitev HTTP proxy-ja preko DHCP;
    • Dodana je podpora za preusmerjanje zahtevkov za avtentikacijo preko storitve Microsoft Passport;
  • Kryptografija
    • Podprta je uporaba kriptografskih ključev na osnovi eliptičnih krivulj (ECC) z GnuTLS;
    • Dodana je možnost uvoza ključev in certifikatov iz datotek v formatu PFX;
    • Podprta je shema generiranja ključev na osnovi gesla PBKDF2;
  • Tekst i fontovi
    • V implementaciji API DirectWrite je dodana podpora za OpenType funkcije, povezane z pozicioniranjem glifov, ki so privzeto vključene za pisavo Latin, vključno s kerningom;
    • Izboljšana je varnost obdelave pisav z verificiranjem pravilnosti različnih tabel podatkov pred njihovo uporabo;
    • Vmesniki DirectWrite so usklajeni z novim SDK;
  • Zvuk i video
    • Predlagana je nova implementacija avdio API-ja XAudio2, zgrajena na osnovi projekta FAudio. Uporaba FAudio v Wine omogoča dosego višje kakovosti zvoka v igrah in uporabo možnosti, kot so mešanje glasnosti in razširjeni zvočni učinki;
    • Dodano je veliko novih klicev v implementacijo ogrodja Media Foundation, vključno s podporo za vgrajene in uporabniške asinhrone vrste, Source Reader API, Media Session itd.
    • Filter za zajem videa je prešel na uporabni API v4l2 namesto v4l1 API, kar je omogočilo širšo podporo za kamere;
    • Odstranjeni so vgrajeni dekoderji AVI, MPEG-I in WAVE, namesto katerih se zdaj uporabljajo sistemski GStreamer ali QuickTime;
    • Dodano je podmnožje konfiguracijskih API-jev VMR7;
    • V zvočne gonilnike je dodana podpora za nastavitev glasnosti posameznih kanalov;
  • Mednarodna podpora
    • Unicode tabele so posodobljene na različico 12.1.0;
    • Podprta je normalizacija Unicode;
    • Zagotovljena je samodejna nastavitev geografske regije (HKEY_CURRENT_USER\Control Panel\International\Geo) na podlagi trenutne lokalizacije;
  • RPC\/COM
    • V typelib je dodana podpora za kompleksne strukture in tabele;
    • Dodana je začetna implementacija runtime knjižnice Windows Script;
    • Dodana je začetna implementacija knjižnice ADO (Microsoft ActiveX Data Objects);
  • Namestitveni programi
    • Za namestitveni program MSI je podprta dostava popravkov (Patch Files);
    • V orodju WUSA (Windows Update Standalone Installer) je omogočena namestitev posodobitev v formatu .MSU;
  • Platforma ARM
    • Za arhitekturo ARM64 je v ntdll dodana podpora za razvejavanje skladov (stack unwinding). Dodana je podpora za povezovanje zunanjih knjižnic libunwind;
    • Za arhitekturo ARM64 je podprta implementacija brezšivnih proxyjev (stubless proxies) za vmesnike objektov;
  • Orodja za razvoj / Winelib
    • Dodana možnost uporabe razhajevalnika iz Visual Studio za oddaljeno razhajevanje aplikacij, zagnanih v Wine;
    • Delno je implementirana knjižnica DBGENG (Debug Engine);
    • Zbrani izvršljivi datoteki za Windows zdaj niso odvisni od libwine, kar dopušča, da jih zagnate v Windows brez dodatnih odvisnosti;
    • V Resource Compiler in IDL Compiler je dodana možnost ‘—sysroot’ za določanje poti do mest razporeditve glavi;
    • V winegcc so dodane možnosti ‘—target’, ‘—wine-objdir’,
      ‘—winebuild’ in ‘-fuse-ld’, ki poenostavljajo nastavitev okolja za križno prevajanje;
  • Vgrajene aplikacije
    • Implementirana je orodje CHCP za nastavitev kodiranja konzole;
    • Implementirana je orodje MSIDB za manipulacijo z bazami v formatu MSI;
  • Optimizacija zmogljivosti
    • Različne funkcije dela s časom so bile prenesene na uporabo visoko zmogljivih sistemskih funkcij za delo s časovnikom, kar je zmanjšalo stroške v zanki risanja mnogih iger;
    • Dodana je možnost uporabe v FS Ext4 način dela brez upoštevanja velike začetnice;
    • Izvedena je optimizacija zmogljivosti pri obdelavi velikega števila elementov v dialogih za izhodne sezname, ki delujejo v načinu LBS_NODATA;
    • Dodana je hitrejša implementacija SRW-zaklepov (Slim Reader/Writer) za Linux, prenesena na Futex;
  • Zunanje odvisnosti
    • Za zbiranje modulov v PE formatu je uporabljen križni prevajalnik MinGW-w64;
    • Implementacija XAudio2 zahteva knjižnico FAudio;
    • Za sledenje spremembam datotek na sistemih BSD
      je uporabljena knjižnica Inotify;
    • Za obdelavo izjem na platformi ARM64 je potrebna knjižnica Unwind;
    • Namesto Video4Linux1 zdaj zahteva knjižnico Video4Linux2.

Izvor: opennet.ru

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster