Wine 9.0:n vakaa julkaisu

Vuoden kehitystyön ja 26 kokeellisen version jälkeen esiteltiin vakaa julkaisu Win32 API:n avoimesta toteutuksesta - Wine 9.0, joka sisälsi yli 7000 64 muutosta. Uuden version tärkeimpiä saavutuksia ovat WoW32-arkkitehtuurin käyttöönotto 64-bittisten ohjelmien ajamiseen 64-bittisessä ympäristössä, ajurien integrointi tukemaan Waylandia, tuki ARMXNUMX-arkkitehtuurille, DirectMusic API:n käyttöönotto ja tuki älykorteille.

Wine on vahvistanut 5336 (vuosi sitten 5266, kaksi vuotta sitten 5156, kolme vuotta sitten 5049) Windows-ohjelman täyden toiminnan, ja lisäksi 4397 (vuosi sitten 4370, kaksi vuotta sitten 4312, kolme vuotta sitten 4227) ohjelmaa toimii täydellisesti lisäasetukset ja ulkoinen DLL. 3943 ohjelman (vuosi sitten 3888, kaksi vuotta sitten 3813, kolme vuotta sitten 3703) toiminnassa on pieniä ongelmia, jotka eivät häiritse sovellusten päätoimintojen käyttöä.

