Wine on Windowsi ühilduvuskiht, mis võimaldab kasutajatel käitada Windowsi rakendusi teistes operatsioonisüsteemides. Wine for Android on jõudnud versioonini 5.0 – vaadake seda!
Androidi rakenduste ökosüsteem on Androidi eksisteerimise aastate jooksul pidevalt arenenud, mida on soodustanud mobiilside kui enamiku inimeste jaoks peamise arvutiga suhtlemise järjepidev kasutuselevõtt. Paljud kasutajad on valinud ainult mobiilseadmetele mõeldud elustiili ja seda seetõttu, et mobiilirakendused ja rakenduste ökosüsteem on suutnud nende konkreetseid vajadusi täita. Mida teeksite, kui aga vajaksite kunagi töölauarakendust, ilma et teil oleks juurdepääsu töölauale? Siit tulebki Wine, Windowsi ühilduvuskiht, mis võimaldab kasutajatel käitada Windowsi täisrakendusi erinevates operatsioonisüsteemides. Wine for Android on nüüd jõudis versioon 5.0, koondades meeskonna aastased arendustegevused.
Wine on Windowsi jaoks tasuta avatud lähtekoodiga ühilduvuskiht, mille eesmärk on võimaldada Windowsi jaoks välja töötatud arvutiprogrammidel töötada teistes operatsioonisüsteemides.
Wine for Android toob Wine'i Androidi, ilmselgelt. Wine ei ole emulaator (mis on tegelikult nime rekursiivne taganimi), seega saab seda ainult käivitada rakenduste arhitektuurispetsiifilised versioonid – Wine for Android ARM-versioon käitab ainult ARM-i rakendusi, ja mitte x86.Wine 5.0 stabiilse väljalaske esiletõstmised hõlmavad mitme monitori ja Vulkan 1.1 tuge. Värskenduse täielik muudatuste logi on järgmine:
Wine 5.0 muudatuste logi:
- PE moodulid:
- Enamik mooduleid on ehitatud PE-vormingus (Portable Executable, Windowsi kahendvorming), mitte ELF-i vormingus, kui MinGW-kompilaator on saadaval. See aitab erinevatel kopeerimiskaitseskeemidel, mis kontrollivad, kas süsteemimoodulite ketta- ja mälusisu on identne.
- Tegelikud PE-binaarfailid kopeeritakse võlts-DLL-failide asemel Wine'i prefiksi. Selle tõttu näeb eesliide rohkem välja nagu tõeline Windowsi installimine, mis kulub täiendavale kettaruumile.
- PE-ks teisendatud moodulid saavad kasutada standardseid laia tähemärgiga C-funktsioone, aga ka laia tähemärgiga konstante, nagu L"abc". See muudab koodi hõlpsamini loetavaks.
- Kõik moodulid pole veel PE-ks teisendatud; see on pidev protsess, mis jätkub ka Wine 5.x arendussarja ajal.
- Wine C käituskeskkonda värskendatakse, et toetada linkimist MinGW-kompileeritud binaarfailidega; seda kasutatakse DLL-ide koostamisel vaikimisi MinGW käitusaja asemel.
- Graafika:
- Mitu kuvaadapterit ja monitori on korralikult toetatud, sealhulgas dünaamilised konfiguratsioonimuudatused.
- Vulkani draiver toetab kuni Vulkani spetsifikatsiooni versiooni 1.1.126.
- WindowsCodecsi teek suudab teisendada rohkem bitmap-vorminguid, sealhulgas palettidega indekseeritud vorminguid.
- Direct3D:
- Täisekraanil Direct3D rakendused takistavad ekraanisäästjat.
- DXGI vahetusahela esitleb rakendust, kui vastav aken on minimeeritud. Tavaliselt võimaldab see rakendustel minimeeritud protsessori kasutust vähendada ja mõnel juhul on see vajalik rakenduse akna taastamiseks.
- Täisekraan- ja aknarežiimide vahel vahetamine standardse Alt+Enter kombinatsiooni abil on realiseeritud DXGI-rakenduste jaoks.
- Direct3D 12 rakenduste jaoks on rakendatud järgmised funktsioonid:
- Täisekraani ja akna vahel ümberlülitumine.
- Kuvarežiimide muutmine.
- Skaalatud kingitused.
- Vahetage intervalle. Need funktsioonid olid juba varem juurutatud Direct3D API varasemate versioonide jaoks.
- Täiustatud on erinevate servakastide käsitsemine. Teiste hulgas:
- Alfa- ja šabloonitestide võrdlusväärtused väljaspool vahemikku.
- 2D ressursside proovide võtmine 3D proovivõtturitega ja vastupidi.
- Joonistamine kaardistatud tekstuuride ja puhvritega.
- Kehtetute DirectDraw lõikuriobjektide kasutamine.
- Direct3D-seadmete loomine kehtetutes Windowsis, näiteks töölauaaknas.
- Vaateaknad, mille minimaalne Z on suurem kui maksimaalne Z või sellega võrdne.
- Ressursid seotakse korraga nii varjutaja-ressursi vaadete kui ka renderdamise sihtmärgi või sügavuse šablooni vaadete kaudu.
- Blits vormingute vahel alfakomponentidega ja ilma. Kuna hästi käituvad rakendused ei tugine nendele servajuhtumitele, mõjutavad need tavaliselt ainult ühte või kahte rakendust. Siiski on neid päris palju.
- Määrdunud tekstuuripiirkondi jälgitakse Direct3D 8 ja 9 tekstuuri üleslaadimisel täpsemalt.
- S3TC-tihendatud 3D-tekstuuride üleslaadimine nõuab vähem aadressiruumi. Kuna 3D-tekstuurid võivad olla potentsiaalselt suured ja aadressiruumi ammendumine on 32-bitiste rakenduste puhul muret tekitav, laaditakse S3TC-tihendatud 3D-tekstuurid üles iga lõigu kohta, mitte ühe üleslaadimisega.
- Rakendatud on ID3D11Multithread liides.
- Vanemate DirectDraw rakenduste jaoks on tehtud mitmesuguseid valgustuse arvutusparandusi ja täiustusi.
- Rakendatud on vahetusahelate piires blittide tugi.
- Rakendatakse rohkem varjundi peegeldamise API-sid.
- Wind3d CPU blitter saab hakkama tihendatud allikaressurssidega. Tihendatud sihtkoha ressursside tugi oli juba eelmises versioonis rakendatud.
- Direct3D graafikakaartide andmebaas tunneb ära rohkem graafikakaarte.
- Uued HKEY_CURRENT_USER\Software\Wine\Direct3D registrivõtmed:
- "shader_backend" (REG_SZ)Varjutaja taustaprogramm, mida kasutada. Võimalikud väärtused on "glsl" (vaikeväärtus) GLSL-i jaoks, "arb" ARB tipu-/fragmendiprogrammide jaoks ja "none" varjundi toe keelamiseks.
- "strict_shader_math" (REG_DWORD)Lubage (0x1) või keelake (0x0, vaikimisi) Direct3D-varjurite rangem tõlge, mis võib tekkida jõudluskulude eest. See muudab praegu ainult GLSL-i varjutaja vaikeprogrammi koos patenteeritud NVIDIA draiveritega.
- Aegunud registrivõti HKEY_CURRENT_USER\Software\Wine\Direct3D:
- "UseGLSL" Selle on asendanud ülaltoodud säte "shader_backend".
- D3DX:
- Rakendatud on tekstuuride tihendamise tugi S3TC-tihenduse abil.
- Erinevad operatsioonid, nagu nt. tekstuuritäiteid, on kaardistamatutel pindadel korrektsemalt rakendatud. Varem tugines nende rakendamine aluseks olevale Direct3D-rakendusele, mis ei jõustanud kaardistamispiiranguid.
- Efektiraamistikku on tehtud mitmesuguseid täiustusi ja parandusi.
- Kernel:
- Enamik Kernel32-s olnud funktsioone teisaldatakse KernelBase'i, et järgida viimaste Windowsi versioonide arhitektuuri.
- Vale 32/64-bitisega teeke ignoreeritakse otsinguteel leidmisel, et võimaldada õige laadimist, kui see leitakse teest kaugemal.
- Kerneli objekte on parem emuleerida seadmedraiverite jaoks, mis eeldavad objektidega kerneli poolelt manipuleerimist.
- Rakendatakse kerneli tasemel sünkroonimisobjekte, nagu keerlemislukud, kiired mutexid, lukustuse eemaldamine ja ressursimuutujad.
- Süsteemi aku olek edastatakse rakendustele õigesti.
- Kasutajaliides:
- Minimeeritud aknad kuvatakse vanade Windows 3.1 stiilis ikoonide asemel nende tiitliriba abil.
- Rakendatud on uued nupustiilid Split Buttons ja Command Links.
- Redigeerimise juhtnupp määrab veerised õigesti ka CJK fontide jaoks.
- Töölaua integreerimine:
- Kaustade 'Allalaadimised' ja 'Mallid' jaoks luuakse sümboolsed lingid vastavatele Unixi kataloogidele.
- Sisendseadmed:
- Plug & Play seadme draivereid saab installida ja käivitamisel laadida.
- Mängukontrollereid toetatakse paremini, sealhulgas mütsilüliti, ratta, gaasi ja piduri juhtnuppude korralik tugi.
- Linuxi versioonist 2.2 varasemate versioonide vana juhtkangi API-d enam ei toetata.
- .NET:
- Mono mootor on värskendatud versioonile 4.9.4, sealhulgas Windows Presentation Foundationi (WPF) raamistiku osad.
- Gecko ja Mono lisandmoodulid toetavad jagatud installimist, kus faile kasutatakse otse globaalsest asukohast /usr/share/wine all, selle asemel, et neid igasse uude prefiksi kopeerida.
- Internet ja võrgud:
- Gecko mootorit värskendatakse, et toetada hiljutisi tööriistaahelaid.
- Rakendatakse mitmeid uusi HTML API-sid.
- MSHTML toetab mõningaid SVG elemente.
- VBScript toetab veaobjekti ja erandi levitamist.
- Rakendatud on mitmeid VBScripti sisseehitatud funktsioone.
- JScript EcmaScriptiga ühilduvat režiimi on laiendatud, et toetada rohkem funktsioone.
- JScripti ja VBScripti skriptiobjektid paljastavad tüübiteabe liidesed.
- HTTP-puhverserveri konfiguratsiooni saab laadida DHCP kaudu.
- Toetatakse passi HTTP ümbersuunamisi.
- HTTP-teenus ja vastav kliendipoolne teek (HTTPAPI) on osaliselt juurutatud.
- Krüptograafia:
- GnuTLS-i kasutamisel toetatakse ECC (elliptilise kõvera) võtmeid.
- Rakendatud on võtmete ja sertifikaatide importimine PFX-blobidest.
- Toetatud on PBKDF2 võtmetuletusalgoritm.
- Tekst ja fondid:
- OpenType'i positsioneerimisfunktsioonid on DirectWrite'is toetatud ja vaikimisi lubatud ladina skripti jaoks, sealhulgas kerning.
- Fontide andmetele juurdepääsu muudab turvalisemaks erinevate andmetabelite valideerimine enne nende kasutamist.
- DirectWrite'i liidesed on värskendatud uuele SDK-le, rakendades mõningaid uusimaid API täiendusi.
- Audio/video:
- XAudio2 teegid on parema ühilduvuse huvides ümber rakendatud välise FAudio teegi kasutamiseks.
- Media Foundationi raamatukogud on sisustatud, sealhulgas:
- Sisseehitatud ja kasutaja asünkroonimise tööjärjekordade tugi.
- Võimalus esitada perioodilisi tagasihelistusi, ooteid, planeeritud ja regulaarseid tööüksusi koos üksuste prioriteedi toega.
- Meediasündmuste järjekordade tugi.
- Erinevad põhi-API meediumitüüpide objektide, voo- ja esitluse deskriptorite, objekti atribuutide, baidivooobjektide, näidiste ja puhvrite käsitlemiseks.
- Algse allika lahendaja juurutamine.
- Source Reader API esialgne juurutamine.
- Sample Grabber objekti rakendamine.
- Põhitugi topoloogiaobjektide ehitamiseks.
- Sisseehitatud esitluskella juurutamine, alustas Media Sessioni funktsionaalsuse juurutamist.
- Videohõivefilter on porditud kasutama v4l2 aegunud API v4l1 asemel, mis võimaldab kasutada mõnda kaamerat, mis v4l1 ei toeta.
- Tugi YUV-st RGB-le tõlkimiseks ja v4l2-seadmetest lugemiseks kasutades mmap() on eemaldatud; me sõltume nüüd mõlema asja puhul libv4l2-st.
- Sisseehitatud AVI, MPEG-I ja WAVE dekooderid on eemaldatud; selliste meediumifailide dekodeerimisel sõltume nüüd GStreamerist või Mac QuickTime Toolkitist.
- Rakendatud on veel mõned VMR7 konfiguratsiooni API-d.
- Helidraiverid toetavad helitugevuse reguleerimist kanalite kaupa.
- Rahvusvahelistumine:
- Unicode'i märgitabelid põhinevad Unicode'i standardi versioonil 12.1.0.
- Rakendatud on Unicode'i normaliseerimine.
- Geograafilise piirkonna ID määratakse registris automaatselt praeguse lokaadi alusel. Vajadusel saab seda muuta jaotises HKEY_CURRENT_USER\Control Panel\International\Geo.
- Toetatakse singali ja astuuria keeli.
- Toetatakse koodilehte 28601 (ladina/tai).
- RPC/COM:
- Typelib marshaller toetab keerulisi struktuure ja massiive.
- Olemas on Windowsi skripti käitusaja teegi esialgne juurutamine.
- Olemas on Microsoft ActiveX Data Objects (ADO) teegi esialgne juurutus.
- Paigaldajad:
- Microsoft Installeri (MSI) paigafailid on toetatud.
- WUSA tööriist (Windows Update Standalone Installer) toetab .MSU värskendusfailide installimist.
- ARM-platvormid:
- Erandlik lahtikerimine on rakendatud ARM64 jaoks, kasutades libunwindi teeki.
- ARM64 toetab OLE stubless puhverservereid.
- Arendustööriistad / Winelib:
- Visual Studio kaugsilurit saab kasutada Wine'i all töötavate rakenduste silumiseks.
- Silumismootori teek (DBGENG) on osaliselt rakendatud.
- Windowsi sihtmärgi jaoks loodud binaarfailid ei sõltu enam libwine'i teegist, et võimaldada neil töötada Windowsis ilma täiendavate sõltuvusteta. Libwine'i raamatukogu pole enam üldse Windowsi jaoks loodud.
- Ressursikompilaator ja IDL-kompilaator toetavad suvandit '--sysroot', et võimaldada päisefailide leidmist ristkompileerimise keskkondades.
- Winegcc toetab suvandeid '--target', '--wine-objdir', '--winebuild' ja '-fuse-ld', mis muudavad selle kasutamise lihtsamaks ristkompilaatorina või kohandatud tööriistaahelatega.
- Päis wine/unicode.h pole rakendustele enam saadaval, kuna lõpuks eemaldatakse need funktsioonid ja asendatakse standardsete C käitusaegsete tähemärkide funktsioonidega.
- Ehitage infrastruktuur:
- Testbinaarfailid on ehitatud PE-vormingus, kui MinGW on saadaval, nii et sama testbinaarfail võib töötada nii Wine'is kui ka Windowsis. „Kõige ristuva” marki sihtmärki pole enam vaja ega toetata.
- Spetsifikatsioonifailid toetavad kiirkõnede helistamise tava. See kasutab Windowsi järge jaoks õiget nimetust.
- Spetsifikatsioonifailides toetatakse 'import' sisestuspunkti lippu, et tähistada funktsioone, mis vajavad kiirparanduskoodi prefiksi genereerimiseks nende importimiseks.
- Winebuild toetab valikut '--builtin', et lisada PE binaarfailidele spetsiaalne signatuur, et märkida need Wine'i sisseehitatud failidena.
- Sisseehitatud rakendused:
- CHCP tööriist on rakendatud. See võimaldab seadistada konsooli koodilehte.
- Rakendatud on MSIDB tööriist. See võimaldab manipuleerida MSI andmebaasidega.
- Toimivuse täiustused:
- Erinevad ajafunktsioonid kasutavad võimaluse korral suurema jõudlusega süsteemikellasid, et vähendada paljude mängude renderdusahela üldkulusid.
- Failiotsingud kasutavad ext4 failisüsteemi korpuse voltimise tuge, kui see on otsitavas kataloogis lubatud.
- Andmeteta stiilide loendikastidel (LBS_NODATA) on suure hulga üksuste jaoks parem jõudlus.
- Õhukesed lugeja/kirjutaja lukud, võtmega sündmused ja tingimuste muutujad kasutavad Linuxis futexet, et vältida veiniserveri edasi-tagasi reise.
- Uued välised sõltuvused:
- MinGW-w64 ristkompilaatorit kasutatakse PE-vormingus moodulite ehitamiseks.
- FAudio teeki kasutatakse XAudio2 rakendamiseks.
- Inotify teeki kasutatakse BSD platvormidel failide muutmise teatiste jaoks.
- Unwind teeki kasutatakse ARM64 erandite käsitlemiseks.
- Versiooni 1 asemel kasutatakse Video4Linuxi versiooni 2 teeki.
Loe rohkem
Allikas: Veini peakorter
Lugu läbi: AndroidPolice