Nakon godine razvoja i 28 eksperimentalnih verzija predstavljeno je stabilno izdanje otvorene implementacije Win32 API — Wine 8.0, koje sadrži više od 8600 promjena. Ključna postignuća u novoj verziji uključuju završetak rada na prevođenju Wine modula u format.
U Wine-u je potvrđeno potpuno funkcioniranje 5266 (prije godinu dana 5156, prije dvije godine 5049) programa za Windows, još 4370 (prije godinu dana 4312, prije dvije godine 4227) programa odlično radi uz dodatne postavke i vanjske DLL-ove. Kod 3888 programa (prije godinu dana 3813, prije dvije godine 3703) primjećuju se manje poteškoće u radu, koje ne ometaju korištenje osnovnih funkcija aplikacija.
Ključne novine Wine 8.0:
- Moduli u PE formatu
- Nakon četiri godine rada, potpuno je završen prijenos svih DLL biblioteka na korištenje formata izvršnih datoteka PE (Portable Executable, korišten u Windows-u). Primjena PE omogućava korištenje dostupnih alata za ispravljanje grešaka iz Windows-a i rješava probleme s podrškom različitim shemama zaštite od kopiranja, koje provode provjeru identiteta sistemskih modula na disku i u memoriji. Također su rješeni problemi s radom 32-bitnih aplikacija na 64-bitnim platformama i x86 aplikacija na ARM sustavima. Među preostalim zadacima koje planiraju riješiti u sljedećim eksperimentalnim izdanjima Wine 8.x je prijenos modula na sučelje sustavnih poziva NT umjesto izravnog pozivanja između razina PE i Unix.
- Implementiran je posebni upravitelj sustavnih poziva, koji se koristi za prevođenje poziva iz PE u Unix biblioteke s ciljem smanjenja troškova pri izvršavanju cijelog sustavnog poziva NT. Na primjer, provedena optimizacija omogućila je smanjenje pada izvedbe prilikom korištenja OpenGL i Vulkan biblioteka.
- U Winelib aplikacijama zadržana je mogućnost korištenja mješovitih kolekcija Windows/Unix biblioteka u ELF formatu (.dll.so), ali takve aplikacije bez 32-bitnih biblioteka neće podržavati funkcionalnost dostupnu putem sučelja sustavnih poziva NT, kao što je WoW64.
- WoW64
- Za sve Unix biblioteke pruženi su WoW64 slojevi (64-bit Windows-on-Windows) koji omogućuju 32-bitnim PE modulima pristup 64-bitnim Unix bibliotekama, što, nakon uklanjanja izravnih poziva PE/Unix, omogućuje izvođenje 32-bitnih Windows aplikacija bez instalacije 32-bitnih Unix biblioteka.
- U slučaju da 32-bitni Wine loader nije dostupan, omogućeno je pokretanje 32-bitnih aplikacija u novom eksperimentalnom Windows-sličnom režimu WoW64, u kojem se 32-bitni kod pokreće unutar 64-bitnog procesa. Režim se aktivira prilikom izrade Wine sa opcijom '--enable-archs'.
- Grafički podsustav
- U zadanom je конфигурация primijenjena svijetla tema ("Light"). Tema se može promijeniti pomoću alata WineCfg.

- Grafički drajveri (winex11.drv, winemac.drv, wineandroid.drv) prilagođeni su za izvršavanje sistemskih poziva na Unix razini i pristup drajverima putem Win32u biblioteke.

