Stabilna izdaja Wine 5.0

Po letu razvoja in 28 poskusnih različicah predstavljeno stabilna izdaja odprte implementacije API-ja Win32 - Vino 5.0, ki je vključeval več kot 7400 sprememb. Ključni dosežki nove različice vključujejo dostavo vgrajenih modulov Wine v formatu PE, podporo za konfiguracije z več monitorji, novo implementacijo zvočnega API-ja XAudio2 in podporo za grafični API Vulkan 1.1.

V Vinu potrjeno polno delovanje 4869 (pred enim letom 4737) programov za Windows, drugih 4136 (pred enim letom 4045) programov deluje odlično z dodatnimi nastavitvami in zunanjimi DLL-ji. 3635 programov ima manjše težave z delovanjem, ki ne motijo ​​uporabe osnovnih aplikacijskih funkcij.

Ključ inovacije Vino 5.0:

  • Moduli v formatu PE
    • S prevajalnikom MinGW je večina modulov Wine zdaj zgrajena v formatu izvedljive datoteke PE (Portable Executable, ki se uporablja v sistemu Windows) namesto v ELF. Uporaba PE rešuje težave s podporo različnim shemam za zaščito pred kopiranjem, ki preverjajo identiteto sistemskih modulov na disku in v pomnilniku;
    • Izvršljive datoteke PE so zdaj kopirane v imenik ~/.wine ($WINEPREFIX) namesto uporabe navideznih datotek DLL, zaradi česar so stvari bolj podobne pravim namestitvam sistema Windows, za ceno porabe dodatnega prostora na disku;
    • Moduli, pretvorjeni v format PE, lahko uporabljajo standard wchar C funkcije in konstante z Unicode (na primer L"abc");
    • Izvajalno okolje Wine C je dodalo podporo za povezovanje z binarnimi datotekami, zgrajenimi v MinGW, ki se privzeto uporablja namesto izvajalnega okolja MinGW pri gradnji DLL-jev;
  • Grafični podsistem
    • Dodana podpora za delo z več monitorji in grafičnimi adapterji, vključno z možnostjo dinamičnega spreminjanja nastavitev;
    • Gonilnik za grafični API Vulkan je bil posodobljen v skladu s specifikacijo Vulkan 1.1.126;
    • Knjižnica WindowsCodecs omogoča pretvorbo dodatnih rastrskih formatov, vključno s formati z indeksirano paleto;
  • Direct3D
    • Pri izvajanju celozaslonskih aplikacij Direct3D je klic ohranjevalnika zaslona blokiran;
    • DXGI (DirectX Graphics Infrastructure) je dodal podporo za obveščanje aplikacije, ko je njeno okno minimizirano, kar aplikaciji omogoča, da zmanjša zmogljivost operacij, ki zahtevajo veliko virov, ko minimizira okno;
    • Za aplikacije, ki uporabljajo DXGI, je zdaj mogoče preklapljati med celozaslonskim in okenskim načinom s kombinacijo Alt+Enter;
    • Zmogljivosti implementacije Direct3D 12 so bile razširjene, na primer zdaj obstaja podpora za preklapljanje med celozaslonskim in okenskim načinom, spreminjanje zaslonskih načinov, skaliranje izhoda in upravljanje intervala zamenjave medpomnilnika upodabljanja (interval zamenjave);
    • Izboljšano ravnanje z različnimi mejnimi situacijami, kot je uporaba vhodnih vrednosti zunaj razpona za teste preglednosti in globine, upodabljanje z odsevanimi teksturami in medpomnilniki ter uporaba nepravilnih objektov DirectDraw striženje, ustvarjanje naprav Direct3 za nepravilna okna, uporaba vidnih območij, katerih najmanjše vrednosti parametrov so enake največjim itd.
    • Direct3D 8 in 9 zagotavljata natančnejše sledenje "umazan» območja naloženih tekstur;
    • Velikost zahtevanega naslovnega prostora pri nalaganju 3D tekstur, stisnjenih z metodo S3TC, je bila zmanjšana (namesto nalaganja v celoti se teksture nalagajo v kosih).
    • Vmesnik implementiran ID3D11Večnit za zaščito kritičnih odsekov v večnitnih aplikacijah;
    • Za starejše aplikacije DirectDraw so bile narejene različne izboljšave in popravki, povezani z izračuni osvetlitve;
    • Implementirani dodatni klici za pridobivanje informacij o senčilih v API-ju ShaderReflection;
    • wined3d zdaj podpira blitter Temelji na procesorju za obdelavo stisnjenih virov;
    • Baza grafičnih kartic, prepoznanih v Direct3D, je bila razširjena;
    • Dodani novi registrski ključi HKEY_CURRENT_USER\Software\Wine\Direct3D: »shader_backend« (zaledje za delo s shaderji: »glsl« za GLSL, »arb« za točko/fragment ARB in »none« za onemogočanje podpore za shaderje), »strict_shader_math« ( 0x1 - omogoči, 0x0 - onemogoči pretvorbo senčil Direct3D). Opuščen ključ »UseGLSL« (uporabljati bi moral »shader_backend«);
  • D3DX
    • Izvedena je bila podpora za mehanizem stiskanja 3D tekstur S3TC (S3 Texture Compression);
    • Dodane pravilne izvedbe operacij, kot so polnjenje s teksturo in površine, ki jih ni mogoče preslikati;
    • V ogrodje za ustvarjanje so bile narejene različne izboljšave in popravki vizualni učinki;
  • Jedro (vmesniki jedra Windows)
    • Večina funkcij, ki se uporabljajo v Kernel32, je bila premaknjena v
      KernelBase, po spremembah v arhitekturi Windows;

    • Možnost mešanja 32- in 64-bitnih DLL-jev v imenikih, ki se uporabljajo za nalaganje. Zagotavlja, da so knjižnice, ki se ne ujemajo s trenutno bitno globino, prezrte (32/64), v primeru, da je naprej po poti mogoče najti knjižnico, ki je pravilna za trenutno bitno globino;
    • Za gonilnike naprav je bila izboljšana emulacija objektov jedra;
    • Implementirani sinhronizacijski objekti, ki delujejo na ravni jedra, kot so vrtljive ključavnice, hitri muteksi in spremenljivke, povezane z virom;
    • Zagotavlja, da so aplikacije pravilno obveščene o stanju baterije;
  • Uporabniški vmesnik in integracija namizja
    • Pomanjšana okna so zdaj prikazana z uporabo naslovne vrstice namesto ikone sloga Windows 3.1;
    • Dodani novi slogi gumbov SplitButton (gumb s spustnim seznamom dejanj) in Povezovalne povezave (povezave v pogovornih oknih za prehod na naslednjo stopnjo);
    • Za mapi »Prenosi« in »Predloge« so bile ustvarjene simbolične povezave, ki kažejo na ustrezne imenike v sistemih Unix;
  • Vhodne naprave
    • Ob zagonu se namestijo in naložijo potrebni gonilniki naprav Plug & Play;
    • Izboljšana podpora za igralne krmilnike, vključno z mini igralno palico (stikalo za klobuk), volanom, stopalkami za plin in zavoro.
    • Podpora za stari API igralne palice Linux, ki se je uporabljal v jedrih Linuxa pred različico 2.2, je bila ukinjena;
  • NET.
    • Motor Mono je bil posodobljen na izdajo 4.9.4 in zdaj vključuje dele ogrodja Windows Presentation Foundation (WPF);
    • Dodana možnost namestitve dodatkov z Mono in Gecko v en skupni imenik, pri čemer se datoteke umestijo v hierarhijo /usr/share/wine, namesto da bi jih kopirali v nove predpone;
  • Omrežne funkcije
    • Motor brskalnika Wine Gecko, ki se uporablja v knjižnici MSHTML, je bil posodobljen na izdajo 2.47.1. Implementirana je podpora za nove API-je HTML;
    • MSHTML zdaj podpira elemente SVG;
    • Dodanih veliko novih funkcij VBScript (na primer obdelovalniki napak in izjem, funkcije Ura, Dan, Mesec, Niz, LBound, RegExp.Replace, РScriptTypeInfo_* in ScriptTypeComp_Bind* itd.);
    • Zagotovljeno ohranjanje stanja kode v VBScript in JScript (obstojnost skripta);
    • Dodana začetna implementacija storitve HTTP (WinHTTP) in povezanega API-ja (HTTPAPI) za odjemalske in strežniške aplikacije, ki pošiljajo in prejemajo zahteve z uporabo protokola HTTP;
    • Implementirana možnost pridobivanja nastavitev HTTP proxy prek DHCP;
    • Dodana podpora za preusmerjanje zahtev za preverjanje pristnosti prek storitve Microsoft Passport;
  • Kriptografija
    • Implementirana podpora za kriptografske ključe eliptične krivulje (ECC) pri uporabi GnuTLS;
    • Dodana možnost uvoza ključev in potrdil iz datotek v formatu PFX;
    • Dodana podpora za shemo generiranja ključev na podlagi gesla PBKDF2;
  • Besedilo in pisave
    • Izvedba API-ja DirectWrite je dodala podporo za funkcije OpenType, povezane z pozicioniranje glifa, ki so privzeto omogočeni za latinski slog, vključno s kerningom;
    • Izboljšana varnost obdelave podatkov o pisavah s preverjanjem pravilnosti različnih podatkovnih tabel pred njihovo uporabo;
    • Vmesniki DirectWrite so bili usklajeni z najnovejšim SDK-jem;
  • Zvok in video
    • Predlagana je bila nova izvedba zvočnega API-ja XAudio2, zgrajen na podlagi projekta FAudio. Uporaba FAudio v Wine vam omogoča doseganje višje kakovosti zvoka v igrah in uporabo funkcij, kot so mešanje glasnosti in napredni zvočni učinki;
    • Izvedbi ogrodja Media Foundation je bilo dodanih veliko novih klicev, vključno s podporo za vgrajene in prilagojene asinhrone čakalne vrste, Source Reader API, Media Session itd.
    • Filter za zajem videa je bil preklopljen na uporabo API-ja v4l2 namesto API-ja v4l1, kar je razširilo obseg podprtih kamer;
    • Odstranjeni so bili vgrajeni dekoderji AVI, MPEG-I in WAVE, namesto katerih se sedaj uporablja sistemski GStreamer ali QuickTime;
    • Dodan podnabor konfiguracijskih API-jev VMR7;
    • Dodana podpora za prilagajanje glasnosti posameznih kanalov zvočnim gonilnikom;
  • Internacionalizacija
    • Tabele Unicode posodobljene na različico 12.1.0;
    • Implementirana podpora za normalizacijo Unicode;
    • Zagotovljena samodejna namestitev geografske regije (HKEY_CURRENT_USER\Control Panel\International\Geo) na podlagi trenutne lokalne nastavitve;
  • RPC/COM
    • Dodana podpora za kompleksne strukture in polja v typelib;
    • Dodana začetna implementacija izvajalne knjižnice Windows Script;
    • Dodana začetna implementacija knjižnice ADO (Microsoft ActiveX Data Objects);
  • Monterji
    • Za namestitveni program MSI je implementirana podpora za dostavo popravkov (Patch Files);
    • Pripomoček WUSA (Samostojni namestitveni program Windows Update) ima zdaj možnost namestitve posodobitev v formatu .MSU;
  • ARM platforma
    • Za arhitekturo ARM64 je bila v ntdll dodana podpora za odvijanje sklada. Dodana podpora za povezovanje zunanjih knjižnic libunwind;
    • Za arhitekturo ARM64 je bila implementirana podpora za brezhibne proxyje za objektne vmesnike;
  • Razvojna orodja / Winelib
    • Dodana možnost uporabe razhroščevalnika iz Visual Studio za oddaljeno odpravljanje napak v aplikacijah, ki se izvajajo v Wineu;
    • Knjižnica DBGENG (Debug Engine) je bila delno implementirana;
    • Binarne datoteke, prevedene za Windows, niso več odvisne od libwine, kar jim omogoča izvajanje v sistemu Windows brez dodatnih odvisnosti;
    • Dodana možnost '--sysroot' prevajalniku virov in prevajalniku IDL za določitev poti za datoteke glave;
    • Dodane možnosti »—target«, »—wine-objdir«, »—wine-objdir« v winegcc
      ‘—winebuild’ in ‘-fuse-ld’, ki poenostavita nastavitev okolja za navzkrižno prevajanje;

  • Vgrajenные приложения
    • Implementiran pripomoček CHCP za konfiguracijo kodiranja konzole;
    • Implementiran je pripomoček MSIDB za obdelavo baz podatkov v formatu MSI;
  • Optimizacija učinkovitosti
    • Različne časovne funkcije so bile preseljene za uporabo visokozmogljivih sistemskih časovnih funkcij, s čimer se zmanjšajo stroški v zanki upodabljanja številnih iger;
    • Dodana možnost uporabe Ext4 v FS režim delo brez občutljivosti na velike in male črke;
    • Zmogljivost obdelave velikega števila elementov v pogovornih oknih za prikaz seznama, ki delujejo v načinu LBS_NODATA, je bila optimizirana;
    • Dodana je hitrejša izvedba ključavnic SRW (Slim Reader/Writer) za Linux, prevedena v Futex;
  • Zunanje odvisnosti
    • Za sestavljanje modulov v formatu PE se uporablja navzkrižni prevajalnik MinGW-w64;
    • Implementacija XAudio2 zahteva knjižnico FAudio;
    • Za sledenje spremembam datotek v sistemih BSD
      uporablja se knjižnica Inotify;

    • Za obravnavanje izjem na platformi ARM64 je potrebna knjižnica Unwind;
    • Namesto Video4Linux1 je zdaj potrebna knjižnica Video4Linux2.

Vir: opennet.ru

Dodaj komentar