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, koje je uključilo više od 9100 izmjena. Ključna dostignuća nove verzije uključuju prevođenje većine Wine modula u PE format, podršku za teme, proširenje steka za džojstike i ulazne uređaje sa HID interfejsom i implementaciju WoW64 arhitekture za pokretanje 32-bitnih programa u 64-bitno okruženje.

Wine je potvrdio potpuni rad 5156 (prije godinu dana 5049) programa za Windows, još 4312 (prije godinu dana 4227) programa rade savršeno sa dodatnim postavkama i eksternim DLL-ovima. 3813 programa (prije 3703 godine) ima manje operativne probleme koji ne ometaju korištenje glavnih funkcija aplikacija.

Ključne inovacije u Wine 7.0:

  • Moduli u PE formatu
    • Skoro svi DLL-ovi su konvertovani da koriste PE (Portable Executable, koristi se u Windows-u) format izvršne datoteke umesto ELF. Upotreba PE rješava probleme s podrškom različitih šema zaštite od kopiranja koje provjeravaju identitet sistemskih modula na disku iu memoriji.
    • Implementirana je mogućnost interakcije PE modula sa Unix bibliotekama pomoću standardnog poziva sistema jezgra NT, što vam omogućava da sakrijete pristup Unix kodu od Windows debuggera i nadgledate registraciju niti.
    • Ugrađeni DLL-ovi se sada učitavaju samo ako postoji odgovarajuća PE datoteka na disku, bez obzira da li je to prava biblioteka ili stub. Ova promjena omogućava aplikaciji da uvijek vidi ispravno vezivanje za PE datoteke. Da biste onemogućili ovo ponašanje, možete koristiti varijablu okruženja WINEBOOTSTRAPMODE.
  • WoW64
    • Implementirana je WoW64 arhitektura (64-bitni Windows-na-Windows) koja vam omogućava pokretanje 32-bitnih Windows aplikacija u 64-bitnim Unix procesima. Podrška je implementirana kroz povezivanje sloja koji prevodi 32-bitne NT sistemske pozive u 64-bitne pozive NTDLL-u.
    • WoW64 slojevi su pripremljeni za većinu Unix biblioteka i dozvoljavaju 32-bitnim PE modulima da pristupe 64-bitnim Unix bibliotekama. Kada svi moduli budu konvertovani u PE format, biće moguće pokretati 32-bitne Windows aplikacije bez instaliranja 32-bitnih Unix biblioteka.
  • Teme
    • Podrška za temu je implementirana. Uključene su teme dizajna “Light”, “Blue” i “Classic Blue”, koje se mogu odabrati putem WineCfg konfiguratora.
    • Dodata mogućnost prilagođavanja izgleda svih kontrola interfejsa kroz teme. Izgled elemenata se automatski ažurira nakon promjene teme dizajna.
    • Podrška za teme je dodana svim ugrađenim Wine aplikacijama. Aplikacije su prilagođene ekranima visoke gustine piksela (High DPI).
  • Grafički podsistem
    • Dodata je nova Win32u biblioteka koja uključuje dijelove GDI32 i USER32 biblioteka koje se odnose na grafičku obradu i upravljanje prozorima na nivou kernela. U budućnosti će započeti rad na prenosu komponenti drajvera kao što su winex32.drv i winemac.drv na Win11u.
    • Vulkan drajver podržava Vulkan grafičku API specifikaciju 1.2.201.
    • Obezbeđena podrška za izlaz šrafiranih geometrijskih objekata preko Direct2D API-ja, sa mogućnošću provere da li klik pogađa (hit-test).
    • Direct2D API pruža početnu podršku za vizuelne efekte primenjene korišćenjem interfejsa ID2D1Effect.
    • Direct2D API je dodao podršku za ID2D1MultiThread interfejs, koji se koristi za organizovanje ekskluzivnog pristupa resursima u višenitnim aplikacijama.
    • WindowsCodecs set 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), što nije podržano u Windowsu.
  • Direct3D
    • Novi mehanizam za renderiranje je značajno poboljšan, prevodeći Direct3D pozive na Vulkan grafički API. U većini situacija, nivo podrške za Direct3D 10 i 11 u motoru zasnovanom na Vulkanu doveden je u paritet sa starijim motorom zasnovanim na OpenGL-u. Da biste omogućili Vulkan rendering engine, postavite Direct3D varijablu registra "renderer" na "vulkan".
    • Implementirane su mnoge karakteristike Direct3D 10 i 11, uključujući odgođene kontekste, objekte stanja koji rade u kontekstu uređaja, trajna odstupanja u međuspremnicima, brisanje pregleda tekstura koji nisu u redu, kopiranje podataka između resursa u formatima bez tipa (DXGI_FORMAT_BC3_TYPELESS, DXGI_FORMAT_R32G32), itd. .
    • Dodata podrška za konfiguracije sa više monitora, što vam omogućava da odaberete monitor za prikaz Direct3D aplikacije u režimu celog ekrana.
    • DXGI API pruža korekciju gama ekrana, koju mogu koristiti aplikacije zasnovane na Direct3D 10 i 11 za promjenu svjetline ekrana. Omogućeno preuzimanje brojača virtuelnih okvira bafera (SwapChain).
    • Direct3D 12 dodaje podršku za korijenske potpise verzije 1.1.
    • U kodu za prikazivanje preko Vulkan API-ja, poboljšana je efikasnost obrade upita kada sistem podržava ekstenziju VK_EXT_host_query_reset.
    • Dodata je mogućnost izlaza virtuelnih okvira bafera (SwapChain) putem GDI-a ako se OpenGL ili Vulkan ne mogu koristiti za prikaz, na primjer, prilikom izlaza u prozor iz različitih procesa, na primjer, u programima baziranim na CEF (Chromium Embedded Framework) okviru.
    • Kada koristite pozadinu GLSL shadera, osiguran je "precizan" modifikator za upute za shader.
    • DirectDraw API dodaje podršku za 3D prikazivanje u sistemsku memoriju pomoću softverskih uređaja kao što su "RGB", "MMX" i "Ramp".
    • AMD Radeon RX 3M, AMD Radeon RX 5500/6800 XT/6800 XT, AMD Van Gogh, Intel UHD Graphics 6900 i NVIDIA GT 630 kartice su dodate 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, trebate koristiti “shader_backend”.
    • Da biste podržali Direct3D 12, sada vam je potrebna barem verzija 3 vkd1.2d biblioteke.
  • D3DX
    • Implementacija D3DX 10 je poboljšala podršku za okvir vizuelnih efekata i dodala podršku za Windows Media Photo format slike (JPEG XR)
    • Dodane funkcije za kreiranje teksture koje se nalaze u D3DX10, kao što je D3DX10CreateTextureFromMemory().
    • Softverski interfejsi ID3DX10Sprite i ID3DX10Font su djelimično implementirani.
  • Zvuk i video
    • GStreamer dodaci za DirectShow i Media Foundation okvir su kombinovani u jedan zajednički WineGStreamer backend, što bi trebalo da pojednostavi razvoj novih API-ja za dekodiranje sadržaja.
    • Bazirani na pozadinu WineGStreamer, Windows Media objekti su implementirani za sinhrono i asinhrono čitanje.
    • Implementacija Media Foundation okvira je dodatno poboljšana, dodata je podrška za IMFPMediaPlayer funkcionalnost i alokator uzoraka, a poboljšana je podrška za bafere za renderiranje EVR i SAR.
    • Biblioteka wineqtdecoder, koja obezbeđuje 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 je značajno poboljšan, pružajući mogućnosti kao što su raščlanjivanje HID deskriptora, obrada HID poruka i obezbeđivanje mini-HID drajvera.
    • U pozadini drivera winebus.sys, poboljšan je prevod opisa uređaja u HID poruke.
    • Dodan je novi DirectInput backend za džojstike koji podržavaju HID protokol. Implementirana je mogućnost korištenja povratnih efekata u džojsticima. Poboljšana kontrolna tabla džojstika. Optimizirana interakcija sa XInput kompatibilnim uređajima. U WinMM-u, podrška za džojstik je premještena na DInput, umjesto korištenja evdev backend-a na Linuxu i IOHID-a na macOS IOHID-u. Stari upravljački program džojstika winejoystick.drv je uklonjen.
    • Dodati su novi testovi DInput modulu, zasnovani na korišćenju virtuelnih HID uređaja i koji ne zahtevaju fizički uređaj.
  • Tekst i fontovi
    • Dodan objekt Font Set u DirectWrite.
    • RichEdit ispravno implementira TextHost interfejs.
  • Kernel (Windows Kernel Interface)
    • Prilikom pokretanja neidentificirane izvršne datoteke (kao što je 'wine foo.msi') u Wine-u, sada se poziva start.exe, koji poziva rukovaoce povezane s tipom datoteke.
    • Dodata podrška za mehanizme sinhronizacije NtAlertThreadByThreadId i NtWaitForAlertByThreadId, slično futeksima u Linuxu.
    • Dodata podrška za NT debug objekte koji se koriste za otklanjanje grešaka u funkcijama kernela.
    • Dodata podrška za dinamičke ključeve registratora za spremanje podataka o performansama.
  • C Runtime
    • C runtime implementira puni 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 režim kompatibilnosti za Internet Explorer 11 (IE11), koji se sada podrazumevano koristi za obradu HTML dokumenata.
    • Biblioteka mshtml implementira ES6 JavaScript način rada (ECMAScript 2015), koji pruža podršku za funkcije kao što su let izraz i objekt Map.
    • Instalacija MSI paketa sa dodacima Gecko engine-u u Wine radni direktorij sada se vrši kada je to potrebno, a ne tokom ažuriranja Wine-a.
    • Dodata podrška za DTLS protokol.
    • Implementiran je NSI (Network Store Interface) servis koji čuva i prenosi informacije o rutiranju i mrežnim interfejsima na računaru na druge servise.
    • WinSock API rukovaoci kao što su setsockopt i getsockopt premješteni su u NTDLL i afd.sys drajver kako bi se prilagodili Windows arhitekturi.
    • Wine-ove datoteke 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
    • Dodata podrška za Apple opremu baziranu na M1 ARM čipovima (Apple Silicon).
    • Podrška za BCrypt i Secur32 funkcije na macOS-u sada zahtijeva instalaciju GnuTLS biblioteke.
    • 32-bitni izvršni programi za ARM platforme su sada napravljeni u Thumb-2 modu, slično Windows-u. Preloader se koristi za učitavanje takvih datoteka.
    • Za 32-bitne ARM platforme implementirana je podrška za odmotavanje izuzetaka.
    • Za FreeBSD, broj podržanih upita za sistemske informacije niskog nivoa, kao što su status memorije i nivo napunjenosti baterije, je proširen.
  • Ugrađene aplikacije i razvojni alati
    • Uslužni program reg.exe je dodao podršku za 32- i 64-bitne prikaze registra. Dodata podrška za kopiranje ključeva registratora.
    • Uslužni program WineDump je dodao podršku za izbacivanje Windows metapodataka i prikaz detaljnih informacija o CodeView unosima.
    • Wine Debugger (winedbg) pruža mogućnost otklanjanja grešaka u 32-bitnim procesima iz 64-bitnog debuggera.
    • Mogućnost učitavanja biblioteka ugrađenih u PE fajlove dodata je IDL kompajleru (widl), obezbeđena je podrška za WinRT-specifične atribute i konstrukcije, a implementirano je i pretraživanje biblioteke specifično za platformu.
  • Sistem montaže
    • U direktorijumima specifičnim za arhitekturu, biblioteke se sada spremaju s imenima koja odražavaju arhitekturu i tip izvršne datoteke, kao što su 'i386-windows' za PE format i 'x86_64-unix' za unix biblioteke, omogućavajući podršku za različite arhitekture u jednom Wineu instalaciju i obezbijediti unakrsnu kompilaciju Winelib-a.
    • Da biste postavili opciju u zaglavljima PE datoteka koja kontrolira prijelaz na korištenje izvornih DLL-ova, oznaka '--prefer-native option' je dodana u winebuild (obrada DLL_WINE_PREATTACH u DllMain-u je zaustavljena).
    • Dodata podrška za verziju 4 formata podataka za otklanjanje grešaka patuljaka, koji se sada koristi po defaultu kada se prave Wine biblioteke.
    • Dodata opcija izgradnje '—enable-build-id' za spremanje jedinstvenih identifikatora izgradnje u izvršnim datotekama.
    • Dodata podrška za korišćenje Clang kompajlera u MSVC kompatibilnom režimu.
  • Разное
    • Nazivi tipičnih direktorija u korisničkoj ljusci (Windows Shell) su dati šemi koja se koristi počevši od Windows Vista, tj. Umjesto 'Moji dokumenti', sada je kreiran direktorij 'Dokumenti', a većina podataka se pohranjuje u direktorij 'AppData'.
    • Podrška za OpenCL 1.2 specifikaciju je dodana sloju OpenCL biblioteke.
    • WinSpool drajver je dodao podršku za različite veličine stranica prilikom štampanja.
    • Dodata početna podrška za MSDASQL, Microsoft OLE DB provajder za ODBC drajvere.
    • Wine Mono engine sa implementacijom .NET platforme je ažuriran u izdanje 7.0.0.
    • Unicode podaci su ažurirani na Unicode 14 specifikaciju.
    • Izvorno stablo uključuje biblioteke Faudio, GSM, LCMS2, LibJPEG, LibJXR, LibMPG123, LibPng, LibTiff, LibXml2, LibXslt i Zlib, koje su kompajlirane u PE formatu i ne zahtijevaju verziju u Unix formatu. U isto vrijeme, ove biblioteke se također mogu uvesti iz sistema kako bi se koristile eksterne sklopove umjesto ugrađenih PE opcija.

izvor: opennet.ru

Dodajte komentar