Wine er et Windows-kompatibilitetslag som lar brukere kjøre Windows-apper på andre operativsystemer. Wine for Android har nå nådd v5.0 – sjekk det ut!
Android-appens økosystem har utviklet seg jevnt og trutt gjennom årene av Androids eksistens, drevet av den jevne bruken av mobil som den primære datamaskininteraksjonen for folk flest. Mange brukere har gravitert mot en livsstil kun for mobil, og det er fordi appene og appøkosystemet på mobil har klart å oppfylle deres spesielle behov. Men hvis du noen gang har behov for et skrivebordsprogram uten å ha tilgang til et skrivebord, hva ville du gjort? Det er her Wine kommer, et Windows-kompatibilitetslag som lar brukere kjøre fullverdige Windows-applikasjoner på forskjellige operativsystemer. Vin for Android har nådd v5.0, samler et års utviklingsinnsats fra teamet.
Wine er et gratis og åpen kildekode-kompatibilitetslag for Windows, som tar sikte på å la dataprogrammer som ble utviklet for Windows kjøre på andre operativsystemer. Wine for Android bringer Wine til Android
, åpenbart. Vin er ikke en emulator (som faktisk er et rekursivt bakronym for navnet), så det kan bare kjøres arkitekturspesifikke versjoner av apper -- ARM-versjonen av Wine for Android vil bare kjøre ARM-applikasjoner, og ikke x86.Høydepunktene for den stabile utgivelsen av Wine 5.0 inkluderer støtte for flere skjermer og støtte for Vulkan 1.1. Den komplette endringsloggen for oppdateringen er som nedenfor:
Wine 5.0 endringslogg:
- PE-moduler:
- De fleste moduler er bygget i PE-format (Portable Executable, Windows binærformat) i stedet for ELF når MinGW-kompilatoren er tilgjengelig. Dette hjelper ulike kopibeskyttelsesordninger som kontrollerer at innholdet på disken og i minnet i systemmodulene er identiske.
- De faktiske PE-binærfilene blir kopiert inn i vinprefikset i stedet for de falske DLL-filene. Dette gjør at prefikset ser mer ut som en ekte Windows-installasjon, på bekostning av litt ekstra diskplass.
- Moduler som er konvertert til PE kan bruke standard wide-char C-funksjoner, så vel som wide-char karakterkonstanter som L"abc". Dette gjør koden lettere å lese.
- Ikke alle moduler er konvertert til PE ennå; dette er en pågående prosess som vil fortsette under utviklingsserien Wine 5.x.
- Wine C-kjøretiden er oppdatert for å støtte kobling til MinGW-kompilerte binærfiler; den brukes som standard i stedet for MinGW-kjøretiden når du bygger DLL-er.
- Grafikk:
- Flere skjermadaptere og skjermer støttes på riktig måte, inkludert dynamiske konfigurasjonsendringer.
- Vulkan-driveren støtter opptil versjon 1.1.126 av Vulkan-spesifikasjonen.
- WindowsCodecs-biblioteket er i stand til å konvertere flere punktgrafikkformater, inkludert palettindekserte formater.
- Direct3D:
- Fullskjerm Direct3D-applikasjoner hemmer skjermspareren.
- DXGI swapchain presenterer informere applikasjonen når det tilsvarende vinduet er minimert. Dette tillater vanligvis applikasjoner å redusere CPU-bruk mens de minimeres, og er i noen tilfeller nødvendig for å tillate at applikasjonsvinduet kan gjenopprettes igjen.
- Bytte mellom fullskjerms- og vindusmodus ved å bruke standard Alt+Enter-kombinasjonen er implementert for DXGI-applikasjoner.
- Følgende funksjoner er implementert for Direct3D 12-applikasjoner:
- Veksle mellom fullskjerm og vindus.
- Endre visningsmoduser.
- Skalerte gaver.
- Bytt intervaller. Disse funksjonene var tidligere allerede implementert for tidligere versjoner av Direct3D API.
- Håndteringen av ulike kantsaker er forbedret. Blant andre:
- Referanseverdier utenfor rekkevidde for alfa- og sjablongtestene.
- Sampling av 2D-ressurser med 3D-samplere og omvendt.
- Tegning med kartlagte teksturer og buffere.
- Bruk av ugyldige DirectDraw clipper-objekter.
- Opprette Direct3D-enheter på ugyldige Windows, som skrivebordsvinduet.
- Utsiktsporter med minimum Z større enn eller lik maksimum Z.
- Ressurser bundet gjennom både shader-ressursvisninger og gjengivelsesmål- eller dybdestensilvisninger på samme tid.
- Blatter mellom formater med og uten alfakomponenter. Siden veloppdragne applikasjoner ikke er avhengige av disse kantsakene, påvirker de vanligvis bare én eller to applikasjoner hver. Det er likevel ganske mange av dem.
- Skitne teksturområder spores mer nøyaktig for Direct3D 8 og 9 teksturopplastinger.
- Opplastinger av S3TC-komprimerte 3D-teksturer krever mindre adresseplass. Siden 3D-teksturer kan være potensielt store, og oppbrukt adresseplass er et problem for 32-bits applikasjoner, lastes S3TC-komprimerte 3D-teksturer opp per stykke, i stedet for i en enkelt opplasting.
- ID3D11Multithread-grensesnittet er implementert.
- Ulike lysberegninger og forbedringer for eldre DirectDraw-applikasjoner er gjort.
- Begrenset støtte for blits på tvers av byttekjeder er implementert.
- Flere shader refleksjon APIer er implementert.
- Wined3d CPU blitter kan håndtere komprimerte kilderessurser. Støtte for komprimerte destinasjonsressurser var allerede implementert i en tidligere utgivelse.
- Direct3D-grafikkortdatabasen gjenkjenner flere grafikkort.
- Nye HKEY_CURRENT_USER\Software\Wine\Direct3D registernøkler:
- "shader_backend" (REG_SZ)Shader-backend som skal brukes. Mulige verdier er "glsl" (standard) for GLSL, "arb" for ARB toppunkt/fragmentprogrammer og "ingen" for å deaktivere skyggestøtte.
- "strict_shader_math" (REG_DWORD)Aktiver (0x1) eller deaktiver (0x0, standard) strengere oversettelse av Direct3D shaders, potensielt til en ytelseskostnad. Dette utgjør for øyeblikket bare en forskjell med standard GLSL shader-backend i kombinasjon med proprietære NVIDIA-drivere.
- Utdatert HKEY_CURRENT_USER\Software\Wine\Direct3D registernøkkel:
- "UseGLSL"Dette har blitt erstattet av "shader_backend"-innstillingen ovenfor.
- D3DX:
- Støtte for komprimering av teksturer ved hjelp av S3TC-komprimering er implementert.
- Ulike operasjoner, som f.eks. tekstur fyller, på ikke-kartleggbare overflater implementeres mer korrekt. Tidligere var implementeringen deres avhengig av at den underliggende Direct3D-implementeringen ikke håndhevet kartleggingsbegrensninger.
- Ulike forbedringer og rettelser er gjort i effektrammeverket.
- Kjerne:
- De fleste funksjonene som pleide å være i Kernel32 er flyttet til KernelBase, for å følge arkitekturen til nyere Windows-versjoner.
- Biblioteker med feil 32/64-bithet ignoreres når de blir funnet i søkebanen, for å aktivere innlasting av den riktige hvis den blir funnet lenger i banen.
- Kjerneobjekter emuleres bedre for enhetsdrivere som forventer å manipulere objekter fra kjernesiden.
- Synkroniseringsobjekter på kjernenivå som spinnlåser, raske mutexes, fjernlåser og ressursvariabler er implementert.
- Systemets batteristatus er riktig rapportert til applikasjoner.
- Brukergrensesnitt:
- Minimerte vinduer vises ved å bruke tittellinjen i stedet for de gamle Windows 3.1-stilikonene.
- De nye knappestilene Split-knapper og kommandokoblinger er implementert.
- Rediger-kontrollen setter marginer riktig også for CJK-fonter.
- Desktop-integrasjon:
- Symbolske lenker til de korresponderende Unix-katalogene opprettes for mappene 'Nedlastinger' og 'Maler'.
- Inndataenheter:
- Plug & Play-enhetsdrivere kan installeres og lastes ved oppstart.
- Spillkontrollere støttes bedre, inkludert riktig støtte for hattebryter, hjul, gass og bremsekontroller.
- Det gamle styrespak-APIet for Linux-versjoner tidligere enn 2.2 støttes ikke lenger.
- .NETT:
- Mono-motoren er oppdatert til versjon 4.9.4, inkludert deler av rammeverket Windows Presentation Foundation (WPF).
- Gecko og Mono-tilleggene støtter delt installasjon, der filene brukes direkte fra en global plassering under /usr/share/wine i stedet for å bli kopiert til hvert nytt prefiks.
- Internett og nettverk:
- Gecko-motoren er oppdatert for å støtte nyere verktøykjeder.
- En rekke nye HTML APIer er implementert.
- MSHTML støtter noen SVG-elementer.
- Utbredelse av feilobjekt og unntak støttes i VBScript.
- En rekke innebygde VBScript-funksjoner er implementert.
- JScript EcmaScript-kompatibel modus er utvidet for å støtte flere funksjoner.
- JScript- og VBScript-skriptobjekter viser type info-grensesnitt.
- HTTP-proxy-konfigurasjonen kan hentes gjennom DHCP.
- Passport HTTP-omdirigeringer støttes.
- HTTP-tjenesten og tilhørende klientsidebibliotek (HTTPAPI) er delvis implementert.
- Kryptografi:
- ECC-taster (elliptisk kurve) støttes ved bruk av GnuTLS.
- Import av nøkler og sertifikater fra PFX-blobber er implementert.
- Algoritmen for nøkkelavledning PBKDF2 støttes.
- Tekst og fonter:
- OpenType-posisjoneringsfunksjoner støttes i DirectWrite, og aktivert for latinsk skript som standard, inkludert kerning.
- Skriftdatatilgang gjøres sikrere ved å validere de ulike datatabellene før du bruker dem.
- DirectWrite-grensesnitt er oppdatert til en nylig SDK, og implementerer noen av de siste API-tilleggene.
- Lyd video:
- XAudio2-bibliotekene er reimplementert for å bruke det eksterne FAudio-biblioteket, for bedre kompatibilitet.
- Media Foundation-bibliotekene er fylt ut, inkludert:
- Støtte for innebygde og brukerasynkroniserte arbeidskøer.
- Evne til å sende inn periodiske tilbakeringinger, ventende, planlagte og vanlige arbeidselementer, med støtte for elementprioritet.
- Støtte for køer for mediabegivenheter.
- Ulike kjerne-API for å håndtere medietypeobjekter, strøm- og presentasjonsbeskrivelser, objektattributter, bytestrømobjekter, prøver og buffere.
- Initial Source Resolver implementering.
- Innledende implementering av Source Reader API.
- Implementering for Sample Grabber-objekt.
- Kjernestøtte for å bygge topologiobjekter.
- Innebygd presentasjonsklokkeimplementering, begynte å implementere Media Session-funksjonalitet.
- Videoopptaksfilteret har blitt portert til å bruke v4l2 i stedet for det utdaterte v4l1 API, noe som tillater bruk av noen kameraer som ikke støtter v4l1.
- Støtte for YUV til RGB-oversettelse og lesing fra v4l2-enheter som bruker mmap() er fjernet; vi er nå avhengige av libv4l2 for begge disse tingene.
- De innebygde AVI-, MPEG-I- og WAVE-dekoderne er fjernet; vi er nå avhengige av GStreamer eller Mac QuickTime Toolkit for å dekode slike mediefiler.
- Noen flere VMR7-konfigurasjons-APIer er implementert.
- Lyddriverne støtter volumjusteringer per kanal.
- Internasjonalisering:
- Unicode-tegntabeller er basert på versjon 12.1.0 av Unicode-standarden.
- Unicode-normalisering er implementert.
- Den geografiske region-IDen settes automatisk i registeret basert på gjeldende lokalitet. Den kan endres om nødvendig under HKEY_CURRENT_USER\Kontrollpanel\International\Geo.
- De singalesiske og asturiske stedene støttes.
- Kodeside 28601 (latinsk/thailandsk) støttes.
- RPC/COM:
- Typelib marshaller støtter komplekse strukturer og matriser.
- Det er en innledende implementering av Windows Script runtime-biblioteket.
- Det er en innledende implementering av Microsoft ActiveX Data Objects (ADO)-biblioteket.
- Installatører:
- Microsoft Installer (MSI) Patch-filer støttes.
- WUSA-verktøyet (Windows Update Standalone Installer) støtter installasjon av .MSU-oppdateringsfiler.
- ARM-plattformer:
- Unntaksavvikling er implementert for ARM64 ved å bruke libunwind-biblioteket.
- OLE stubless proxyer støttes på ARM64.
- Utviklingsverktøy / Winelib:
- Visual Studio ekstern debugger kan brukes til å feilsøke applikasjoner som kjører under Wine.
- Debug Engine-biblioteket (DBGENG) er delvis implementert.
- Binærfiler bygget for et Windows-mål er ikke lenger avhengige av libwine-biblioteket, for å gjøre dem i stand til å kjøre på Windows uten ekstra avhengigheter. Libwine-biblioteket er ikke lenger bygget for Windows i det hele tatt.
- Ressurskompilatoren og IDL-kompilatoren støtter et '--sysroot'-alternativ for å tillate lokalisering av overskriftsfiler i krysskompileringsmiljøer.
- Winegcc støtter alternativene '--target', '--wine-objdir', '--winebuild' og '-fuse-ld' som gjør det enklere å bruke som en krysskompilator, eller med tilpassede verktøykjeder.
- Wine/unicode.h-overskriften er ikke lenger tilgjengelig for applikasjoner, siden funksjonene til slutt vil bli fjernet og erstattet av standard C runtime wide character-funksjoner.
- Bygg infrastruktur:
- Testbinærfiler er bygget i PE-format hvis MinGW er tilgjengelig, så samme testbinære kan kjøres på både Wine og Windows. "Krosstest"-målet er ikke lenger nødvendig eller støttet.
- 'fastcall'-anropskonvensjonen støttes i spesifikasjonsfiler. Den bruker riktig navnmangling for Windows-bygg.
- Et '-import' inngangspunktsflagg støttes i spesifikasjonsfiler, for å markere funksjoner som trenger et hotpatch-kodeprefiks for å bli generert for deres import-thunks.
- Winebuild støtter et "--builtin"-alternativ for å legge til en spesiell signatur til PE-binærfiler for å merke dem som Wine builtins.
- Innebygde applikasjoner:
- CHCP-verktøyet er implementert. Det lar deg stille inn konsollens kodeside.
- MSIDB-verktøyet er implementert. Den tillater manipulering av MSI-databaser.
- Ytelsesforbedringer:
- De forskjellige tidsfunksjonene bruker systemklokker med høyere ytelse hvis tilgjengelig, for å redusere overheaden i gjengivelsessløyfen til mange spill.
- Filoppslag drar nytte av ext4-filsystemets sakfolding-støtte hvis den er aktivert i katalogen det søkes i.
- Listebokser uten datastil (LBS_NODATA) har bedre ytelse for et stort antall elementer.
- Slim Reader/Writer-låser, tastede hendelser og tilstandsvariabler bruker futexes på Linux for å unngå vinservere rundturer.
- Nye eksterne avhengigheter:
- MinGW-w64 krysskompilatoren brukes til å bygge moduler i PE-format.
- FAudio-biblioteket brukes til å implementere XAudio2.
- Inotify-biblioteket brukes til filendringsvarsler på BSD-plattformer.
- Unwind-biblioteket brukes til unntakshåndtering på ARM64.
- Video4Linux versjon 2-biblioteket brukes i stedet for versjon 1.
Les mer
Kilde: Vin HQ
Historie via: AndroidPolice