Wine, de Windows-compatibiliteitslaag, bereikt versie 5.0 op Android

Wine is een Windows-compatibiliteitslaag waarmee gebruikers Windows-apps op andere besturingssystemen kunnen uitvoeren. Wine voor Android heeft nu versie 5.0 bereikt - bekijk het eens!

Het Android-app-ecosysteem is in de loop van de jaren dat Android bestaat gestaag geëvolueerd, aangewakkerd door de gestage adoptie van mobiel als de primaire computerinteractie voor de meeste mensen. Veel gebruikers zijn aangetrokken tot een levensstijl die uitsluitend mobiel is, en dat komt omdat de apps en het app-ecosysteem op mobiel erin zijn geslaagd aan hun specifieke behoeften te voldoen. Maar als u ooit een desktopapplicatie nodig heeft zonder toegang tot een desktop, wat zou u dan doen? Dit is waar Wine komt, een Windows-compatibiliteitslaag waarmee gebruikers volledige Windows-applicaties op verschillende besturingssystemen kunnen uitvoeren. Wijn voor Android heeft nu v5.0 bereikt, waarin de ontwikkelingsinspanningen van het team voor een jaar worden verzameld.

Wine is een gratis en open-source compatibiliteitslaag voor Windows, bedoeld om computerprogramma's die voor Windows zijn ontwikkeld, op andere besturingssystemen te laten draaien.

Wine voor Android brengt Wine naar Android, blijkbaar. Wine is geen emulator (wat eigenlijk een recursief backroniem is voor de naam), dus het kan alleen worden uitgevoerd architectuurspecifieke versies van apps - de ARM-versie van Wine voor Android voert alleen ARM-applicaties uit, en niet x86.

De hoogtepunten van de stabiele release van Wine 5.0 zijn onder meer ondersteuning voor meerdere monitoren en Vulkan 1.1-ondersteuning. De volledige changelog voor de update ziet er als volgt uit:

