Nakon godinu dana razvoja i 28 eksperimentalnih verzija, predstavljeno je stabilno izdanje otvorene implementacije Win32 API-ja - Wine 8.0, u koje je ugrađeno više od 8600 izmjena. Ključno postignuće u novoj verziji označava završetak rada na prevođenju modula Wine u format.
Wine je potvrdio puni rad 5266 (prije godinu dana 5156, prije dvije godine 5049) programa za Windows, još 4370 (prije godinu dana 4312, prije dvije godine 4227) programa radi savršeno s dodatnim postavkama i vanjskim DLL-ovima. 3888 programa (3813 prije godinu dana, 3703 prije dvije godine) ima manje probleme u radu koji ne ometaju korištenje glavnih funkcija aplikacija.
Ključne inovacije u Wineu 8.0:
- Moduli u PE formatu
- Nakon četiri godine rada, dovršena je konverzija svih DLL biblioteka za korištenje PE (Portable Executable, koristi se u Windowsima) formata izvršne datoteke. Korištenje PE-a omogućuje korištenje programa za ispravljanje pogrešaka dostupnih za Windows i rješava probleme s podrškom za različite sheme zaštite od kopiranja koje provjeravaju identitet modula sustava na disku i u memoriji. Također su riješeni problemi s pokretanjem 32-bitnih aplikacija na 64-bitnim hostovima i x86 aplikacijama na ARM sustavima. Među preostalim zadacima koji se planiraju riješiti u sljedećim eksperimentalnim izdanjima Wine 8.x, postoji prijelaz modula na NT sučelje za pozive sustava umjesto izravnih poziva između PE i Unix slojeva.
- Implementiran je poseban upravitelj sistemskih poziva koji se koristi za prevođenje poziva iz PE u Unix biblioteke kako bi se smanjilo opterećenje izvršavanja punog NT sistemskog poziva. Na primjer, optimizacija je omogućila smanjenje degradacije performansi pri korištenju biblioteka OpenGL i Vulkan.
- Winelib aplikacije zadržavaju mogućnost korištenja mješovitih Windows/Unix sklopova ELF (.dll.so) biblioteka, ali takve aplikacije bez 32-bitnih biblioteka neće podržavati funkcionalnost dostupnu putem sučelja za pozive sustava NT, kao što je WoW64.
- WoW64
- WoW64 (64-bitni Windows-on-Windows) slojevi dostupni su za sve Unix biblioteke, omogućujući 32-bitnim modulima u PE formatu pristup 64-bitnim Unix bibliotekama, koje će, nakon što se riješe izravnih PE/Unix poziva, moći moguće izvršavanje 32-bitnih Windows aplikacija bez instaliranja 32-bitnih Unix biblioteka.
- U nedostatku 32-bitnog Wine loadera, 32-bitne aplikacije mogu se izvoditi u novom eksperimentalnom načinu WoW64 sličnom sustavu Windows, u kojem se 32-bitni kod izvodi unutar 64-bitnog procesa. Način je omogućen kada se gradi Wine s opcijom '—enable-archs'.
- Grafički podsustav
- Zadana konfiguracija koristi svijetlu temu ("Svjetlo"). Možete promijeniti temu pomoću uslužnog programa WineCfg.
- Grafički upravljački programi (winex11.drv, winemac.drv, wineandroid.drv) pretvaraju se da izvršavaju sistemske pozive na Unix razini i pristupaju upravljačkim programima putem Win32u biblioteke.
- Implementirana je arhitektura procesora ispisa koja se koristi za uklanjanje izravnih poziva između PE i Unix razina u upravljačkom programu pisača.
- Direct2D API sada podržava efekte.
- Direct2D API dodao je mogućnost snimanja i reprodukcije popisa naredbi.
- Upravljački program za grafički API Vulkan dodao je podršku za specifikaciju Vulkan 1.3.237 (Vulkan 7 je podržan u Wineu 1.2).
- Zadana konfiguracija koristi svijetlu temu ("Svjetlo"). Možete promijeniti temu pomoću uslužnog programa WineCfg.
- Direct3D
- Dodan je novi prevoditelj shadera za HLSL (High-Level Shader Language), implementiran na temelju vkd3d-shader biblioteke. Također na temelju vkd3d-shadera pripremljen je HLSL disassembler i HLSL predprocesor.
- Implementirano je sučelje Thread Pump predstavljeno u D3DX 10.
- Direct3D 10 efekti dodaju podršku za mnoge nove izraze.
- Biblioteka podrške za D3DX 9 sada podržava projekciju teksture Cubemap.
- Zvuk i video
- Na temelju GStreamer frameworka implementirana je podrška za filtere za dekodiranje zvuka u MPEG-1 formatu.
- Dodan je filtar za čitanje strujanja audio i videa u ASF (Advanced Systems Format) formatu.
- Međusloj biblioteke OpenAL32.dll je uklonjen, umjesto kojeg se sada koristi izvorna Windows biblioteka OpenAL32.dll, isporučena s aplikacijama.
- Media Foundation Player ima poboljšano otkrivanje vrste sadržaja.
- Implementirana je mogućnost kontrole brzine prijenosa podataka (Rate control).
- Poboljšana podrška za zadani mikser i izlagač u Enhanced Video Renderer (EVR).
- Dodana početna implementacija Writer Encoding API-ja.
- Poboljšana podrška za učitavanje topologije.
- Uređaji za unos
- Značajno poboljšana podrška za vruće uključivanje kontrolera.
- Predlaže se poboljšana implementacija koda za određivanje upravljača igre, izgrađenog na temelju SDL biblioteke.
- Poboljšana podrška za učinak povratne sile pri korištenju kotača za igre.
- Implementirana je mogućnost upravljanja lijevim i desnim vibracijskim motorima pomoću HID Haptic specifikacije.
- Promijenio je dizajn upravljačke ploče joysticka.
- Podrška za kontrolere Sony DualShock i DualSense pruža se upotrebom hidraw backend-a.
- Predložen je WinRT modul Windows.Gaming.Input s implementacijom softverskog sučelja za pristup gamepadima, joysticcima i kotačima za igranje. Za novi API, između ostalog, implementirana je podrška za dojavu o vrućem uključivanju uređaja, taktilne i vibracijske efekte.
- Internacionalizacija
- Osigurano je generiranje ispravne lokalne baze podataka u formatu locale.nls iz Unicode CLDR (Unicode Common Locale Data Repository) repozitorija.
- Funkcije za usporedbu Unicode nizova premještene su tako da koriste bazu podataka i algoritam Windows Sortkey umjesto Unicode Collation algoritma, čime se ponašanje približava sustavu Windows.
- Većina značajki ima dodanu podršku za gornje raspone Unicode kodova (ravnine).
- Moguće je koristiti UTF-8 kao ANSI kodiranje.
- Tablice znakova ažurirane su na specifikaciju Unicode 15.0.0.
- Tekst i fontovi
- Povezivanje fontova je omogućeno za većinu sistemskih fontova, rješavajući problem nedostajućih glifova na sustavima s kineskim, korejskim i japanskim lokalitetima.
- Prerađeni zamjenski font za DirectWrite.
- Kernel (Windows kernel sučelja)
- Implementirana je baza podataka ApiSetSchema koja je zamijenila api-ms-* module i smanjila potrošnju diskovnog i adresnog prostora.
- Atributi DOS datoteke spremaju se na disk u formatu koji je kompatibilan sa Sambom koristeći proširene FS atribute.
- Značajke umrežavanja
- Dodana podrška za OCSP (Online Certificate Status Protocol), koji se koristi za provjeru opozvanih certifikata.
- Raspon značajki EcmaScripta dostupnih u načinu usklađenosti sa standardima JavaScripta je proširen.
- Implementiran skupljač smeća za JavaScript.
- Paket motora Gecko uključuje značajke za osobe s invaliditetom.
- MSHTML dodaje podršku za API za web pohranu, Performance objekt i dodatne objekte za rukovanje događajima.
- Ugrađene aplikacije
- Sve ugrađene aplikacije pretvorene su za korištenje biblioteke Common Controls 6, uz podršku za teme dizajna i renderiranje uzimajući u obzir zaslone s visokom gustoćom piksela.
- Poboljšane mogućnosti za otklanjanje pogrešaka niti u Wine Debuggeru (winedbg).
- Pomoćni programi registra (REGEDIT i REG) sada podržavaju tip QWORD.
- Bilježnica je dodala statusnu traku s informacijama o položaju kursora i funkciju Goto Line za skok na određeni broj retka
- Ugrađena konzola pruža izlaz podataka na OEM kodnoj stranici.
- Naredba 'query' dodana je uslužnom programu sc.exe (Service Control).
- Montažni sustav
- Omogućena je mogućnost izrade izvršnih datoteka u PE formatu za nekoliko arhitektura (na primjer, '—enable-archs=i386,x86_64').
- Na svim platformama s 32-bitnim dugim tipom, tipovi podataka definirani kao dugi u sustavu Windows sada su redefinirani kao 'dugi' umjesto 'int' u Wineu. U Winelibu se ovo ponašanje može onemogućiti putem definicije WINE_NO_LONG_TYPES.
- Dodana mogućnost generiranja biblioteka bez korištenja dlltoola (omogućeno postavljanjem opcije '—without-dlltool' u winebuildu).
- Kako bi se poboljšala učinkovitost učitavanja i smanjila veličina biblioteka bez koda, samo za resurse, winegcc implementira opciju '--data-only'.
- Miscelanea
- Ažurirane verzije ugrađenih biblioteka Faudio 22.11, LCMS2 2.14, LibJPEG 9e, LibMPG123 1.31.1, LibPng 1.6.39, LibTiff 4.4.0, LibXml2 2.10.3, LibXslt 1.1.37, Zlib 1.2.13.
- Wine Mono engine s implementacijom .NET platforme ažuriran je na izdanje 7.4.
- Implementirana je podrška za enkripciju temeljenu na RSA algoritmu i RSA-PSS digitalnim potpisima.
- Dodana početna verzija UI Automation API-ja.
- Izvorno stablo uključuje LDAP i vkd3d biblioteke, koje su kompilirane u PE formatu, eliminirajući potrebu za isporukom Unix sklopova ovih biblioteka.
- OpenAL biblioteka je ukinuta.
Izvor: opennet.ru