Vuoden kehitystyön ja 28 kokeellisen version jälkeen esiteltiin vakaa julkaisu Win32 API:n avoimesta toteutuksesta - Wine 8.0, joka sisälsi yli 8600 XNUMX muutosta. Uuden version avainsaavutus merkitsee Wine-moduulien käännöstyön valmistumista muotoon.
Wine on vahvistanut 5266 (vuosi sitten 5156, kaksi vuotta sitten 5049) Windows-ohjelman täydellisen toiminnan, toinen 4370 (vuosi sitten 4312, kaksi vuotta sitten 4227) ohjelmaa toimii täydellisesti lisäasetusten ja ulkoisten DLL-tiedostojen kanssa. 3888 ohjelmassa (3813 vuosi sitten, 3703 kaksi vuotta sitten) on pieniä toimintahäiriöitä, jotka eivät häiritse sovellusten päätoimintojen käyttöä.
Wine 8.0:n tärkeimmät innovaatiot:
- Moduulit PE-muodossa
- Neljän vuoden työn jälkeen kaikkien DLL-kirjastojen muuntaminen PE (Portable Executable, käytetään Windowsissa) suoritettavaan tiedostomuotoon on saatu päätökseen. PE:n käyttö mahdollistaa Windowsille saatavilla olevien virheenkorjainten käytön ja ratkaisee ongelmia, jotka liittyvät erilaisten kopiosuojausjärjestelmien tukemiseen, jotka varmistavat levyllä ja muistissa olevien järjestelmämoduulien identiteetin. Myös 32-bittisten sovellusten suorittamiseen 64-bittisissä isännissä ja x86-sovelluksissa ARM-järjestelmissä liittyvät ongelmat on ratkaistu. Muiden tehtävien joukossa, jotka on tarkoitus ratkaista myöhemmissä Wine 8.x:n kokeellisissa julkaisuissa, on moduulien siirtyminen NT-järjestelmäpuhelurajapintaan sen sijaan, että suoritettaisiin puheluita PE- ja Unix-kerrosten välillä.
- Erityinen järjestelmäpuhelunhallinta on otettu käyttöön, jota käytetään kääntämään puhelut PE:stä Unix-kirjastoihin, jotta voidaan vähentää täyden NT-järjestelmäkutsun suorittamista. Optimoinnin avulla esimerkiksi pystyttiin vähentämään suorituskyvyn heikkenemistä käytettäessä OpenGL- ja Vulkan-kirjastoja.
- Winelib-sovellukset säilyttävät mahdollisuuden käyttää ELF (.dll.so) -kirjastojen Windows/Unix-yhdistelmäkokoonpanoja, mutta sellaiset sovellukset, joissa ei ole 32-bittisiä kirjastoja, eivät tue NT-järjestelmäkutsuliittymän kautta saatavilla olevia toimintoja, kuten WoW64.
- WoW64
- WoW64 (64-bittinen Windows-on-Windows) -tasot ovat saatavilla kaikille Unix-kirjastoille, jolloin 32-bittiset moduulit PE-muodossa voivat käyttää 64-bittisiä Unix-kirjastoja, jotka päästään eroon suorista PE/Unix-kutsuista mahdollista suorittaa 32-bittisiä Windows-sovelluksia asentamatta 32-bittisiä Unix-kirjastoja.
- 32-bittisen Wine-lataimen puuttuessa 32-bittiset sovellukset voivat toimia uudessa kokeellisessa Windows-tyyppisessä WoW64-tilassa, jossa 32-bittinen koodi suoritetaan 64-bittisessä prosessissa. Tila on käytössä, kun rakennetaan Wineä "—enable-archs" -vaihtoehdolla.
- Grafiikka alijärjestelmä
- Oletuskokoonpano käyttää vaaleaa teemaa ("Light"). Voit vaihtaa teemaa WineCfg-apuohjelmalla.
- Grafiikkaohjaimet (winex11.drv, winemac.drv, wineandroid.drv) muunnetaan suorittamaan järjestelmäkutsuja Unix-tasolla ja käyttämään ohjaimia Win32u-kirjaston kautta.
- Print Processor -arkkitehtuuri on otettu käyttöön, jota käytetään poistamaan suorat puhelut tulostinohjaimen PE- ja Unix-tasojen välillä.
- Direct2D API tukee nyt tehosteita.
- Direct2D API on lisännyt mahdollisuuden tallentaa ja toistaa komentoluetteloita.
- Vulkan-grafiikkasovellusliittymän ajuri on lisännyt tuen Vulkan 1.3.237 -spesifikaatiolle (Vulkan 7:ta tuettiin Wine 1.2:ssä).
- Oletuskokoonpano käyttää vaaleaa teemaa ("Light"). Voit vaihtaa teemaa WineCfg-apuohjelmalla.
- Direct3D
- Lisätty uusi Shader-kääntäjä HLSL:lle (High-Level Shader Language), joka on toteutettu vkd3d-shader-kirjaston perusteella. Myös vkd3d-shaderiin perustuen on valmisteltu HLSL-disassembler ja HLSL-esiprosessori.
- D3DX 10:ssä käyttöön otettu Thread Pump -liitäntä on otettu käyttöön.
- Direct3D 10 -tehosteet lisäävät tukea monille uusille ilmaisuille.
- D3DX 9:n tukikirjasto tukee nyt Cubemap-tekstuuriprojektiota.
- Ääni ja video
- GStreamer-kehyksen pohjalta on otettu käyttöön tuki suodattimille MPEG-1-muodossa olevan äänen dekoodaamiseen.
- Lisätty suodatin suoratoiston äänen ja videon lukemiseen ASF (Advanced Systems Format) -muodossa.
- Välikirjastotaso OpenAL32.dll on poistettu, ja sen sijaan käytetään nyt sovellusten mukana toimitettua alkuperäistä Windows-kirjastoa OpenAL32.dll.
- Media Foundation Player on parantanut sisältötyyppien tunnistusta.
- Mahdollisuus ohjata tiedonsiirtonopeutta (Rate control) on otettu käyttöön.
- Parannettu tuki oletusmiksaajalle ja esittelijälle Enhanced Video Rendererissä (EVR).
- Lisätty Writer Encoding API:n ensimmäinen käyttöönotto.
- Parannettu topologialataimen tuki.
- Syöttölaitteet
- Merkittävästi parannettu tuki ohjaimien kytkemiselle.
- Pelien ohjauspyörän määrityskoodille ehdotetaan parannettua toteutusta, joka on rakennettu SDL-kirjaston pohjalta.
- Parannettu tuki Force-palautevaikutukselle pelipyöriä käytettäessä.
- Mahdollisuus ohjata vasenta ja oikeaa tärinämoottoria HID Haptic -spesifikaatiolla on otettu käyttöön.
- Ohjaussauvan ohjauspaneelin suunnittelua muutettu.
- Tuki Sony DualShock- ja DualSense-ohjaimille tarjotaan käyttämällä hidraw-taustaohjelmaa.
- WinRT-moduuliin Windows.Gaming.Input on ehdotettu ohjelmistokäyttöliittymän toteuttamista peliohjainten, ohjaussauvojen ja pelipyörien käyttöä varten. Uudelle API:lle on toteutettu muun muassa tuki laitteiden kuumakytkemisestä ilmoittamiselle, kosketus- ja tärinäefekteille.
- Kansainvälistyminen
- Oikean kielitietokannan luominen locale.nls-muodossa Unicode CLDR (Unicode Common Locale Data Repository) -tietovarastosta varmistetaan.
- Unicode-merkkijonojen vertailutoiminnot on siirretty käyttämään tietokantaa ja Windows Sortkey -algoritmia Unicode Collation -algoritmin sijaan, mikä tuo käyttäytymistä lähemmäksi Windowsia.
- Useimmat ominaisuudet ovat lisänneet tuen ylemmille Unicode-koodialueille (tasoille).
- UTF-8:aa voidaan käyttää ANSI-koodauksena.
- Merkkitaulukot on päivitetty Unicode 15.0.0 -määritykseen.
- Teksti ja fontit
- Fonttilinkitys on otettu käyttöön useimmissa järjestelmäfonteissa, mikä ratkaisee puuttuvien kuvioiden ongelman järjestelmissä, joissa on kiinalainen, korealainen ja japanilainen kielialue.
- Uudelleen muokattu varafonttivaraus DirectWritessa.
- Ydin (Windowsin ydinliittymät)
- ApiSetSchema-tietokanta on otettu käyttöön, joka korvasi api-ms-*-moduulit ja pienensi levy- ja osoitetilan kulutusta.
- DOS-tiedostomääritteet tallennetaan levylle Samba-yhteensopivassa muodossa laajennettujen FS-attribuuttien avulla.
- Verkkoominaisuudet
- Lisätty tuki OCSP:lle (Online Certificate Status Protocol), jota käytetään peruutettujen varmenteiden tarkistamiseen.
- JavaScript-standardien noudattamistilassa saatavilla olevien EcmaScript-ominaisuuksien valikoimaa on laajennettu.
- Otettiin roskakeräys käyttöön JavaScriptille.
- Gecko-moottoripaketti sisältää ominaisuuksia vammaisille.
- MSHTML lisää tuen Web Storage API:lle, Performance-objektille ja lisäobjekteille tapahtumien käsittelyyn.
- Sulautetut sovellukset
- Kaikki sisäänrakennetut sovellukset on muunnettu käyttämään Common Controls 6 -kirjastoa, joka tukee suunnitteluteemoja ja renderöintiä ottaen huomioon näytöt, joissa on korkea pikselitiheys.
- Parannetut ominaisuudet säikeiden virheenkorjaukseen Wine Debuggerissa (winedbg).
- Rekisterin apuohjelmat (REGEDIT ja REG) tukevat nyt QWORD-tyyppiä.
- Muistio on lisännyt tilapalkin, jossa on tietoja kohdistimen sijainnista ja Goto Line -toiminnon, jolla voit siirtyä määritettyyn rivinumeroon
- Sisäänrakennettu konsoli tarjoaa tiedot OEM-koodisivulle.
- 'query'-komento on lisätty sc.exe (Service Control) -apuohjelmaan.
- Kokoonpanojärjestelmä
- Mahdollisuus rakentaa suoritettavia tiedostoja PE-muodossa useille arkkitehtuureille on tarjottu (esimerkiksi '—enable-archs=i386,x86_64').
- Kaikissa alustoissa, joissa on 32-bittinen pitkä tyyppi, Windowsissa pitkiksi määritetyt tietotyypit määritetään nyt uudelleen "pitkäksi" Winen "int" sijaan. Winelibissä tämä toiminta voidaan poistaa käytöstä WINE_NO_LONG_TYPES-määritelmällä.
- Lisätty mahdollisuus luoda kirjastoja ilman dlltool-työkalua (otettu käyttöön asettamalla '—without-dlltool' -vaihtoehto winebuildissa).
- Lataustehokkuuden parantamiseksi ja koodittomien, vain resursseja sisältävien kirjastojen koon pienentämiseksi winegcc ottaa käyttöön "--data-only" -vaihtoehdon.
- Miscellanea
- Päivitetyt versiot sisäänrakennetuista kirjastoista Faudio 22.11, LCMS2 2.14, LibJPEG 9e, LibMPG123 1.31.1, LibPng 1.6.39, LibTiff 4.4.0, LibXml2 2.10.3, Z.libXs.1.1.37 LibXml.1.2.13
- Wine Mono -moottori .NET-alustalla on päivitetty versioon 7.4.
- Tuki RSA-algoritmiin ja RSA-PSS-digitaalisiin allekirjoituksiin perustuvalle salaukselle on otettu käyttöön.
- UI Automation API:n alkuperäinen versio lisätty.
- Lähdepuu sisältää LDAP- ja vkd3d-kirjastot, jotka on käännetty PE-muotoon, joten näiden kirjastojen Unix-kokoonpanoja ei tarvitse toimittaa.
- OpenAL-kirjasto on lopetettu.
Lähde: opennet.ru