Wine 7.0:n vakaa julkaisu

Vuoden kehitystyön ja 30 kokeellisen version jälkeen esiteltiin vakaa julkaisu Win32 API:n avoimesta toteutuksesta - Wine 7.0, joka sisälsi yli 9100 64 muutosta. Uuden version tärkeimpiä saavutuksia ovat useimpien Wine-moduulien kääntäminen PE-muotoon, teemojen tuki, ohjaussauvojen ja HID-liitännällä varustettujen syöttölaitteiden pinon laajentaminen sekä WoW32-arkkitehtuurin käyttöönotto 64-bittisten ohjelmien suorittamiseen XNUMX-bittinen ympäristö.

Wine on vahvistanut 5156 (vuosi sitten 5049) Windows-ohjelman täyden toiminnan, ja toiset 4312 (vuosi sitten 4227) ohjelmaa toimivat täydellisesti lisäasetusten ja ulkoisten DLL-tiedostojen kanssa. 3813 3703 ohjelmassa (XNUMX XNUMX vuotta sitten) on pieniä toimintaongelmia, jotka eivät häiritse sovellusten päätoimintojen käyttöä.

Wine 7.0:n tärkeimmät innovaatiot:

  • Moduulit PE-muodossa
    • Melkein kaikki DLL:t on muunnettu käyttämään PE (Portable Executable, käytetään Windowsissa) suoritettavaa tiedostomuotoa ELF:n sijaan. PE:n käyttö ratkaisee ongelmia tukemalla erilaisia ​​kopiosuojausjärjestelmiä, jotka varmistavat levyllä ja muistissa olevien järjestelmämoduulien identiteetin.
    • Mahdollisuus olla vuorovaikutuksessa PE-moduuleiden kanssa Unix-kirjastojen kanssa käyttämällä tavallista NT-ytimen järjestelmäkutsua, jonka avulla voit piilottaa pääsyn Unix-koodiin Windowsin virheenkorjaajilta ja seurata säikeen rekisteröintiä.
    • Sisäänrakennetut DLL-tiedostot ladataan nyt vain, jos levyllä on vastaava PE-tiedosto, riippumatta siitä, onko kyseessä todellinen kirjasto vai tynkä. Tämän muutoksen ansiosta sovellus voi aina nähdä oikean sidoksen PE-tiedostoihin. Voit poistaa tämän toiminnan käytöstä WINEBOOTSTRAPMODE-ympäristömuuttujan avulla.
  • WoW64
    • WoW64-arkkitehtuuri (64-bittinen Windows-on-Windows) on otettu käyttöön, jonka avulla voit ajaa 32-bittisiä Windows-sovelluksia 64-bittisissä Unix-prosesseissa. Tuki toteutetaan yhdistämällä kerros, joka muuttaa 32-bittiset NT-järjestelmäkutsut 64-bittisiksi kutsuiksi NTDLL:lle.
    • WoW64-tasot on valmistettu useimmille Unix-kirjastoille, ja ne mahdollistavat 32-bittisten PE-moduulien pääsyn 64-bittisiin Unix-kirjastoihin. Kun kaikki moduulit on muunnettu PE-muotoon, on mahdollista ajaa 32-bittisiä Windows-sovelluksia asentamatta 32-bittisiä Unix-kirjastoja.
  • Teemat
    • Teeman tuki on otettu käyttöön. Mukana ovat suunnitteluteemat "Light", "Blue" ja "Classic Blue", jotka voidaan valita WineCfg-konfiguraattorin kautta.
    • Lisätty mahdollisuus muokata kaikkien käyttöliittymäsäätimien ulkoasua teemojen kautta. Elementtien ulkoasu päivittyy automaattisesti suunnitteluteeman vaihtamisen jälkeen.
    • Teeman tuki on lisätty kaikkiin sisäisiin Wine-sovelluksiin. Sovellukset on mukautettu näytöille, joissa on korkea pikselitiheys (High DPI).
  • Grafiikka alijärjestelmä
    • Uusi Win32u-kirjasto on lisätty, joka sisältää osia GDI32- ja USER32-kirjastoista, jotka liittyvät grafiikan käsittelyyn ja ikkunoiden hallintaan ydintasolla. Jatkossa työ ohjainkomponenttien, kuten winex32.drv ja winemac.drv, siirtämiseksi Win11u:hun aloitetaan.
    • Vulkan-ohjain tukee Vulkan-grafiikkasovellusliittymän määritystä 1.2.201.
    • Tarjoaa tuen viivoitettujen geometristen objektien tulostamiselle Direct2D API:n kautta ja mahdollisuus tarkistaa, osuuko napsautus (osumatesti).
    • Direct2D-sovellusliittymä tarjoaa alustavan tuen visuaalisille tehosteille, joita käytetään ID2D1Effect-liittymän avulla.
    • Direct2D API on lisännyt tuen ID2D1MultiThread-rajapinnalle, jota käytetään monisäikeisten sovellusten resurssien eksklusiivisen pääsyn järjestämiseen.
    • WindowsCodecs-kirjastot tukevat kuvien dekoodausta WMP (Windows Media Photo) -muodossa ja kuvien koodausta DDS (DirectDraw Surface) -muodossa. Emme enää tue kuvien koodausta ICNS-muodossa (macOS), jota Windows ei tue.
  • Direct3D
    • Uutta renderöintimoottoria on parannettu merkittävästi, ja se kääntää Direct3D-kutsut Vulkan-grafiikkasovellusliittymään. Useimmissa tilanteissa Vulkan-pohjaisen moottorin Direct3D 10:n ja 11:n tukitaso on saatettu tasolle vanhemman OpenGL-pohjaisen moottorin kanssa. Ota Vulkan-renderöintimoottori käyttöön asettamalla Direct3D-rekisterimuuttuja "renderer" arvoon "vulkan".
    • Monet Direct3D 10:n ja 11:n ominaisuudet on toteutettu, mukaan lukien viivästyt kontekstit, laitekontekstissa toimivat tilaobjektit, pysyvät siirtymät puskureissa, epäjärjestyksessä olevien pintakuvionäkymien tyhjennys, tietojen kopioiminen resurssien välillä tyypittömissä muodoissa (DXGI_FORMAT_BC3_TYPELESS, DXGI_FORMAT_R32G32B32A), jne. .
    • Lisätty tuki usean näytön kokoonpanoille, jolloin voit valita näytön, joka näyttää Direct3D-sovelluksen koko näytön tilassa.
    • DXGI API tarjoaa näytön gammakorjauksen, jota Direct3D 10- ja 11-pohjaiset sovellukset voivat käyttää näytön kirkkauden muuttamiseksi. Virtuaalisten kehyspuskurilaskurien (SwapChain) haku on otettu käyttöön.
    • Direct3D 12 lisää tuen version 1.1 juuriallekirjoituksille.
    • Vulkan API:n kautta tapahtuvassa renderöintikoodissa kyselyn käsittelyn tehokkuutta on parannettu, kun järjestelmä tukee VK_EXT_host_query_reset-laajennusta.
    • Lisätty mahdollisuus tulostaa virtuaalisia kehyspuskureita (SwapChain) GDI:n kautta, jos OpenGL:ää tai Vulkania ei voida käyttää näyttöön, esimerkiksi tulostettaessa ikkunaan eri prosesseista esimerkiksi CEF (Chromium Embedded Framework) -kehykseen perustuvissa ohjelmissa.
    • Käytettäessä GLSL-shader-taustaosaa varjostimen ohjeiden "tarkka" muokkaaja on varmistettu.
    • DirectDraw API lisää tuen 3D-renderöinnille järjestelmämuistiin käyttämällä ohjelmistolaitteita, kuten "RGB", "MMX" ja "Ramp".
    • Direct3D-näytönohjaintietokantaan on lisätty AMD Radeon RX 5500M-, AMD Radeon RX 6800/6800 XT/6900 XT-, AMD Van Gogh-, Intel UHD Graphics 630- ja NVIDIA GT 1030 -kortit.
    • "UseGLSL"-avain on poistettu HKEY_CURRENT_USER\Software\Wine\Direct3D-rekisteristä, jonka sijaan Wine 5.0:sta alkaen on käytettävä "shader_backend".
    • Direct3D 12:n tukemiseksi tarvitset nyt vähintään vkd3d-kirjaston version 1.2.
  • D3DX
    • D3DX 10 -toteutus on parantanut tukea visuaalisille tehostekehykselle ja lisännyt tukea Windows Media Photo -kuvamuodolle (JPEG XR)
    • Lisätty D3DX10:ssä olevat tekstuurin luontitoiminnot, kuten D3DX10CreateTextureFromMemory().
    • Ohjelmistoliittymät ID3DX10Sprite ja ID3DX10Font on toteutettu osittain.
  • Ääni ja video
    • GStreamer-lisäosat DirectShowlle ja Media Foundation -kehykselle on yhdistetty yhdeksi yhteiseksi WineGStreamer-taustajärjestelmäksi, mikä yksinkertaistaa uusien sisällönpurkusovellusliittymien kehittämistä.
    • WineGStreamer-taustajärjestelmään perustuen Windows Media -objektit on toteutettu synkronista ja asynkronista lukemista varten.
    • Media Foundation -kehyksen toteutusta on jalostettu edelleen, lisätty tuki IMFPMediaPlayer-toiminnallisuudelle ja näyteallokaattorille sekä parannettu EVR- ja SAR-renderöintipuskureiden tukea.
    • Wineqtdecoder-kirjasto, joka tarjoaa dekooderin QuickTime-muodolle, on poistettu (kaikki koodekit käyttävät nyt GStreameria).
  • Syöttölaitteet
    • HID-protokollaa (Human Interface Devices) tukevien syöttölaitteiden pinoa on parannettu merkittävästi, ja se tarjoaa ominaisuuksia, kuten HID-kuvausosien jäsentämisen, HID-viestien käsittelyn ja mini-HID-ajureiden tarjoamisen.
    • Winebus.sys-ohjaimen taustajärjestelmissä laitekuvausten kääntämistä HID-viesteiksi on parannettu.
    • Lisätty uusi DirectInput-taustaosa ohjaussauvoille, jotka tukevat HID-protokollaa. Mahdollisuus käyttää palautetehosteita joystickeissä on otettu käyttöön. Parannettu joystick-ohjauspaneeli. Optimoitu vuorovaikutus XInput-yhteensopivien laitteiden kanssa. WinMM:ssä ohjaussauvan tuki on siirretty DInputiin sen sijaan, että käytettäisiin evdev-taustaohjelmaa Linuxissa ja IOHID:tä macOS IOHIDissa. Vanha joystick-ohjain winejoystick.drv on poistettu.
    • DInput-moduuliin on lisätty uusia testejä, jotka perustuvat virtuaalisten HID-laitteiden käyttöön ja jotka eivät vaadi fyysistä laitetta.
  • Teksti ja fontit
    • Lisätty fontti Aseta objekti DirectWrite-asetukselle.
    • RichEdit toteuttaa TextHost-käyttöliittymän oikein.
  • Ydin (Windowsin ydinliittymät)
    • Kun ajetaan tunnistamatonta suoritettavaa tiedostoa (kuten "wine foo.msi") Winessä, nyt kutsutaan start.exe-tiedostoa, joka kutsuu tiedostotyyppiin liittyvät käsittelijät.
    • Lisätty tuki synkronointimekanismeille NtAlertThreadByThreadId ja NtWaitForAlertByThreadId, jotka ovat samanlaisia ​​kuin Linuxin futexes.
    • Lisätty tuki NT-virheenkorjausobjekteille, joita käytetään ytimen toimintojen virheenkorjaukseen.
    • Lisätty tuki dynaamisille rekisteriavaimille suorituskykytietojen tallentamiseksi.
  • C Suoritusaika
    • C-ajoaika toteuttaa täyden joukon matemaattisia funktioita, jotka siirretään pääasiassa Musl-kirjastosta.
    • Kaikki CPU-alustat tarjoavat oikean tuen liukulukutoiminnoille.
  • Verkkoominaisuudet
    • Parannettu yhteensopivuustila Internet Explorer 11:lle (IE11), jota käytetään nyt oletuksena HTML-dokumenttien käsittelyyn.
    • Mshtml-kirjasto toteuttaa ES6 JavaScript -tilan (ECMAScript 2015), joka tukee ominaisuuksia, kuten let-lauseke ja karttaobjekti.
    • Gecko-moottorin lisäyksiä sisältävien MSI-pakettien asennus Wine-työhakemistoon tehdään nyt tarvittaessa, ei Wine-päivityksen aikana.
    • Lisätty tuki DTLS-protokollalle.
    • NSI-palvelu (Network Store Interface) on otettu käyttöön, ja se tallentaa ja välittää tietoa tietokoneen reitityksestä ja verkkoliitännöistä muille palveluille.
    • WinSockin API-käsittelijät, kuten setsockopt ja getsockopt, on siirretty NTDLL:ään ja afd.sys-ajuriin mukautumaan Windows-arkkitehtuuriin.
    • Winen omat verkkotietokantatiedostot, kuten /etc/protocols ja /etc/networks, asennetaan nyt Winen työhakemistoon sen sijaan, että ne käyttäisivät samanlaisia ​​Unix-tietokantoja.
  • Vaihtoehtoiset alustat
    • Lisätty tuki Applen laitteille, jotka perustuvat M1 ARM -siruihin (Apple Silicon).
    • BCrypt- ja Secur32-ominaisuuksien tuki macOS:ssä edellyttää nyt GnuTLS-kirjaston asentamista.
    • 32-bittiset suoritettavat tiedostot ARM-alustoille on nyt rakennettu peukalo-2-tilassa, kuten Windows. Tällaisten tiedostojen lataamiseen käytetään esilatausohjelmaa.
    • 32-bittisille ARM-alustoille on otettu käyttöön tuki poikkeuksien purkamiseen.
    • FreeBSD:ssä tuettujen kyselyiden määrää matalan tason järjestelmätiedoille, kuten muistin tila ja akun varaustaso, on laajennettu.
  • Sisäänrakennetut sovellukset ja kehitystyökalut
    • Reg.exe-apuohjelma on lisännyt tuen 32- ja 64-bittisille rekisterinäkymille. Lisätty tuki rekisteriavainten kopiointiin.
    • WineDump-apuohjelma on lisännyt tuen Windowsin metatietojen poistamiseen ja yksityiskohtaisten tietojen näyttämiseen CodeView-merkinnöistä.
    • Wine Debugger (winedbg) tarjoaa mahdollisuuden korjata 32-bittisiä prosesseja 64-bittisestä debuggerista.
    • IDL-kääntäjään (widl) on lisätty PE-tiedostoihin sisäänrakennettujen kirjastojen latausmahdollisuus, WinRT-kohtaisten attribuuttien ja konstruktien tuki on otettu käyttöön ja alustakohtainen kirjastohaku on otettu käyttöön.
  • Kokoonpanojärjestelmä
    • Arkkitehtuurikohtaisissa hakemistoissa kirjastot tallennetaan nyt nimillä, jotka kuvastavat arkkitehtuuria ja suoritettavaa tyyppiä, kuten 'i386-windows' PE-muodolle ja 'x86_64-unix' unix-kirjastoille, mikä mahdollistaa eri arkkitehtuurien tuen yhdessä Winessä. asentaa ja tarjota ristiinkokoelma Winelibistä.
    • Jos haluat asettaa PE-tiedostojen otsikoissa vaihtoehdon, joka ohjaa siirtymistä alkuperäisten DLL-tiedostojen käyttöön, '--prefer-native option' -lippu on lisätty winebuildiin (DLL_WINE_PREATTACH-käsittely DllMainissa on pysäytetty).
    • Lisätty tuki Dwarf-debug-tietomuodon versiolle 4, jota käytetään nyt oletuksena Wine-kirjastojen rakentamisessa.
    • Lisätty koontivaihtoehto '—enable-build-id' tallentaaksesi yksilölliset koontitunnisteet suoritettaviin tiedostoihin.
    • Lisätty tuki Clang-kääntäjän käyttämiselle MSVC-yhteensopivuustilassa.
  • Miscellanea
    • Tyypillisten hakemistojen nimet käyttäjäkuoressa (Windows Shell) annetaan käytettävälle skeemalle Windows Vistasta alkaen, ts. "Omat asiakirjat" -kansion sijaan luodaan nyt "Dokumentit"-hakemisto, ja suurin osa tiedoista tallennetaan "AppData"-hakemistoon.
    • OpenCL-kirjastotasoon on lisätty tuki OpenCL 1.2 -määrittelylle.
    • WinSpool-ohjain on lisännyt tuen eri sivukokoille tulostuksen aikana.
    • Lisätty alustava tuki MSDASQL:lle, Microsoft OLE DB -toimittajalle ODBC-ajureille.
    • Wine Mono -moottori .NET-alustalla on päivitetty versioon 7.0.0.
    • Unicode-tiedot on päivitetty Unicode 14 -määritykseen.
    • Lähdepuu sisältää Faudio-, GSM-, LCMS2-, LibJPEG-, LibJXR-, LibMPG123-, LibPng-, LibTiff-, LibXml2-, LibXslt- ja Zlib-kirjastot, jotka on käännetty PE-muotoon eivätkä vaadi Unix-muotoista versiota. Samanaikaisesti nämä kirjastot voidaan myös tuoda järjestelmästä ulkoisten kokoonpanojen käyttämiseksi sisäänrakennettujen PE-vaihtoehtojen sijaan.

Lähde: opennet.ru

Lisää kommentti