Wijzigingenlogboek voor Wijn 5.0:

  • PE-modules:
    • De meeste modules zijn gebouwd in PE-formaat (Portable Executable, het binaire Windows-formaat) in plaats van ELF wanneer de MinGW-compiler beschikbaar is. Dit helpt verschillende kopieerbeveiligingsschema's die controleren of de inhoud op de schijf en in het geheugen van systeemmodules identiek is.
    • De werkelijke PE-binaire bestanden worden gekopieerd naar het Wine-voorvoegsel in plaats van de nep-DLL-bestanden. Hierdoor lijkt het voorvoegsel meer op een echte Windows-installatie, ten koste van wat extra schijfruimte.
    • Modules die naar PE zijn geconverteerd, kunnen standaard wide-char C-functies gebruiken, evenals wide-char karakterconstanten zoals L"abc". Dit maakt de code gemakkelijker te lezen.
    • Nog niet alle modules zijn omgezet naar PE; dit is een voortdurend proces dat zal doorgaan tijdens de Wine 5.x-ontwikkelingsserie.
    • De Wine C-runtime is bijgewerkt om koppelingen naar door MinGW gecompileerde binaire bestanden te ondersteunen; het wordt standaard gebruikt in plaats van de MinGW-runtime bij het bouwen van DLL's.
  • Afbeeldingen:
    • Meerdere beeldschermadapters en monitoren worden correct ondersteund, inclusief dynamische configuratiewijzigingen.
    • Het Vulkan-stuurprogramma ondersteunt maximaal versie 1.1.126 van de Vulkan-specificatie.
    • De WindowsCodecs-bibliotheek kan meer bitmapformaten converteren, inclusief palet-geïndexeerde formaten.
  • Direct3D:
    • Direct3D-toepassingen op volledig scherm blokkeren de screensaver.
    • DXGI-swapchain-presentaties informeren de toepassing wanneer het overeenkomstige venster wordt geminimaliseerd. Hierdoor kunnen toepassingen doorgaans het CPU-gebruik verminderen terwijl het wordt geminimaliseerd, en in sommige gevallen is dit nodig om het toepassingsvenster opnieuw te kunnen herstellen.
    • Schakelen tussen volledig scherm en venstermodus met behulp van de standaard Alt+Enter-combinatie is geïmplementeerd voor DXGI-toepassingen.
    • De volgende functies zijn geïmplementeerd voor Direct3D 12-toepassingen:
      • Schakelen tussen volledig scherm en venster.
      • Weergavemodi wijzigen.
      • Geschaalde cadeautjes.
      • Intervallen wisselen. Deze features waren eerder al geïmplementeerd voor eerdere versies van de Direct3D API.
    • De afhandeling van diverse randgevallen is verbeterd. Onder andere:
      • Referentiewaarden buiten bereik voor de alfa- en stenciltests.
      • Bemonstering van 2D-bronnen met 3D-samplers en omgekeerd.
      • Tekenen met toegewezen texturen en buffers.
      • Gebruik van ongeldige DirectDraw-clipperobjecten.
      • Direct3D-apparaten maken op ongeldige Windows, zoals het bureaubladvenster.
      • Viewports met een minimale Z groter dan of gelijk aan de maximale Z.
      • Bronnen worden tegelijkertijd door zowel shader-resource-weergaven als render-target- of diepte-stencil-weergaven gebonden.
      • Blits tussen formaten met en zonder alfacomponenten. Omdat goed functionerende applicaties niet afhankelijk zijn van deze randgevallen, hebben ze doorgaans slechts invloed op één of twee applicaties. Toch zijn het er nogal wat.
    • Vuile textuurgebieden worden nauwkeuriger bijgehouden voor Direct3D 8- en 9-textuuruploads.
    • Uploads van met S3TC gecomprimeerde 3D-texturen vereisen minder adresruimte. Omdat 3D-texturen potentieel groot kunnen zijn en uitputting van de adresruimte een probleem is voor 32-bits toepassingen, worden met S3TC gecomprimeerde 3D-texturen per segment geüpload in plaats van in één upload.
    • De ID3D11Multithread-interface is geïmplementeerd.
    • Er zijn diverse oplossingen voor verlichtingsberekeningen en verbeteringen voor oudere DirectDraw-toepassingen aangebracht.
    • Er is beperkte ondersteuning voor blits in swapchains geïmplementeerd.
    • Er zijn meer shader-reflectie-API's geïmplementeerd.
    • De wined3d CPU-blitter kan gecomprimeerde bronbronnen verwerken. Ondersteuning voor gecomprimeerde doelbronnen was al geïmplementeerd in een eerdere release.
    • De Direct3D grafische kaartdatabase herkent meer grafische kaarten.
    • Nieuwe HKEY_CURRENT_USER\Software\Wine\Direct3D registersleutels:
      • "shader_backend" (REG_SZ)De shader-backend die moet worden gebruikt. Mogelijke waarden zijn "glsl" (standaard) voor GLSL, "arb" voor ARB vertex/fragment-programma's en "none" om shader-ondersteuning uit te schakelen.
      • "strict_shader_math" (REG_DWORD) Strenge vertaling van Direct3D-shaders in- (0x1) of uitschakelen (0x0, standaard), mogelijk tegen prestatiekosten. Dit maakt momenteel alleen verschil met de standaard GLSL shader backend in combinatie met de eigen NVIDIA-drivers.
    • Verouderde registersleutel HKEY_CURRENT_USER\Software\Wine\Direct3D:
      • "GebruikGLSL"Dit is vervangen door de bovenstaande instelling "shader_backend".
  • D3DX:
    • Ondersteuning voor het comprimeren van texturen met behulp van S3TC-compressie is geïmplementeerd.
    • Diverse bewerkingen, zoals b.v. textuurvullingen op niet-toegewezen oppervlakken worden correcter geïmplementeerd. Voorheen was hun implementatie afhankelijk van de onderliggende Direct3D-implementatie, waarbij geen kaartbeperkingen werden afgedwongen.
    • Er zijn verschillende verbeteringen en reparaties aangebracht aan het effectframework.
  • Kernel:
    • De meeste functies die voorheen in Kernel32 zaten, zijn verplaatst naar KernelBase, om de architectuur van recente Windows-versies te volgen.
    • Bibliotheken met de verkeerde 32/64-bitsheid worden genegeerd wanneer ze in het zoekpad worden gevonden, zodat de juiste kan worden geladen als deze verderop in het pad wordt gevonden.
    • Kernelobjecten worden beter geëmuleerd voor apparaatstuurprogramma's die verwachten objecten vanaf de kernelzijde te manipuleren.
    • De synchronisatieobjecten op kernelniveau, zoals spin locks, fast mutexes, remove locks en resourcevariabelen, worden geïmplementeerd.
    • De batterijstatus van het systeem wordt correct gerapporteerd aan applicaties.
  • Gebruikersomgeving:
    • Geminimaliseerde vensters worden weergegeven met behulp van hun titelbalk in plaats van de oude pictogrammen in Windows 3.1-stijl.
    • De nieuwe knopstijlen Split Buttons en Command Links zijn geïmplementeerd.
    • Met het besturingselement Bewerken worden de marges ook voor CJK-lettertypen correct ingesteld.
  • Desktop-integratie:
    • Voor de mappen 'Downloads' en 'Templates' worden symbolische koppelingen naar de overeenkomstige Unix-mappen gemaakt.
  • Invoer apparaten:
    • Plug & Play-apparaatstuurprogramma's kunnen bij het opstarten worden geïnstalleerd en geladen.
    • Gamecontrollers worden beter ondersteund, inclusief goede ondersteuning voor de bediening van de hoedschakelaar, het stuur, het gaspedaal en de rem.
    • De oude joystick-API van Linux-versies ouder dan 2.2 wordt niet langer ondersteund.
  • .NETTO:
    • De Mono-engine is bijgewerkt naar versie 4.9.4, inclusief delen van het Windows Presentation Foundation (WPF)-framework.
    • De Gecko- en Mono-add-ons ondersteunen gedeelde installatie, waarbij de bestanden rechtstreeks vanaf een globale locatie onder /usr/share/wine worden gebruikt in plaats van te worden gekopieerd naar elk nieuw voorvoegsel.
  • Internet en netwerken:
    • De Gecko-engine is vernieuwd om recente toolchains te ondersteunen.
    • Er zijn een aantal nieuwe HTML-API's geïmplementeerd.
    • MSHTML ondersteunt enkele SVG-elementen.
    • Foutobjecten en uitzonderingspropagatie worden ondersteund in VBScript.
    • Er zijn een aantal ingebouwde VBScript-functies geïmplementeerd.
    • JScript EcmaScript-compatibele modus is uitgebreid om meer functies te ondersteunen.
    • JScript- en VBScript-scriptobjecten maken type-info-interfaces zichtbaar.
    • De HTTP-proxyconfiguratie kan worden opgehaald via DHCP.
    • Paspoort-HTTP-omleidingen worden ondersteund.
    • De HTTP-service en de bijbehorende client-side bibliotheek (HTTPAPI) zijn gedeeltelijk geïmplementeerd.
  • Cryptografie:
    • ECC-sleutels (elliptische curve) worden ondersteund bij gebruik van GnuTLS.
    • Het importeren van sleutels en certificaten van PFX-blobs is geïmplementeerd.
    • Het PBKDF2-sleutelafleidingsalgoritme wordt ondersteund.
  • Tekst en lettertypen:
    • OpenType-positioneringsfuncties worden ondersteund in DirectWrite en zijn standaard ingeschakeld voor Latijns schrift, inclusief spatiëring.
    • De toegang tot lettertypegegevens wordt veiliger gemaakt door de verschillende gegevenstabellen te valideren voordat u ze gebruikt.
    • DirectWrite-interfaces zijn bijgewerkt naar een recente SDK, waarbij enkele van de nieuwste API-toevoegingen zijn geïmplementeerd.
  • Audio/video:
    • De XAudio2-bibliotheken zijn opnieuw geïmplementeerd om de externe FAudio-bibliotheek te gebruiken, voor betere compatibiliteit.
    • De bibliotheken van de Media Foundation zijn ingevuld, waaronder:
      • Ondersteuning voor ingebouwde en gebruikersasynchrone werkwachtrijen.
      • Mogelijkheid om periodieke terugbelverzoeken, wachtende, geplande en reguliere werkitems in te dienen, met ondersteuning voor itemprioriteit.
      • Ondersteuning voor wachtrijen voor mediagebeurtenissen.
      • Verschillende kern-API voor het verwerken van mediatype-objecten, stream- en presentatiedescriptors, objectattributen, bytestream-objecten, samples en buffers.
      • Initiële implementatie van de Source Resolver.
      • Eerste implementatie van Source Reader API.
      • Implementatie voor Sample Grabber-object.
      • Kernondersteuning voor het bouwen van topologieobjecten.
      • Ingebouwde implementatie van de presentatieklok, begonnen met het implementeren van de Media Session-functionaliteit.
    • Het video-opnamefilter is aangepast om v4l2 te gebruiken in plaats van de verouderde v4l1 API, waardoor het gebruik van sommige camera's mogelijk is die v4l1 niet ondersteunen.
    • Ondersteuning voor vertaling en lezen van YUV naar RGB vanaf v4l2-apparaten met behulp van mmap() is verwijderd; voor beide zaken zijn we nu afhankelijk van libv4l2.
    • De ingebouwde AVI-, MPEG-I- en WAVE-decoders zijn verwijderd; we zijn nu afhankelijk van GStreamer of de Mac QuickTime Toolkit om dergelijke mediabestanden te decoderen.
    • Er zijn nog enkele VMR7-configuratie-API's geïmplementeerd.
    • De geluidsdrivers ondersteunen volumeaanpassingen per kanaal.
  • Internationalisering:
    • Unicode-tekentabellen zijn gebaseerd op versie 12.1.0 van de Unicode-standaard.
    • Unicode-normalisatie is geïmplementeerd.
    • De geografische regio-ID wordt automatisch ingesteld in het register op basis van de huidige landinstelling. Het kan indien nodig worden gewijzigd onder HKEY_CURRENT_USER\Configuratiescherm\International\Geo.
    • De Singalese en Asturische landinstellingen worden ondersteund.
    • Codepagina 28601 (Latijn/Thais) wordt ondersteund.
  • RPC/COM:
    • De typelib marshaller ondersteunt complexe structuren en arrays.
    • Er is een eerste implementatie van de Windows Script-runtimebibliotheek.
    • Er is een eerste implementatie van de Microsoft ActiveX Data Objects (ADO) -bibliotheek.
  • Installateurs:
    • Microsoft Installer (MSI) patchbestanden worden ondersteund.
    • De WUSA-tool (Windows Update Standalone Installer) ondersteunt het installeren van .MSU-updatebestanden.
  • ARM-platforms:
    • Het afwikkelen van uitzonderingen is geïmplementeerd voor ARM64, met behulp van de libunwind-bibliotheek.
    • OLE-stubloze proxy's worden ondersteund op ARM64.
  • Ontwikkeltools / Winelib:
    • De externe debugger van Visual Studio kan worden gebruikt voor het debuggen van applicaties die onder Wine draaien.
    • De Debug Engine-bibliotheek (DBGENG) is gedeeltelijk geïmplementeerd.
    • Binaire bestanden die voor een Windows-doel zijn gebouwd, zijn niet langer afhankelijk van de libwine-bibliotheek, zodat ze zonder extra afhankelijkheden op Windows kunnen worden uitgevoerd. De libwine-bibliotheek is helemaal niet langer voor Windows gebouwd.
    • De Resource Compiler en IDL Compiler ondersteunen een '--sysroot'-optie om het lokaliseren van headerbestanden in cross-compile-omgevingen mogelijk te maken.
    • Winegcc ondersteunt de opties '--target', '--wine-objdir', '--winebuild' en '-fuse-ld' die het gemakkelijker maken om te gebruiken als cross-compiler of met aangepaste toolchains.
    • De wine/unicode.h-header is niet langer beschikbaar voor applicaties, omdat de functies uiteindelijk zullen worden verwijderd en vervangen door de standaard C runtime-brede tekenfuncties.
  • Bouw infrastructuur:
    • Testbinaire bestanden worden gebouwd in PE-formaat als MinGW beschikbaar is, zodat hetzelfde testbinaire bestand zowel op Wine als Windows kan worden uitgevoerd. Het 'crosstest'-merkdoel is niet langer nodig of ondersteund.
    • De 'fastcall'-aanroepconventie wordt ondersteund in spec-bestanden. Het gebruikt de juiste naam mangling voor Windows-builds.
    • Een '-import'-ingangspuntvlag wordt ondersteund in spec-bestanden, om functies te markeren waarvoor een hotpatch-codevoorvoegsel nodig is om te worden gegenereerd voor hun importthunks.
    • Winebuild ondersteunt een '--builtin' optie om een ​​speciale handtekening toe te voegen aan PE-binaire bestanden om ze te markeren als Wine buildins.
  • Ingebouwde toepassingen:
    • De CHCP-tool is geïmplementeerd. Hiermee kunt u de consolecodepagina instellen.
    • De MSIDB-tool is geïmplementeerd. Het maakt het manipuleren van MSI-databases mogelijk.
  • Prestatieverbeteringen:
    • De verschillende tijdfuncties maken, indien beschikbaar, gebruik van systeemklokken met hogere prestaties, om de overhead in de weergavelus van veel games te verminderen.
    • Bij het opzoeken van bestanden wordt gebruik gemaakt van de ondersteuning voor het vouwen van hoofdletters in het ext4-bestandssysteem als deze is ingeschakeld in de map waarin wordt gezocht.
    • Lijstvakken zonder gegevensstijl (LBS_NODATA) presteren beter voor grote aantallen items.
    • Slanke Reader/Writer-vergrendelingen, ingetoetste gebeurtenissen en conditievariabelen gebruiken futexen op Linux om heen en weer reizen met wijnservers te voorkomen.
  • Nieuwe externe afhankelijkheden:
    • De MinGW-w64 cross-compiler wordt gebruikt om modules in PE-formaat te bouwen.
    • De FAudio-bibliotheek wordt gebruikt om XAudio2 te implementeren.
    • De Inotify-bibliotheek wordt gebruikt voor meldingen van bestandswijzigingen op BSD-platforms.
    • De Unwind-bibliotheek wordt gebruikt voor de afhandeling van uitzonderingen op ARM64.
    • In plaats van versie 1 wordt de Video4Linux versie 2 bibliotheek gebruikt.

Lees verder


Bron: Wijn hoofdkantoor

Verhaal via: AndroidPolitie