Stabilna izdaja Wine 7.0

Po letu razvoja in 30 poskusnih različicah je bila predstavljena stabilna izdaja odprte implementacije API-ja Win32 - Wine 7.0, ki je vključevala več kot 9100 sprememb. Ključni dosežki nove različice vključujejo prevod večine modulov Wine v format PE, podporo za teme, razširitev sklada za igralne palice in vnosne naprave z vmesnikom HID ter implementacijo arhitekture WoW64 za izvajanje 32-bitnih programov v 64-bitno okolje.

Wine je potrdil polno delovanje 5156 (pred letom dni 5049) programov za Windows, še 4312 (pred letom dni 4227) programov odlično deluje z dodatnimi nastavitvami in zunanjimi DLL-ji. 3813 programov (pred 3703 leti) ima manjše težave pri delovanju, ki ne motijo ​​uporabe glavnih funkcij aplikacij.

Ključne novosti v Wine 7.0:

  • Moduli v formatu PE
    • Skoraj vsi DLL-ji so bili pretvorjeni tako, da namesto ELF uporabljajo obliko izvedljive datoteke PE (Portable Executable, ki se uporablja v sistemu Windows). Uporaba PE rešuje težave s podporo različnim shemam za zaščito pred kopiranjem, ki preverjajo identiteto sistemskih modulov na disku in v pomnilniku.
    • Izvedena je bila zmožnost interakcije modulov PE s knjižnicami Unix z uporabo standardnega sistemskega klica jedra NT, ki vam omogoča, da skrijete dostop do kode Unix pred razhroščevalniki Windows in spremljate registracijo niti.
    • Vgrajeni DLL-ji se zdaj nalagajo le, če je na disku ustrezna datoteka PE, ne glede na to, ali gre za pravo knjižnico ali škrbino. Ta sprememba omogoča aplikaciji, da vedno vidi pravilno vezavo na datoteke PE. Če želite onemogočiti to vedenje, lahko uporabite spremenljivko okolja WINEBOOTSTRAPMODE.
  • WoW64
    • Implementirana je bila arhitektura WoW64 (64-bitni Windows-on-Windows), ki vam omogoča zagon 32-bitnih aplikacij Windows v 64-bitnih procesih Unix. Podpora se izvaja s povezavo sloja, ki prevede 32-bitne sistemske klice NT v 64-bitne klice v NTDLL.
    • Plasti WoW64 so pripravljene za večino knjižnic Unix in omogočajo 32-bitnim modulom PE dostop do 64-bitnih knjižnic Unix. Ko bodo vsi moduli pretvorjeni v format PE, bo mogoče zagnati 32-bitne aplikacije Windows brez namestitve 32-bitnih knjižnic Unix.
  • Teme
    • Podpora tem je bila implementirana. Vključene so oblikovalske teme »Light«, »Blue« in »Classic Blue«, ki jih lahko izberete prek konfiguratorja WineCfg.
    • Dodana možnost prilagajanja videza vseh kontrolnikov vmesnika prek tem. Videz elementov se po spremembi teme oblikovanja samodejno posodobi.
    • Podpora za teme je bila dodana vsem vgrajenim aplikacijam Wine. Aplikacije so prilagojene zaslonom z visoko gostoto slikovnih pik (High DPI).
  • Grafični podsistem
    • Dodana je bila nova knjižnica Win32u, ki vključuje dele knjižnic GDI32 in USER32, povezane z grafično obdelavo in upravljanjem oken na ravni jedra. V prihodnosti se bo začelo delo na prenosu komponent gonilnika, kot sta winex32.drv in winemac.drv, na Win11u.
    • Gonilnik Vulkan podpira specifikacijo Vulkan graphics API 1.2.201.
    • Zagotovljena podpora za izpis šrafiranih geometrijskih objektov prek API-ja Direct2D z možnostjo preverjanja, ali klik zadene (test zadetkov).
    • Direct2D API zagotavlja začetno podporo za vizualne učinke, uporabljene z vmesnikom ID2D1Effect.
    • Direct2D API je dodal podporo za vmesnik ID2D1MultiThread, ki se uporablja za organizacijo ekskluzivnega dostopa do virov v večnitnih aplikacijah.
    • Nabor knjižnic WindowsCodecs nudi podporo za dekodiranje slik v formatu WMP (Windows Media Photo) in kodiranje slik v formatu DDS (DirectDraw Surface). Ne podpiramo več kodiranja slik v formatu ICNS (za macOS), ki ni podprt v sistemu Windows.
  • Direct3D
    • Nov mehanizem upodabljanja je bil bistveno izboljšan, saj klice Direct3D prevaja v grafični API Vulkan. V večini primerov je bila raven podpore za Direct3D 10 in 11 v motorju, ki temelji na Vulkanu, enaka kot pri starejšem motorju, ki temelji na OpenGL. Če želite omogočiti mehanizem upodabljanja Vulkan, nastavite spremenljivko registra Direct3D »renderer« na »vulkan«.
    • Izvedenih je veliko funkcij Direct3D 10 in 11, vključno z odloženimi konteksti, objekti stanja, ki delujejo v kontekstu naprave, trajni odmiki v medpomnilnikih, brisanje pogledov teksture, ki niso v redu, kopiranje podatkov med viri v formatih brez tipa (DXGI_FORMAT_BC3_TYPELESS, DXGI_FORMAT_R32G32B32A32_TYPELESS) itd. .
    • Dodana podpora za konfiguracije z več monitorji, kar vam omogoča, da izberete monitor za prikaz aplikacije Direct3D v celozaslonskem načinu.
    • API DXGI zagotavlja korekcijo gama zaslona, ​​ki jo lahko uporabljajo aplikacije, ki temeljijo na Direct3D 10 in 11, za spreminjanje svetlosti zaslona. Omogočeno pridobivanje števcev virtualnih medpomnilnikov okvirjev (SwapChain).
    • Direct3D 12 dodaja podporo za korenske podpise različice 1.1.
    • V kodi upodabljanja prek API-ja Vulkan je bila učinkovitost obdelave poizvedb izboljšana, ko sistem podpira razširitev VK_EXT_host_query_reset.
    • Dodana možnost izpisa navideznih medpomnilnikov okvirjev (SwapChain) prek GDI, če OpenGL ali Vulkan ni mogoče uporabiti za prikaz, na primer pri izpisu v okno iz različnih procesov, na primer v programih, ki temeljijo na ogrodju CEF (Chromium Embedded Framework).
    • Pri uporabi zaledja senčil GLSL je za navodila senčil zagotovljen "natančen" modifikator.
    • DirectDraw API doda podporo za 3D upodabljanje v sistemski pomnilnik z uporabo programskih naprav, kot so "RGB", "MMX" in "Ramp".
    • Kartice AMD Radeon RX 3M, AMD Radeon RX 5500/6800 XT/6800 XT, AMD Van Gogh, Intel UHD Graphics 6900 in NVIDIA GT 630 so bile dodane v zbirko podatkov o grafičnih karticah Direct1030D.
    • Ključ »UseGLSL« je bil odstranjen iz registra HKEY_CURRENT_USER\Software\Wine\Direct3D, namesto katerega morate od Wine 5.0 dalje uporabljati »shader_backend«.
    • Za podporo Direct3D 12 zdaj potrebujete vsaj različico 3 knjižnice vkd1.2d.
  • D3DX
    • Izvedba D3DX 10 je izboljšala podporo za ogrodje vizualnih učinkov in dodala podporo za format slike Windows Media Photo (JPEG XR)
    • Dodane funkcije za ustvarjanje teksture, ki so na voljo v D3DX10, kot je D3DX10CreateTextureFromMemory().
    • Programska vmesnika ID3DX10Sprite in ID3DX10Font sta bila delno implementirana.
  • Zvok in video
    • Dodatki GStreamer za DirectShow in ogrodje Media Foundation so združeni v eno skupno zaledje WineGStreamer, ki naj bi poenostavilo razvoj novih API-jev za dekodiranje vsebine.
    • Na podlagi zaledja WineGStreamer so objekti Windows Media implementirani za sinhrono in asinhrono branje.
    • Implementacija ogrodja Media Foundation je bila dodatno izpopolnjena, dodana je bila podpora za funkcionalnost IMFPMediaPlayer in razdeljevalnik vzorcev ter izboljšana je bila podpora za medpomnilnike upodabljanja EVR in SAR.
    • Knjižnica wineqtdecoder, ki ponuja dekoder za format QuickTime, je bila odstranjena (vsi kodeki zdaj uporabljajo GStreamer).
  • Vhodne naprave
    • Sklad za vhodne naprave, ki podpirajo protokol HID (Human Interface Devices), je bil bistveno izboljšan in zagotavlja zmožnosti, kot je razčlenjevanje deskriptorjev HID, obdelava sporočil HID in zagotavljanje mini-HID gonilnikov.
    • V ozadju gonilnika winebus.sys je bil izboljšan prevod opisov naprav v sporočila HID.
    • Dodano novo zaledje DirectInput za igralne palice, ki podpirajo protokol HID. Izvedena je bila možnost uporabe povratnih učinkov v igralnih palicah. Izboljšana nadzorna plošča z igralno palico. Optimizirana interakcija z napravami, združljivimi z XInput. V WinMM je bila podpora za igralno palico premaknjena v DInput namesto uporabe zaledja evdev v Linuxu in IOHID v macOS IOHID. Stari gonilnik igralne palice winejoystick.drv je bil odstranjen.
    • V modul DInput so bili dodani novi testi, ki temeljijo na uporabi virtualnih naprav HID in ne zahtevajo fizične naprave.
  • Besedilo in pisave
    • V DirectWrite je dodan predmet Font Set.
    • RichEdit pravilno izvaja vmesnik TextHost.
  • Jedro (vmesniki jedra Windows)
    • Pri zagonu neidentificirane izvedljive datoteke (kot je 'wine foo.msi') v Wineu se zdaj pokliče start.exe, ki prikliče programe za obravnavo, povezane z vrsto datoteke.
    • Dodana podpora za sinhronizacijske mehanizme NtAlertThreadByThreadId in NtWaitForAlertByThreadId, podobno futexom v Linuxu.
    • Dodana podpora za objekte za odpravljanje napak NT, ki se uporabljajo za odpravljanje napak v funkcijah jedra.
    • Dodana podpora za dinamične registrske ključe za shranjevanje podatkov o zmogljivosti.
  • C Runtime
    • Izvajalno okolje C implementira celoten nabor matematičnih funkcij, ki so večinoma prenesene iz knjižnice Musl.
    • Vse platforme CPE zagotavljajo pravilno podporo za funkcije s plavajočo vejico.
  • Omrežne funkcije
    • Izboljšan način združljivosti za Internet Explorer 11 (IE11), ki se zdaj privzeto uporablja za obdelavo dokumentov HTML.
    • Knjižnica mshtml izvaja način ES6 JavaScript (ECMAScript 2015), ki zagotavlja podporo za funkcije, kot sta izraz let in objekt Map.
    • Namestitev paketov MSI z dodatki mehanizma Gecko v delovni imenik Wine se zdaj izvaja po potrebi in ne med posodobitvijo Wine.
    • Dodana podpora za protokol DTLS.
    • Implementirana je storitev NSI (Network Store Interface), ki shranjuje in posreduje informacije o usmerjanju in omrežnih vmesnikih na računalniku drugim storitvam.
    • Obdelovalci API-ja WinSock, kot sta setsockopt in getsockopt, so bili premaknjeni v NTDLL in gonilnik afd.sys, da se uskladijo z arhitekturo Windows.
    • Wineove lastne datoteke omrežne baze podatkov, kot sta /etc/protocols in /etc/networks, so zdaj nameščene v delovni imenik Wine, namesto da bi dostopale do podobnih zbirk podatkov Unix.
  • Alternativne platforme
    • Dodana podpora za opremo Apple, ki temelji na čipih M1 ARM (Apple Silicon).
    • Podpora za funkcije BCrypt in Secur32 v sistemu macOS zdaj zahteva namestitev knjižnice GnuTLS.
    • 32-bitne izvedljive datoteke za platforme ARM so zdaj zgrajene v načinu Thumb-2, podobno kot Windows. Za nalaganje takih datotek se uporablja prednalagalnik.
    • Za 32-bitne platforme ARM je bila implementirana podpora za odvijanje izjem.
    • Za FreeBSD je bilo razširjeno število podprtih poizvedb za sistemske informacije nizke ravni, kot sta stanje pomnilnika in raven napolnjenosti baterije.
  • Vgrajene aplikacije in razvojna orodja
    • Pripomoček reg.exe je dodal podporo za 32- in 64-bitne poglede registra. Dodana podpora za kopiranje registrskih ključev.
    • Pripomoček WineDump je dodal podporo za izpis metapodatkov sistema Windows in prikaz podrobnih informacij o vnosih CodeView.
    • Razhroščevalnik Wine (winedbg) omogoča odpravljanje napak v 32-bitnih procesih iz 64-bitnega razhroščevalnika.
    • Prevajalniku IDL (widl) je bila dodana možnost nalaganja knjižnic, vgrajenih v datoteke PE, zagotovljena je bila podpora za atribute in konstrukcije, specifične za WinRT, in implementirano iskanje po knjižnicah, specifičnih za platformo.
  • Montažni sistem
    • V imenikih, specifičnih za arhitekturo, so knjižnice zdaj shranjene z imeni, ki odražajo arhitekturo in tip izvršljive datoteke, kot je 'i386-windows' za format PE in 'x86_64-unix' za knjižnice unix, kar omogoča podporo za različne arhitekture v enem samem Wineu. namestitev in zagotoviti navzkrižno prevajanje Wineliba.
    • Za nastavitev možnosti v glavah datotek PE, ki nadzira prehod na uporabo izvornih DLL-jev, je bila v winebuild dodana zastavica '--prefer-native option' (obdelava DLL_WINE_PREATTACH v DllMain je bila ustavljena).
    • Dodana podpora za različico 4 formata podatkov za odpravljanje napak Dwarf, ki se zdaj privzeto uporablja pri gradnji knjižnic Wine.
    • Dodana možnost gradnje '—enable-build-id' za shranjevanje edinstvenih identifikatorjev gradnje v izvršljive datoteke.
    • Dodana podpora za uporabo prevajalnika Clang v združljivem načinu MSVC.
  • Miscellanea
    • Imena tipičnih imenikov v uporabniški lupini (Windows Shell) so podana shemi, ki se uporablja začenši z operacijskim sistemom Windows Vista, tj. Namesto 'Moji dokumenti' je zdaj ustvarjen imenik 'Dokumenti', večina podatkov pa je shranjena v imeniku 'AppData'.
    • Podpora za specifikacijo OpenCL 1.2 je bila dodana plasti knjižnice OpenCL.
    • Gonilnik WinSpool ima dodano podporo za različne velikosti strani pri tiskanju.
    • Dodana začetna podpora za MSDASQL, ponudnika Microsoft OLE DB za gonilnike ODBC.
    • Motor Wine Mono z implementacijo platforme .NET je bil posodobljen na izdajo 7.0.0.
    • Podatki Unicode so posodobljeni na specifikacijo Unicode 14.
    • Izvorno drevo vključuje knjižnice Faudio, GSM, LCMS2, LibJPEG, LibJXR, LibMPG123, LibPng, LibTiff, LibXml2, LibXslt in Zlib, ki so prevedene v formatu PE in ne zahtevajo različice v formatu Unix. Hkrati je mogoče te knjižnice tudi uvoziti iz sistema za uporabo zunanjih sklopov namesto vgrajenih možnosti PE.

Vir: opennet.ru

Dodaj komentar