Stabilno izdanje Wine 5.0

Nakon godinu dana razvoja i 28 eksperimentalnih verzija predstavljen stabilna verzija otvorene implementacije Win32 API — Wine 5.0, koji uključuje više od 7400 izmjena. Među ključnim dostignućima nove verzije ističe se isporuka ugrađenih Wine modula u PE formatu, podrška za višemonitorske konfiguracije, nova implementacija zvučnog API-ja XAudio2 i podrška za grafički API Vulkan 1.1.

U Wine-u potvrđena je puno funkcionalno rad 4869 (prije godine 4737) programa za Windows, još 4136 (prije godine 4045) programa savršeno funkcionira uz dodatne postavke i vanjske DLL-ove. Kod 3635 programa zabilježeni su manji problemi u radu koji ne ometaju korištenje osnovnih funkcija aplikacija.

Ključne novosti Wine 5.0:

  • Moduli u PE formatu
    • Uz prisustvo MinGW kompajlera, većina Wine modula sada se gradi u formatu izvršnih datoteka PE (Portable Executable, koristi se u Windowsu) umjesto ELF-a. Korištenje PE rješava probleme s podrškom za različite sheme zaštite od kopiranja, koje provjeravaju identitet sistemskih modula na disku i u memoriji;
    • Izvršne datoteke PE sada se kopiraju u direktorij ~/.wine ($WINEPREFIX) umjesto korištenja lažnih DLL datoteka, što čini strukturu sličnijom pravim instalacijama Windowsa uz dodatno zauzimanje prostora na disku;
    • Moduli, pretvoreni u PE format, mogu koristiti uobičajene wchar C-funkcije i konstante s Unicodeom (na primjer, L"abc");
    • U Wine C runtime dodana je podrška za povezivanje s binarnim datotekama, građenim u MinGW-u, koja se po defaultu koristi umjesto MinGW runtime-a prilikom izgradnje DLL-a;
  • Grafički podsustav
    • Dodana je podrška za rad s više monitora i grafičkih adaptera, uključujući mogućnost dinamičkog mijenjanja postavki;
    • Ažuriran je drajver za grafički API Vulkan, koji je usklađen sa specifikacijom Vulkan 1.1.126;
    • U biblioteci WindowsCodecs implementirana je mogućnost konverzije dodatnih raster formata, uključujući formate s indeksiranom paletom;
  • Direct3D
    • Prilikom izvršavanja aplikacija u punom ekranu, osigurana je blokada poziva čuvara ekrana;
    • U DXGI (DirectX Graphics Infrastructure) dodana je podrška za obavještavanje aplikacije o minimiziranju njenog prozora, što omogućava aplikaciji da smanji izvođenje resursno zahtjevnih operacija prilikom smanjivanja prozora;
    • Za aplikacije koje koriste DXGI, omogućeno je prebacivanje između punog ekrana i prozorskog moda pomoću kombinacije Alt+Enter;
    • Proširene su mogućnosti implementacije Direct3D 12, na primjer, dodana je podrška za prebacivanje između punog ekrana i prozorskog moda, promjenu režima ekrana, izlaz s skaliranjem i upravljanje intervalom zamjene prikazivanja (swap interval);
    • Poboljšano je rukovanje raznim rubnim situacijama, poput upotrebe izlaznih vrijednosti koje premašuju dozvoljene domete za testove transparentnosti i dubine, prikaz s reflektiranim teksturama i spremnicima, korištenje neispravnih DirectDraw objekata. clipper, stvaranje Direct3 uređaja za neispravne prozore, korištenje vidljivih područja čije su minimalne vrijednosti parametara jednake maksimalnim i sl.;
    • U Direct3D 8 i 9 osigurano je preciznije praćenje "prljavih" područja učitanih tekstura;
    • Smanjena je veličina potrebnog adresnog prostora pri učitavanju 3D tekstura, komprimiranih metodom S3TC (umjesto potpunog učitavanja, teksture se učitavaju u komadima).
    • Implementirano je sučelje ID3D11Multithread za zaštitu kritičnih sekcija u višedretvenim aplikacijama;
    • Za stare DirectDraw aplikacije unijeta su različita poboljšanja i ispravke vezane za izračun osvjetljenja;
    • Implementirani su dodatni pozivi za dobivanje informacija o šejderima u API-ju ShaderReflection;
    • U wined3d dodana je podrška blitteru na bazi CPU za obradu komprimiranih resursa;
    • Proširena je baza podataka grafičkih kartica prepoznatljivih u Direct3D;
    • Dodani su novi registri HKEY_CURRENT_USER\Software\Wine\Direct3D: „shader_backend“ (backend za rad sa šejderima: „glsl“ za GLSL, „arb“ za ARB vertex/fragment i „none“ za isključenje podrške za šejdere), „strict_shader_math“ (0x1 — uključiti, 0x0 — isključiti konverziju Direct3D šejdera). Oznaka „UseGLSL“ je označena kao zastarjela (treba koristiti „shader_backend“);
  • D3DX
    • Implementirana je podrška za mehanizam kompresije 3D tekstura S3TC (S3 Texture Compression);
    • Dodane su ispravne implementacije takvih operacija, kao što su punjenje teksturom i neodrazive (unmappable) površine;
    • Unesena su različita poboljšanja i ispravke u okviru za stvaranje vizualnih efekata;;
  • Jezgro (Windows jezgreni interfesi)
    • Većina funkcija korištenih u Kernel32 premještena je u
      KernelBase, u skladu s promjenama u arhitekturi Windows;
    • Mogućnost kombiniranja 32- i 64-bitnih DLL datoteka u direktorijima koji se koriste za učitavanje. Osigurano je ignoriranje biblioteka koje ne odgovaraju trenutnoj bitnosti (32/64), u slučaju da se na putu uspije pronaći ispravna biblioteka za trenutnu bitnost;
    • Za upravljačke programe uređaja poboljšana je emulacija objekata jezgre;
    • Implementirani su objekti sinkronizacije na razini jezgre, kao što su spin-lockovi, brzi mutexi i varijable vezane uz resurs;
    • Osigurano je točno obavještavanje aplikacija o stanju baterije;
  • Korisničko sučelje i integracija s radnom površinom
    • Minimalizirana prozorska okna sada se prikazuju koristeći naslov umjesto ikone u stilu Windows 3.1;
    • Dodani su novi stilovi gumba SplitButton (gumb s padajućim popisom radnji) i Command Links (linkovi u dijaloškim prozorima korištenim za prelazak na sljedeću fazu);
    • Za mape 'Downloads' i 'Templates' stvorene su simboličke veze koje upućuju na odgovarajuće direktorije u Unix sustavima;
  • Uređaji za ulaz
    • Pri pokretanju osigurana je instalacija i učitavanje potrebnih upravljačkih programa uređaja Plug & Play;
    • Poboljšana je podrška za igraće kontrolere, uključujući mini-joystick (hat switch), volan, pedale za gas i kočnice.
    • Prekinuta je podrška za stari Linux API za interakciju s joystickovima, korišten u jezgrama Linuxa do verzije 2.2;
  • .NET
    • Mono motor ažuriran je na verziju 4.9.4 i sada uključuje dijelove okvira Windows Presentation Foundation (WPF);
    • Dodana je mogućnost instaliranja dodataka s Mono i Gecko u jedan zajednički direktorij s smještajem datoteka u hijerarhiji /usr/share/wine umjesto kopiranja u nove prefikse;
  • Mrežne mogućnosti
    • Web motor Wine Gecko, koji se koristi u biblioteci MSHTML, ažuriran je na verziju 2.47.1. Implementirana je podrška za nove HTML API;
    • U MSHTML je implementirana podrška za SVG elemente;
    • Dodane su mnoge nove funkcije VBScript-a (npr. rukovatelji pogreškama i iznimkama, funkcije Hour, Day, Month, String, LBound, RegExp.Replace, RScriptTypeInfo_* i ScriptTypeComp_Bind* itd.);
    • Osigurano je očuvanje stanja koda u VBScript i JScript (script persistence);
    • Dodana je osnovna implementacija HTTP servisa (WinHTTP) i povezanog API-ja (HTTPAPI) za klijentske i serverske aplikacije, koje šalju i primaju zahtjeve putem HTTP protokola;
    • Implementirana je mogućnost dobivanja parametara za postavke HTTP proxyja putem DHCP;
    • Dodana podrška za preusmjeravanje zahtjeva za autentifikaciju putem Microsoft Passport usluge;
  • Kriptografija
    • Implementirana podrška za kriptografske ključeve na bazi eliptičnih krivulja (ECC) prilikom korištenja GnuTLS;
    • Dodana mogućnost uvoza ključeva i certifikata iz datoteka u PFX formatu;
    • Dodana podrška za obrazac generiranja ključa temeljenog na lozinkama PBKDF2;
  • Tekst i fontovi
    • U implementaciji DirectWrite API-ja dodana podrška za OpenType mogućnosti vezane uz pozicioniranje glifa, koje su zadano uključene za latinično pismo, uključujući kerning;
    • Povećana sigurnost obrade podataka o fontovima zahvaljujući provjeri ispravnosti različitih podataka prije njihove upotrebe;
    • DirectWrite sučelja usklađena su s najnovijim SDK-om;
  • Zvuk i video
    • Predložena nova implementacija zvučnog API-ja XAudio2, temeljena na projektu s implementacijom zvučnih biblioteka DirectX (API XAudio2, X3DAudio, XAPO i XACT3) ažurirane su do izdanja 20.06;. Korištenje FAudio u Wine omogućuje postizanje bolje kvalitete zvuka u igrama i korištenje takvih mogućnosti kao što su miješanje glasnoće i prošireni zvučni efekti;
    • Dodano je veliko broj novih poziva u implementaciju Media Foundation frameworka, uključujući podršku za ugrađene i korisničke asinkrone redove, Source Reader API, Media Session itd.
    • Video snimač je prebačen na korištenje API-ja v4l2 umjesto v4l1 API-ja, što je proširilo opseg podržanih kamera;
    • Uklonjeni su ugrađeni dekoderi AVI, MPEG-I i WAVE, umjesto njih sada se koriste sistemski GStreamer ili QuickTime;
    • Dodano je podskup konfiguracijskih API-ja VMR7;
    • U zvučne drajvere dodana je podrška za podešavanje glasnoće pojedinih kanala;
  • Međunarodizacija
    • Unicode tablice ažurirane su na verziju 12.1.0;
    • Implementirana je podrška za normalizaciju Unicode;
    • Osigurana je automatska postavka geografskog područja (HKEY_CURRENT_USER\Control Panel\International\Geo) temeljem trenutne lokalizacije;
  • RPC/COM
    • U typelib dodana je podrška za složene strukture i nizove;
    • Dodana je osnovna implementacija runtime biblioteke Windows Script;
    • Dodana je osnovna implementacija ADO biblioteke (Microsoft ActiveX Data Objects);
  • Instalatori
    • Za MSI instalator implementirana je podrška za isporuku zakrpa (Patch Files);
    • U alatu WUSA (Windows Update Samostalni Instalator) dodana je mogućnost instalacije ažuriranja u .MSU formatu;
  • ARM platforma
    • Za ARM64 arhitekturu dodana je podrška za rasklapanje stoga (stack unwinding) u ntdll. Dodana je podrška za povezivanje vanjskih biblioteka libunwind;
    • Za ARM64 arhitekturu implementirana je podrška za bešavne proxy (stubless proxies) za objekte sučelja;
  • Alati za razvoj / Winelib
    • Dodana je mogućnost korištenja Visual Studio debagera za daljinsko otklanjanje pogrešaka aplikacija pokrenutih u Wine;
    • Djelomično je implementirana biblioteka DBGENG (Debug Engine);
    • Izvršne datoteke sakupljene za Windows više ne ovise o libwine, što omogućuje njihovo pokretanje u Windows bez dodatnih ovisnosti;
    • U Resource Compiler i IDL Compiler dodana je opcija ‘—sysroot’ za definiranje puta do zaglavnih datoteka;
    • U winegcc dodane su opcije ‘—target’, ‘—wine-objdir’,
      ‘—winebuild’ i ‘-fuse-ld’, koje pojednostavljuju postavljanje okruženja za križnu kompilaciju;
  • Ugrađene aplikacije
    • Implementirana je CHCP alat za postavljanje kodiranja konzole;
    • Implementiran je MSIDB alat za manipulaciju bazama u MSI formatu;
  • Optimizacija performansi
    • Različite funkcije rada s vremenom prebačene su na korištenje visokoučinkovitih sistemskih funkcija rada s tajmerom, što je smanjilo troškove u petlji prikazivanja mnogih igara;
    • Dodana je mogućnost korištenja u Ext4 datotečnom sustavu način rada bez obzira na veličinu slova;
    • Provedena je optimizacija performansi obrade velikog broja elemenata u dijalozima za izbornike koji rade u LBS_NODATA načinu;
    • Dodana je brža implementacija SRW zaključavanja (Slim Reader/Writer) za Linux, prebačena na Futex;
  • Vanjske ovisnosti
    • Za izgradnju modula u PE formatu korišten je križ-kompajler MinGW-w64;
    • Implementacija XAudio2 zahtijeva biblioteku FAudio;
    • Za praćenje promjena datoteka na BSD sustavima
      koristi se biblioteka Inotify;
    • Za obradu iznimaka na ARM64 platformi potrebna je biblioteka Unwind;
    • Umjesto Video4Linux1 sada je potrebna biblioteka Video4Linux2.

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