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