Stabilno izdanje Wine 7.0

Nakon godinu dana razvoja i 30 eksperimentalnih verzija, predstavljeno je stabilno izdanje otvorene implementacije Win32 API-ja - Wine 7.0, u koje je ugrađeno više od 9100 promjena. Ključna postignuća nove verzije uključuju prijevod većine Wine modula u PE format, podršku za teme, proširenje stoga za joysticke i ulazne uređaje s HID sučeljem te implementaciju WoW64 arhitekture za pokretanje 32-bitnih programa u 64-bitno okruženje.

Wine je potvrdio puni rad 5156 (prije godinu dana 5049) programa za Windows, još 4312 (prije godinu dana 4227) programa radi savršeno s dodatnim postavkama i vanjskim DLL-ovima. 3813 programa (prije 3703 godine) ima manje probleme u radu koji ne ometaju korištenje glavnih funkcija aplikacija.

Ključne inovacije u Wineu 7.0:

  • Moduli u PE formatu
    • Gotovo svi DLL-ovi su pretvoreni u PE (Portable Executable, koristi se u sustavu Windows) format izvršne datoteke umjesto ELF-a. Korištenje PE-a rješava probleme s podrškom za različite sheme zaštite od kopiranja koje provjeravaju identitet modula sustava na disku iu memoriji.
    • Implementirana je mogućnost interakcije PE modula s Unix bibliotekama korištenjem standardnog sistemskog poziva NT kernela, što vam omogućuje da sakrijete pristup Unix kodu od Windows programa za ispravljanje pogrešaka i nadgledate registraciju niti.
    • Ugrađeni DLL-ovi sada se učitavaju samo ako postoji odgovarajuća PE datoteka na disku, bez obzira na to radi li se o pravoj biblioteci ili stubu. Ova promjena omogućuje aplikaciji da uvijek vidi ispravno vezanje na PE datoteke. Da biste onemogućili ovo ponašanje, možete koristiti varijablu okoline WINEBOOTSTRAPMODE.
  • WoW64
    • Implementirana je WoW64 arhitektura (64-bitni Windows-on-Windows) koja vam omogućuje pokretanje 32-bitnih Windows aplikacija u 64-bitnim Unix procesima. Podrška je implementirana kroz povezivanje sloja koji prevodi 32-bitne pozive NT sustava u 64-bitne pozive prema NTDLL-u.
    • WoW64 slojevi pripremljeni su za većinu Unix biblioteka i omogućuju 32-bitnim PE modulima pristup 64-bitnim Unix bibliotekama. Nakon što se svi moduli pretvore u PE format, bit će moguće pokretati 32-bitne Windows aplikacije bez instaliranja 32-bitnih Unix biblioteka.
  • Teme
    • Implementirana je podrška za teme. Uključene su teme dizajna “Light”, “Blue” i “Classic Blue”, koje se mogu odabrati putem WineCfg konfiguratora.
    • Dodana je mogućnost prilagodbe izgleda svih kontrola sučelja putem tema. Izgled elemenata automatski se ažurira nakon promjene teme dizajna.
    • Podrška za teme dodana je svim ugrađenim Wine aplikacijama. Aplikacije su prilagođene ekranima visoke gustoće piksela (High DPI).
  • Grafički podsustav
    • Dodana je nova biblioteka Win32u koja uključuje dijelove biblioteka GDI32 i USER32 koji se odnose na obradu grafike i upravljanje prozorima na razini kernela. U budućnosti će započeti rad na prijenosu upravljačkih komponenti kao što su winex32.drv i winemac.drv na Win11u.
    • Upravljački program Vulkan podržava specifikaciju Vulkan grafičkog API-ja 1.2.201.
    • Omogućena podrška za ispis šrafiranih geometrijskih objekata putem Direct2D API-ja, uz mogućnost provjere je li klik pogodio (hit-test).
    • Direct2D API pruža početnu podršku za vizualne efekte primijenjene pomoću sučelja ID2D1Effect.
    • Direct2D API je dodao podršku za ID2D1MultiThread sučelje, koje se koristi za organiziranje ekskluzivnog pristupa resursima u aplikacijama s više niti.
    • WindowsCodecs skup biblioteka pruža podršku za dekodiranje slika u WMP (Windows Media Photo) formatu i kodiranje slika u DDS (DirectDraw Surface) formatu. Više ne podržavamo kodiranje slika u ICNS formatu (za macOS), koji nije podržan u sustavu Windows.
  • Direct3D
    • Novi mehanizam za renderiranje značajno je poboljšan, prevodeći Direct3D pozive na Vulkan grafički API. U većini situacija, razina podrške za Direct3D 10 i 11 u motoru temeljenom na Vulkanu dovedena je u jednaku razinu sa starijim motorom temeljenim na OpenGL-u. Da biste omogućili mehanizam za prikazivanje Vulkan, postavite varijablu registra Direct3D "renderer" na "vulkan".
    • Implementirane su mnoge značajke Direct3D 10 i 11, uključujući odgođene kontekste, objekte stanja koji rade u kontekstu uređaja, stalne pomake u međuspremnicima, brisanje pogleda teksture izvan reda, kopiranje podataka između resursa u formatima bez tipa (DXGI_FORMAT_BC3_TYPELESS, DXGI_FORMAT_R32G32B32A32_TYPELESS) itd. .
    • Dodana podrška za konfiguracije s više monitora, što vam omogućuje odabir monitora za prikaz Direct3D aplikacije u načinu rada preko cijelog zaslona.
    • DXGI API pruža gama korekciju zaslona, ​​koju mogu koristiti aplikacije temeljene na Direct3D 10 i 11 za promjenu svjetline zaslona. Omogućeno dohvaćanje virtualnih brojača međuspremnika okvira (SwapChain).
    • Direct3D 12 dodaje podršku za korijenske potpise verzije 1.1.
    • U kodu za renderiranje putem Vulkan API-ja, poboljšana je učinkovitost obrade upita kada sustav podržava proširenje VK_EXT_host_query_reset.
    • Dodana je mogućnost izlaza virtualnih međuspremnika okvira (SwapChain) putem GDI-ja ako se OpenGL ili Vulkan ne mogu koristiti za prikaz, na primjer, prilikom izlaza u prozor iz različitih procesa, na primjer, u programima koji se temelje na okviru CEF (Chromium Embedded Framework).
    • Kada koristite GLSL shader backend, "precizni" modifikator je osiguran za shader upute.
    • DirectDraw API dodaje podršku za 3D renderiranje u memoriju sustava pomoću softverskih uređaja kao što su "RGB", "MMX" i "Ramp".
    • Karte AMD Radeon RX 3M, AMD Radeon RX 5500/6800 XT/6800 XT, AMD Van Gogh, Intel UHD Graphics 6900 i NVIDIA GT 630 dodane su u Direct1030D bazu podataka grafičkih kartica.
    • Ključ “UseGLSL” je uklonjen iz registra HKEY_CURRENT_USER\Software\Wine\Direct3D, umjesto kojeg, počevši od Wine 5.0, morate koristiti “shader_backend”.
    • Za podršku Direct3D 12 sada vam je potrebna barem verzija 3 biblioteke vkd1.2d.
  • D3DX
    • Implementacija D3DX 10 ima poboljšanu podršku za okvir vizualnih efekata i dodanu podršku za Windows Media Photo format slike (JPEG XR)
    • Dodane su funkcije za stvaranje teksture u D3DX10, kao što je D3DX10CreateTextureFromMemory().
    • Softverska sučelja ID3DX10Sprite i ID3DX10Font djelomično su implementirana.
  • Zvuk i video
    • GStreamer dodaci za DirectShow i okvir Media Foundation kombinirani su u jednu zajedničku WineGStreamer pozadinu, koja bi trebala pojednostaviti razvoj novih API-ja za dekodiranje sadržaja.
    • Na temelju WineGStreamer pozadine, Windows Media objekti implementirani su za sinkrono i asinkrono čitanje.
    • Implementacija okvira Media Foundation dodatno je poboljšana, dodana je podrška za funkcionalnost IMFPMediaPlayer i alat za dodjelu uzoraka, a poboljšana je podrška za međuspremnike za renderiranje EVR i SAR.
    • Biblioteka wineqtdecoder, koja pruža dekoder za QuickTime format, je uklonjena (svi kodeci sada koriste GStreamer).
  • Uređaji za unos
    • Stog za ulazne uređaje koji podržavaju HID (Human Interface Devices) protokol značajno je poboljšan, pružajući mogućnosti kao što je analiziranje HID deskriptora, obrada HID poruka i pružanje mini-HID upravljačkih programa.
    • U pozadinama drivera winebus.sys poboljšan je prijevod opisa uređaja u HID poruke.
    • Dodan je novi DirectInput backend za joysticke koji podržavaju HID protokol. Implementirana je mogućnost korištenja povratnih efekata u joysticcima. Poboljšana upravljačka ploča joysticka. Optimizirana interakcija s uređajima kompatibilnim s XInputom. U WinMM-u je podrška za joystick premještena na DInput, umjesto korištenja pozadine evdev na Linuxu i IOHID na macOS IOHID. Stari upravljački program joysticka winejoystick.drv je uklonjen.
    • Modulu DInput dodani su novi testovi koji se temelje na korištenju virtualnih HID uređaja i ne zahtijevaju fizički uređaj.
  • Tekst i fontovi
    • Dodan objekt Font Set u DirectWrite.
    • RichEdit ispravno implementira TextHost sučelje.
  • Kernel (Windows kernel sučelja)
    • Prilikom pokretanja neidentificirane izvršne datoteke (kao što je 'wine foo.msi') u Wineu, sada se poziva start.exe, koji poziva rukovatelje povezane s vrstom datoteke.
    • Dodana podrška za mehanizme sinkronizacije NtAlertThreadByThreadId i NtWaitForAlertByThreadId, slično futexima u Linuxu.
    • Dodana podrška za NT debug objekte koji se koriste za debug funkcije jezgre.
    • Dodana podrška za dinamičke ključeve registra za spremanje podataka o izvedbi.
  • C Vrijeme izvođenja
    • C runtime implementira cijeli skup matematičkih funkcija, koje su uglavnom prenesene iz Musl biblioteke.
    • Sve CPU platforme pružaju ispravnu podršku za funkcije s pomičnim zarezom.
  • Značajke umrežavanja
    • Poboljšan način rada kompatibilnosti za Internet Explorer 11 (IE11), koji se sada prema zadanim postavkama koristi za obradu HTML dokumenata.
    • Biblioteka mshtml implementira ES6 JavaScript mod (ECMAScript 2015), koji pruža podršku za značajke kao što su izraz let i objekt Map.
    • Instalacija MSI paketa s dodacima Gecko motoru u Wine radni direktorij sada se vrši kada je to potrebno, a ne tijekom Wine ažuriranja.
    • Dodana podrška za DTLS protokol.
    • Implementirana je usluga NSI (Network Store Interface) koja pohranjuje i prenosi informacije o usmjeravanju i mrežnim sučeljima na računalu drugim servisima.
    • WinSock API rukovatelji kao što su setsockopt i getsockopt premješteni su u NTDLL i upravljački program afd.sys radi usklađivanja s Windows arhitekturom.
    • Datoteke Wineove vlastite mrežne baze podataka, kao što su /etc/protocols i /etc/networks, sada su instalirane u Wine radni direktorij, umjesto pristupa sličnim Unix bazama podataka.
  • Alternativne platforme
    • Dodana podrška za Apple opremu temeljenu na M1 ARM čipovima (Apple Silicon).
    • Podrška za značajke BCrypt i Secur32 na macOS-u sada zahtijeva instalaciju biblioteke GnuTLS.
    • 32-bitne izvršne datoteke za ARM platforme sada su izgrađene u načinu rada Thumb-2, slično Windowsu. Za učitavanje takvih datoteka koristi se predloader.
    • Za 32-bitne ARM platforme implementirana je podrška za iznimke odmotavanja.
    • Za FreeBSD, broj podržanih upita za sistemske informacije niske razine, kao što su status memorije i razina napunjenosti baterije, je proširen.
  • Ugrađene aplikacije i razvojni alati
    • Pomoćni program reg.exe dodao je podršku za 32- i 64-bitne preglede registra. Dodana podrška za kopiranje ključeva registra.
    • Uslužni program WineDump dodao je podršku za izbacivanje Windows metapodataka i prikaz detaljnih informacija o unosima CodeView.
    • Wine Debugger (winedbg) pruža mogućnost debugiranja 32-bitnih procesa iz 64-bitnog debuggera.
    • IDL kompajleru (widl) dodana je mogućnost učitavanja biblioteka ugrađenih u PE datoteke, omogućena je podrška za atribute i konstrukcije specifične za WinRT, a implementirano je i pretraživanje biblioteka specifičnih za platformu.
  • Montažni sustav
    • U direktorijima specifičnim za arhitekturu, biblioteke se sada spremaju s nazivima koji odražavaju arhitekturu i vrstu izvršne datoteke, na primjer, 'i386-windows' za PE format i 'x86_64-unix' za unix biblioteke, dopuštajući podršku za različite arhitekture u jednu Wine instalaciju i omogućiti unakrsnu kompilaciju Wineliba.
    • Za postavljanje opcije u zaglavljima PE datoteka koja kontrolira prijelaz na korištenje izvornih DLL-ova, zastavica '—prefer-native option' je dodana u winebuild (obrada DLL_WINE_PREATTACH u DllMain je zaustavljena).
    • Dodana podrška za verziju 4 Dwarf formata podataka za otklanjanje pogrešaka, koji se sada koristi prema zadanim postavkama pri izgradnji Wine biblioteka.
    • Dodana opcija izrade '—enable-build-id' za spremanje jedinstvenih identifikatora izrade u izvršne datoteke.
    • Dodana podrška za korištenje Clang prevoditelja u MSVC kompatibilnom načinu rada.
  • Miscelanea
    • Imena tipičnih direktorija u korisničkoj ljusci (Windows Shell) dana su prema shemi koja se koristi počevši od Windows Vista, tj. Umjesto 'My Documents', sada se kreira direktorij 'Documents', a većina podataka sprema se u direktorij 'AppData'.
    • Podrška za specifikaciju OpenCL 1.2 dodana je sloju knjižnice OpenCL.
    • Upravljački program WinSpool dodao je podršku za različite veličine stranica prilikom ispisa.
    • Dodana početna podrška za MSDASQL, pružatelja Microsoft OLE DB za ODBC upravljačke programe.
    • Wine Mono engine s implementacijom .NET platforme ažuriran je na izdanje 7.0.0.
    • Unicode podaci ažurirani su na Unicode 14 specifikaciju.
    • Izvorno stablo uključuje biblioteke Faudio, GSM, LCMS2, LibJPEG, LibJXR, LibMPG123, LibPng, LibTiff, LibXml2, LibXslt i Zlib, koje su kompilirane u PE formatu i ne zahtijevaju verziju u Unix formatu. U isto vrijeme, te se biblioteke također mogu uvesti iz sustava za korištenje vanjskih sklopova umjesto ugrađenih PE opcija.

Izvor: opennet.ru

Dodajte komentar