- Implementirana je arhitektura procesora za ispis (Print Processor) koja se koristi za isključivanje izravnih poziva između razina PE i Unix u drajveru pisača.
- U API-ju Direct2D implementirana je podrška za efekte.
- U API-ju Direct2D dodana je mogućnost snimanja i reproduciranja liste komandi.
- U drajveru za grafički API Vulkan dodana je podrška za specifikaciju Vulkan 1.3.237 (u Wine 7 podržavan je Vulkan 1.2).
- U zadanom je конфигурация primijenjena svijetla tema ("Light"). Tema se može promijeniti pomoću alata WineCfg.
- Direct3D
- Dodana je nova knjižnica za HLSL (High-Level Shader Language) shader kompilatore, implementirana na temelju vkd3d-shadera. Također su na bazi vkd3d-shadera pripremljeni HLSL disassembler i HLSL preprocesor.
- Implementirano je sučelje Thread Pump koje se pojavilo u D3DX 10.
- U efektima Direct3D 10 dodana je podrška za mnoge nove izraze.
- U pomoćnoj biblioteci za D3DX 9 implementirana je podrška za projekciju tekstura Cubemap.
- Zvuk i video
- Na temelju GStreamer frameworka implementirana je podrška za filtere za dekodiranje zvuka u MPEG-1 formatu.
- Dodani su filteri za čitanje streamiranog zvuka i videa u ASF (Advanced Systems Format) formatu.
- Uklonjena je posrednička biblioteka-prosloj OpenAL32.dll, umjesto koje se sada koristi izvorna Windows biblioteka OpenAL32.dll koja dolazi s aplikacijama.
- U Media Foundation Player poboljšano je prepoznavanje vrste sadržaja.
- Implementirana je mogućnost upravljanja brzinom prijenosa podataka (Rate control).
- Poboljšana je podrška za miješač i renderer (presenter) koji se po defaultu nude u Enhanced Video Renderer (EVR).
- Dodana je početna implementacija API-ja Writer Encoding.
- Poboljšana podrška za učitavanje topologija.
- Uređaji za ulaz
- Znatno poboljšana podrška za vruće priključivanje kontrolera.
- Predložena poboljšana realizacija koda za prepoznavanje igračkih volana, temeljena na biblioteci SDL.
- Poboljšana podrška za efekt vibracijskog povratka (Force feedback) pri korištenju igračkih volana.
- Ostvarena mogućnost upravljanja lijevim i desnim vibracijskim motorima koji koriste HID Haptic specifikaciju.
- Promijenjeno oblikovanje. admin panelu joystickom.
- Kroz korištenje backend-a hidraw osigurana podrška za Sony DualShock i DualSense kontrolere.
- Predložen WinRT modul Windows.Gaming.Input s implementacijom programske sučelje za pristup gamepadima, joystickovima i igračkim volanima. Za novo API, između ostalog, implementirana je podrška za obavijesti o vrućem priključivanju uređaja, taktilne i vibracijske efekte.
- Međunarodizacija
- Osigurana generacija valjanih Baze podataka lokalizacija u formatu locale.nls iz Unicode CLDR repozitorija (Unicode Common Locale Data Repository).
- Funkcije usporedbe Unicode stringova prebačene su na korištenje baze podataka i algoritma Windows Sortkey umjesto algoritma Unicode Collation, što je približilo ponašanje Windows-u.
- Većini funkcija dodana je podrška gornjim rasponima kodova (površinama) Unicode.
- Omogućeno korištenje UTF-8 kao ANSI kodiranja.
- Tablice simbola su ažurirane na specifikaciju Unicode 15.0.0.
- Tekst i fontovi
- Za većinu sistemskih fontova omogućeno je povezivanje fontova, što je riješilo problem s nedostatkom glifova na sistemima s kineskim, korejskim i japanskim lokalizacijama.
- Redizajniran je povratak na rezervni font u DirectWrite.
- Jezgro (Windows jezgreni interfesi)
- Implementirana je baza podataka ApiSetSchema koja je zamijenila module api-ms-* i omogućila smanjenje potrošnje prostora na disku i adresnom prostoru.
- Osigurano je očuvanje DOS atributa datoteka na disku u formatu kompatibilnom sa Samba, koristeći proširene atribute datotečnog sustava.
- Mrežne mogućnosti
- Dodana podrška za OCSP (Online Certificate Status Protocol) protokol, korišten za provjeru opozvanih certifikata.
- Proširen spektar mogućnosti EcmaScript-a dostupnog u načinu usklađenosti sa standardima JavaScript.
- Implementiran je prikupljač smeća za JavaScript.
- U paketu s Gecko motorom uključena su sredstva za osobe s invaliditetom.
- U MSHTML dodana je podrška za API Web Storage, objekt Performance i dodatne objekte za obradu događaja.
- Ugrađene aplikacije
- Sve ugrađene aplikacije su prebačene na korištenje biblioteke Common Controls 6, uz podršku za teme i renderiranje uzimajući u obzir ekrane visoke gustoće piksela.
- Proširene su mogućnosti debuggiranja niti u debuggeru Wine Debugger (winedbg).
- U alatima za rad s registrom (REGEDIT i REG) dodana je podrška za tip QWORD.
- Notepad je dobio statusnu traku s informacijama o poziciji kursora i funkciju Goto Line za prelazak na navedeni broj linije.
- U ugrađenoj konzoli omogućeno je ispisivanje podataka u OEM kodnoj stranici.
- U alat sc.exe (Service Control) dodana je naredba ‘query’.
- Sistem izgradnje
- Omogućena je izgradnja izvršnih datoteka u PE formatu za više arhitektura (npr. ‘—enable-archs=i386,x86_64’).
- Na svim platformama s 32-bitnim tipom long, podaci definirani u Windowsu kao long, u Wineu su sada redefinirani kao ‘long’ umjesto ‘int’. Ovo ponašanje se može isključiti u Winelibu definiranjem WINE_NO_LONG_TYPES.
- Dodana je mogućnost generiranja biblioteka bez korištenja dlltool (aktivira se postavljanjem opcije ‘—without-dlltool’ u winebuild).
- Kako bi se povećala učinkovitost učitavanja i smanjila veličina biblioteka koje ne sadrže kod i uključuju samo resurse, u winegcc je implementirana opcija ‘—data-only’.
- Razno
- Ažurirane su 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 motor s implementacijom platforme .NET ažuriran je na verziju 7.4.
- Implementirana je podrška za enkripciju temeljem RSA algoritma i digitalnih potpisa RSA-PSS.
- Dodana je početna verzija API-ja UI Automation.
- U stablo izvornih tekstova uključene su biblioteke LDAP i vkd3d, koje se kompiliraju u PE formatu, što je eliminiralo potrebu za isporukom Unix verzija tih biblioteka.
- Prekinuta je upotreba biblioteke OpenAL.
Izvor: opennet.ru