Wine 9.0:n tärkeimmät innovaatiot:

  • Lisätty ohjain winewayland.drv, jonka avulla voit käyttää Wineä Wayland-protokollaan perustuvissa ympäristöissä ilman XWayland- ja X11-komponentteja. Kehityksen tavoitteena on tarjota puhdas Wayland-ympäristö, joka tukee Windows-sovelluksia, jotka eivät vaadi X11:een liittyvien pakettien asentamista, mikä mahdollistaa pelien paremman suorituskyvyn ja reagoivuuden poistamalla tarpeettomat kerrokset. Puhtaan Wayland-ympäristön käyttäminen Winelle poistaa myös X11:lle ominaiset turvallisuusongelmat (esimerkiksi epäluotettavat X11-pelit voivat vakoilla muita sovelluksia, koska X11-protokolla mahdollistaa pääsyn kaikkiin syöttötapahtumiin ja väärennettyjen näppäinpainallusten korvaamisen).

    Ohjain on merkitty kokeelliseksi ja kehitteillä olevaksi, mutta siinä on kuitenkin jo tuki monille ominaisuuksille, kuten ikkunoiden hallinta, useiden näyttöjen kanssa työskentely, tuki lähdön skaalaukseen korkean pikselitiheyden (korkea DPI) näytöillä, työskentely suhteelliset koordinaatit, kun seurataan hiiren liikettä ja tuki Vulkan-grafiikkasovellusliittymälle. Oletuksena ohjain ei ole aktiivinen, ja sen ottamiseksi käyttöön sinun tulee lisätä "wayland" rekisteriparametriin "HKCU\Software\Wine\Drivers" ja varmistaa, että DISPLAY-ympäristömuuttujaa ei ole asetettu: wine reg.exe add HKCU\ \Software\\Wine\\Drivers /v Grafiikka /d x11,wayland

  • Kaikki moduulit on muunnettu NT-järjestelmäkutsuliitännäksi sen sijaan, että ne soittaisivat suoria puheluita PE- ja Unix-kerrosten välillä, mikä merkitsee monien vuosien työtä kaikkien DLL-tiedostojen muuntamiseksi PE (Portable Executable) suoritettavaa tiedostomuotoa varten.
  • WoW64-kerroksen (64-bittinen Windows-on-Windows) kehittäminen, joka mahdollistaa 32-bittisten Windows-sovellusten ajamisen 64-bittisissä Unix-järjestelmissä, on jatkunut. Kaikki Unix-kirjastoja käyttävät moduulit käyttävät WoW64-järjestelmäkutsuja, jotta 32-bittiset PE-muotoiset moduulit voivat käyttää 64-bittisiä Unix-kirjastoja.

    Parannettu uusi WoW64-käynnistystila, joka suorittaa 32-bittistä koodia 64-bittisessä prosessissa (vanhassa WoW64-tilassa 32-bittiset sovellukset toimivat 32-bittisissä Unix-prosesseissa). Lisätty tuki uuden WoW64-tilan käyttöön macOS-alustalla. Koska uudessa WoW64-tilassa on joitain puutteita, kuten 16-bittisen tilan tuen puute ja heikentynyt OpenGL-suorituskyky ARB_buffer_storage-laajennuksen puutteen vuoksi, se ei ole vielä oletuksena käytössä ja vaatii rakentamisen vaihtoehdolla "—enable- archs=i386,x86_64 " määritysskriptissä.

  • Lisätty mahdollisuus suorittaa olemassa olevia Windows-suoritustiedostoja ARM64-arkkitehtuurijärjestelmissä. Mahdollisuus rakentaa Wine ARM64EC ABI:lle (ARM64 Emulation Compatible) ja tuki ARM64EC-moduulien lataamiselle on otettu käyttöön, ja sitä käytetään yksinkertaistamaan alun perin x64_86-arkkitehtuuriin kirjoitettujen sovellusten siirtoa ARM64-järjestelmiin tarjoamalla mahdollisuuden suorittaa yksittäisiä moduuleja x64_86:llä. koodi ARM64-ympäristössä emulaattorin avulla. Lisätty tuki ARM64X PE -tiedostomuodolle, joka mahdollistaa yhden suoritettavan tiedoston lataamisen x64/Arm64EC- ja ARM64-prosesseissa. Käyttöliittymä 32-bittisten x86-järjestelmien emulointiin on otettu käyttöön, mutta emulaattorin sisältävä kirjasto ei vielä sisälly Wine-pääpakettiin (voit käyttää ulkoista FEX-emulaattoria x86-koodin suorittamiseen ARM64-ympäristössä).
  • Grafiikka alijärjestelmä
    • PostScript-ohjain on suunniteltu uudelleen tukemaan Windows-muotoiltuja taustatulostustiedostoja, jotka tallentavat tietoja tulostustöistä. Suorat puhelut kuljettajalle Unix-ympäristöstä ovat poissuljettuja.
    • Tumman tilan tuki on lisätty WinRT-teemoihin. WineCfg:hen on lisätty asetus, joka mahdollistaa tumman käyttöliittymäsuunnittelun.
    • Vulkan-grafiikkasovellusliittymän ajuri on lisännyt tuen Vulkan 1.3.272 -spesifikaatiolle (8.0 tuettiin Wine 1.3.237:ssa).
    • GdiPlus-kirjaston toiminnot on optimoitu, mikä mahdollistaa paremman grafiikan suorituskyvyn.
  • Direct3D
    • Monisäikeisen komentovirran jäsentäminen keskeytetään, kun renderöintikomentoja ei käsitellä, mikä mahdollistaa energiankulutuksen vähentämisen yksisäikeisen käsittelyn tasolle suoritettaessa ohjelmia, jotka eivät vie koko komentovirran kaistanleveyttä.
    • Direct3D 10 sisältää tuen lisätehosteille.
    • Teki suorituskykyoptimointeja WineD3D-koodiin ja taustajärjestelmään käyttämällä Vulkan-grafiikkasovellusliittymää.
    • Vulkan API-pohjainen renderöintikoodi tarkistaa nyt, mitä ominaisuuksia laite tukee ja kertoo sovellukselle minkä tason Direct3D-toiminnallisuutta on saatavilla.
    • Toiminnot D3DXFillTextureTX ja D3DXFillCubeTextureTX on toteutettu.
    • Klassinen OpenGL ARB Shader -taustaohjelma on lisännyt tuen varjojen määrittämiseen ARB_fragment_program_shadow -laajennuksella.
    • D3DXLoadMeshHierarchyFromX ja vastaavat toiminnot ovat lisänneet tuen käyttäjätietojen lataamiseen ID3DXLoadUserData-liittymän avulla.
  • Ääni ja video
    • DirectMusic API:n alustavaa käyttöönottoa on ehdotettu. Lisätty tuki kokoelmille, soittimille ja ääninäytteille SoundFont-muodossa. Lisätty tuki Doppler-efektille. Testejä on toteutettu oikean toteutuksen tarkistamiseksi käytettäessä dmime-sekvensseria ja dmsynth MIDI -syntetisaattoria.
    • FluidSynth-kirjasto on sisäänrakennettu DirectMusic-sovellusliittymään käytettäväksi.
    • Tuki äänifonttien (SoundFont - näytepohjaiset synteesimuodot, joita käytetään MIDI-tiedostojen toistamiseen) lataamiseen DLS1- ja DLS2-muodoissa sekä Linuxissa käytettävässä SF2-muodossa on otettu käyttöön.
    • Lisätty mahdollisuus toistaa MIDI-sisältöä dmsynth-kirjaston avulla käyttämällä FluidSynth-ohjelmistosyntetisaattoria ja DirectSound API:ta äänen ulostuloon.
    • Lisätty dekooderi videolle Indeo IV50 -videokoodekkimuodossa.
  • DirectShow
    • DMO (DirectX Media Object) -komponentti, jossa on WMV (Windows Media Video) -muotoinen dekooderi, on toteutettu.
    • Lisätty äänenkaappaussuodatin (DirectShow Audio Capture Filter).
    • Äänivirtojen lisäksi MPEG-1 Stream Splitter (DirectShow MPEG-1 Stream Splitter) tukee nyt video- ja palveluvirtoja.
    • Suodatin videon dekoodaamiseen MPEG-1-muodossa (DirectShow MPEG-1 Video Decoder) on otettu käyttöön.
  • Syöttölaitteet
    • DirectInput tukee toimintokartoitusta, jonka avulla voit sitoa peliohjaimen painikkeita tiettyihin pelitoimintoihin.
  • Työpöytäintegrointi
    • Sidotukset on viety pääkäyttäjäympäristöön, jolloin Wine-apuohjelmassa toimivia sovelluksia voidaan kutsua protokollakäsittelijöiksi URL-osoitetta avattaessa (esimerkiksi käynnistää spotify.exe avattaessa linkkejä, kuten "spotify:user:spotify:playlist:848218482355482821").
    • Toteutti EDID-tietojen (Extended Display Identification Data) poimimisen liitetyn näytön parametrien, kuten laitteen nimen ja mallin, tiedoilla.
    • On mahdollista sulkea koko näytön tilassa käyttöön otettu työpöytäikkuna "Käynnistä"-valikon "Poistu työpöydältä" -painikkeella.
  • Kansainvälistyminen
    • Laajennettu tuki IME:lle (Input Method Editors). Yhteensopivuuden varmistamiseksi alkuperäisten Windows IME -toteutusten kanssa ja integroinnin parantamiseksi Linux IME:n kanssa on tehty töitä
    • Kielitietokantojen luominen locale.nls-muodossa on toimitettu Unicode CLDR (Unicode Common Locale Data Repository) -tietokannasta versiosta 44. Tuki lisäalueille bew-ID, blo-BJ, csw-CA, eli-EE, mic-CA , prg-PL on lisätty , skr-PK, tyv-RU, vmw-MZ, xnr-IN ja za-CN.
    • Käyttöliittymä on käännetty Georgian kielelle. Täydelliset käännökset tarjotaan 16 kielelle ja osittaiset käännökset 31 kielelle.
    • Unicode-merkkitaulukot on päivitetty vakioversioon 15.1.0. Aikavyöhyketietokanta on päivitetty.
  • Ydin (Windowsin ydinliittymät)
    • Windowsin oletusversio, joka on julkaistu, on Windows 10.
    • PE-muodossa oleville suoritettaville tiedostoille on toteutettu osoitetilan satunnaistamisen (ASLR) tuki, mutta koodin muistiin lataamisen osoitteet eivät ole vielä täysin satunnaistettuja.
    • Tuki heikosti fragmentoituneelle keolle (LFH, Low Fragmentation Heap) on otettu käyttöön, mikä on lisännyt muistin varaustoimintojen suorituskykyä.
    • Muistin varauksen tuki (paikkamerkki) on lisätty virtuaalisen muistin varausmekanismiin, jolloin sovellus voi varata tietyn alueen virtuaalimuistista tulevaa käyttöä varten.
    • Suoritettavien tiedostojen ja kirjastojen 64-bittiset latauslaitteet (loader ja preloader) on käännetty PIE (Position-Independent Executables) -muotoon vapauttamaan osan 32-bittisestä osoiteavaruudesta.
    • Oikea pinon purkaminen on tarjolla NT-järjestelmäkutsuille ja käyttäjien takaisinsoittoille.
  • Verkkoominaisuudet
    • MSHTML-moottori tukee "Cycle Collection" -jätteenkeräysmekanismia.
    • MSHTML on lisännyt tuen XMLHttpRequest-pyyntöjen synkroniselle käsittelylle.
    • jscript.dll lisää WeakMap-objektin tuen toimimaan avain/arvo-parien kokoelman kanssa, jossa avain on objekti, johon voi olla liitetty mielivaltainen arvo. Toteutettu menetelmät WeakMap.get(), WeakMap.delete(), WeakMap.clear() ja WeakMap.has().
    • Gecko-selainmoottori on päivitetty versioon 2.47.4.
    • Verkkorajapinnan tilan muutoksista ilmoittamisen tuki on otettu käyttöön.
  • Salaus ja turvallisuus
    • Ohjekorttien tuki on lisätty Winscard.dll-kirjastoon, joka on toteutettu PCSClite-järjestelmäkirjaston kautta.
    • BCrypt on lisännyt tuen Diffie-Hellman-avaimenvaihtoprotokollalle.
    • Negotiate-paketti on otettu käyttöön, ja se tarjoaa kerroksen SSPI (Security Support Provider Interface) -rajapinnan käyttämiselle SSP (Security Support Provider) -palveluntarjoajien käyttämiseen.
  • Sulautetut sovellukset
    • Wine Debugger (winedbg) käyttää Zydis-kirjastoa X86-koneen ohjeiden purkamiseen.
    • Mahdollisuus paljastaa vanhemmat Windows-versiot (pre-XP) 64-bittisillä alustoilla on lisätty WineCfg-käyttöliittymään, jonka avulla voit ajaa vanhoja sovelluksia WoW64-tilassa.
    • Kaikki sisäänrakennetut graafiset sovellukset näyttävät nyt virhetiedot erillisessä valintaikkunassa sen sijaan, että ne näyttäisivät ne konsolissa.
    • Systeminfo-ohjelma näyttää tiedot WMI (Windows Management Instrumentation) -tietokannasta.
    • Lisätty klist-sovellus Kerberos-lippujen näyttämiseen.
    • Taskkill-sovellus toteuttaa mahdollisuuden lopettaa lapsiprosessit väkisin.
    • Lisätty "/machine" -vaihtoehto käynnistysapuohjelmaan, jolla valitaan arkkitehtuuri, jota käytetään käytettäessä x86:ta ja ARM:ää tukevia hybridisuoritustiedostoja.
    • Suurin osa tehtävälistaohjelman toiminnoista on otettu käyttöön.
    • Lisätty findstr-sovelluksen perustoteutus.
  • Kehitystyökalut
    • WineDump-apuohjelma mahdollistaa Windowsin rekisteritiedostojen sisällön näyttämisen (REGF-muodossa) sekä kaikkien PE-hybriditiedostojen tukemien arkkitehtuurien (x86/ARM64) tiedot.
    • IDL-kääntäjä on lisännyt tuen "composable", "default_overload", "deprecated" ja "protected" attribuuteille.
    • Poistettu libwine.so, joka oli vanhentunut Wine 6.0:ssa ja jota ei ole käytetty pitkään aikaan Winessä. ELF-muodossa olevat ohjelmat, jotka on rakennettu Winen vanhemmissa versioissa (5.0 ja vanhemmat), joissa on libwine.so, vaativat uudelleenrakentamisen toimiakseen Wine 9.0:ssa.
  • Sisäänrakennetut kirjastot ja ulkoiset riippuvuudet
    • Kirjastot FluidSynth 2.3.3, Musl 1.2.3 (vain matemaattiset funktiot) ja Zydis 4.0.0 on integroitu pakettiin.
    • Komponentit Vkd3d 1.10, Faudio 23.12, OpenLDAP 2.5.16, LCMS2 2.15, LibMPG123 1.32.2, LibPng 1.6.40, LibTiff 4.6.0, LibXml2 2.11.5 on päivitetty uuteen versioon . . Wine Mono -moottori .NET-alustalla on päivitetty versioon 1.1.38.
    • Ajuri winewayland.drv käyttää Wayland-asiakaskirjastoa ulkoisina riippuvuuksina sekä xkbcommon- ja xkb-rekisterikirjastoja.
    • Toimikorttien tukemiseen käytetään ulkoista PCSClite-kirjastoa (macOS:ssä - PCSC).
    • PE-tiedostojen luominen ei-i386-alustoille vaatii nyt ristikääntäjän, joka tukee ".seh"-direktiivejä poikkeuksien käsittelemiseksi.

Lähde: opennet.ru

Lisää kommentti