Wine, Windows-kompatibilitetslagret, når version 5.0 på Android

click fraud protection

Wine är ett Windows-kompatibilitetslager som tillåter användare att köra Windows-appar på andra operativsystem. Wine för Android har nu nått v5.0 -- kolla in det!

Android-appens ekosystem har stadigt utvecklats under åren av Androids existens, underblåst av det stadiga antagandet av mobil som den primära datorinteraktionen för de flesta. Många användare har dragit in på en livsstil endast för mobilen, och det beror på att apparna och appens ekosystem på mobilen har lyckats uppfylla deras specifika behov. Men om du någonsin skulle behöva ett skrivbordsprogram utan att ha tillgång till ett skrivbord, vad skulle du göra? Det är här Wine kommer, ett Windows-kompatibilitetslager som låter användare köra fullskaliga Windows-applikationer på olika operativsystem. Vin för Android har har nu nått v5.0, samlar ett års utvecklingsinsatser från teamet.

Wine är ett gratis och öppen källkodskompatibilitetslager för Windows, som syftar till att tillåta datorprogram som utvecklats för Windows att köras på andra operativsystem.

Wine för Android tar Wine till Android, självklart. Vin är inte en emulator (vilket faktiskt är en rekursiv bakronym för namnet), så det kan bara köras arkitekturspecifika versioner av appar -- ARM-versionen av Wine for Android kommer endast att köra ARM-applikationer, och inte x86.

Höjdpunkterna för den stabila utgåvan av Wine 5.0 inkluderar stöd för flera bildskärmar och stöd för Vulkan 1.1. Den fullständiga ändringsloggen för uppdateringen är som nedan:

Wine 5.0 Changelog:

  • PE-moduler:
    • De flesta moduler är byggda i PE-format (Portable Executable, Windows binära format) istället för ELF när MinGW-kompilatorn är tillgänglig. Detta hjälper olika kopieringsskyddssystem som kontrollerar att innehållet på disken och i minnet i systemmodulerna är identiska.
    • De faktiska PE-binärfilerna kopieras till vinprefixet istället för de falska DLL-filerna. Detta gör att prefixet ser mer ut som en riktig Windows-installation, till priset av lite extra diskutrymme.
    • Moduler som har konverterats till PE kan använda vanliga C-funktioner med breda tecken, såväl som teckenkonstanter med breda tecken som L"abc". Detta gör koden lättare att läsa.
    • Inte alla moduler har konverterats till PE ännu; detta är en pågående process som kommer att fortsätta under utvecklingsserien Wine 5.x.
    • Wine C-körtiden är uppdaterad för att stödja länkning till MinGW-kompilerade binärer; det används som standard istället för MinGW-runtime när man bygger DLL-filer.
  • Grafik:
    • Flera bildskärmsadaptrar och bildskärmar stöds korrekt, inklusive dynamiska konfigurationsändringar.
    • Vulkan-drivrutinen stöder upp till version 1.1.126 av Vulkan-specifikationen.
    • WindowsCodecs-biblioteket kan konvertera fler bitmappsformat, inklusive palettindexerade format.
  • Direct3D:
    • Fullscreen Direct3D-applikationer hämmar skärmsläckaren.
    • DXGI swapchain presenterar informerar applikationen när motsvarande fönster minimeras. Detta tillåter vanligtvis applikationer att minska CPU-användningen samtidigt som den minimeras, och det krävs i vissa fall för att applikationsfönstret ska kunna återställas igen.
    • Växling mellan helskärmsläge och fönsterläge med hjälp av standardkombinationen Alt+Enter är implementerad för DXGI-applikationer.
    • Följande funktioner är implementerade för Direct3D 12-applikationer:
      • Växla mellan helskärm och fönster.
      • Ändra visningslägen.
      • Skalade presenter.
      • Byt intervaller. Dessa funktioner var tidigare redan implementerade för tidigare versioner av Direct3D API.
    • Hanteringen av olika kantärenden förbättras. Bland andra:
      • Referensvärden utanför intervallet för alfa- och stenciltesterna.
      • Sampling av 2D-resurser med 3D-samplare och vice versa.
      • Rita med mappade texturer och buffertar.
      • Användning av ogiltiga DirectDraw-klippobjekt.
      • Skapa Direct3D-enheter på ogiltiga Windows, som skrivbordsfönstret.
      • Viewports med minsta Z större än eller lika med maximalt Z.
      • Resurser bundna genom både shader-resursvyer och render-mål- eller djupstencilvyer samtidigt.
      • Blitar mellan format med och utan alfakomponenter. Eftersom väluppfostrade applikationer inte förlitar sig på dessa kantfall, påverkar de vanligtvis bara en eller två applikationer vardera. Det finns ändå ganska många av dem.
    • Smutsiga texturområden spåras mer exakt för Direct3D 8 och 9 texturuppladdningar.
    • Uppladdningar av S3TC-komprimerade 3D-texturer kräver mindre adressutrymme. Eftersom 3D-texturer kan vara potentiellt stora, och adressutrymmesutmattning är ett problem för 32-bitarsapplikationer, laddas S3TC-komprimerade 3D-texturer upp per segment, istället för i en enda uppladdning.
    • ID3D11Multithread-gränssnittet är implementerat.
    • Olika ljusberäkningsfixar och förbättringar för äldre DirectDraw-applikationer har gjorts.
    • Begränsat stöd för blits över swapchains implementeras.
    • Fler skuggreflektions-API: er är implementerade.
    • Wined3d CPU blitter kan hantera komprimerade källresurser. Stöd för komprimerade destinationsresurser implementerades redan i en tidigare version.
    • Direct3D-grafikkortsdatabasen känner igen fler grafikkort.
    • Nya HKEY_CURRENT_USER\Software\Wine\Direct3D registernycklar:
      • "shader_backend" (REG_SZ)Skuggningsbackend som ska användas. Möjliga värden är "glsl" (standard) för GLSL, "arb" för ARB vertex-/fragmentprogram och "ingen" för att inaktivera shader-stöd.
      • "strict_shader_math" (REG_DWORD)Aktivera (0x1) eller inaktivera (0x0, standard) striktare översättning av Direct3D shaders, eventuellt till en prestationskostnad. Detta gör för närvarande bara skillnad med standard GLSL shader-backend i kombination med de proprietära NVIDIA-drivrutinerna.
    • Utfasad HKEY_CURRENT_USER\Software\Wine\Direct3D registernyckel:
      • "UseGLSL"Detta har ersatts av "shader_backend"-inställningen ovan.
  • D3DX:
    • Stöd för komprimering av texturer med S3TC-komprimering är implementerat.
    • Olika operationer, som t.ex. texturfyllningar, på omappbara ytor implementeras mer korrekt. Tidigare förlitade sig deras implementering på att den underliggande Direct3D-implementeringen inte upprätthöll mappningsbegränsningar.
    • Olika förbättringar och korrigeringar har gjorts i effektramverket.
  • Kärna:
    • De flesta funktioner som tidigare fanns i Kernel32 flyttas till KernelBase för att följa arkitekturen för de senaste Windows-versionerna.
    • Bibliotek med fel 32/64-bitar ignoreras när de hittas i sökvägen, för att möjliggöra inläsning av den korrekta om den hittas längre fram i sökvägen.
    • Kärnobjekt emuleras bättre för enhetsdrivrutiner som förväntar sig att manipulera objekt från kärnan.
    • Synkroniseringsobjekt på kärnnivå som spin-lås, snabba mutexes, ta bort lås och resursvariabler implementeras.
    • Systemets batteristatus rapporteras korrekt till applikationer.
  • Användargränssnitt:
    • Minimerade fönster visas med deras namnlist istället för de gamla Windows 3.1-ikonerna.
    • De nya knappstilarna Split-knappar och kommandolänkar är implementerade.
    • Redigera-kontrollen ställer in marginaler korrekt även för CJK-teckensnitt.
  • Desktopintegration:
    • Symboliska länkar till motsvarande Unix-kataloger skapas för mapparna "Nedladdningar" och "Mallar".
  • Inmatningsapparater:
    • Plug & Play-drivrutiner kan installeras och laddas vid start.
    • Spelkontroller stöds bättre, inklusive korrekt stöd för hattbrytare, hjul, gas och bromskontroller.
    • Det gamla joystick-API: et för Linux-versioner tidigare än 2.2 stöds inte längre.
  • .NETTO:
    • Mono-motorn uppdateras till version 4.9.4, inklusive delar av Windows Presentation Foundation-ramverket (WPF).
    • Tilläggen Gecko och Mono stöder delad installation, där filerna används direkt från en global plats under /usr/share/wine istället för att kopieras till varje nytt prefix.
  • Internet och nätverk:
    • Gecko-motorn är uppdaterad för att stödja de senaste verktygskedjorna.
    • Ett antal nya HTML-API: er har implementerats.
    • MSHTML stöder vissa SVG-element.
    • Utbredning av felobjekt och undantag stöds i VBScript.
    • Ett antal inbyggda VBScript-funktioner är implementerade.
    • JScript EcmaScript-kompatibelt läge utökas för att stödja fler funktioner.
    • JScript- och VBScript-skriptobjekt exponerar typinformationsgränssnitt.
    • HTTP-proxykonfigurationen kan hämtas via DHCP.
    • Passport HTTP-omdirigeringar stöds.
    • HTTP-tjänsten och motsvarande klientsidebibliotek (HTTPAPI) är delvis implementerade.
  • Kryptografi:
    • ECC-nycklar (elliptic curve) stöds när du använder GnuTLS.
    • Import av nycklar och certifikat från PFX-blobbar implementeras.
    • PBKDF2-nyckelhärledningsalgoritmen stöds.
  • Text och typsnitt:
    • OpenType-positioneringsfunktioner stöds i DirectWrite och är aktiverade för latinska skript som standard, inklusive kerning.
    • Tillgång till teckensnittsdata görs säkrare genom att validera de olika datatabellerna innan de används.
    • DirectWrite-gränssnitten uppdateras till en ny SDK, och implementerar några av de senaste API-tilläggen.
  • Ljud video:
    • XAudio2-biblioteken är omimplementerade för att använda det externa FAudio-biblioteket, för bättre kompatibilitet.
    • Media Foundations bibliotek förstärks, inklusive:
      • Stöd för inbyggda och användarasynkroniserade arbetsköer.
      • Möjlighet att skicka in periodiska återuppringningar, väntande, schemalagda och vanliga arbetsobjekt, med stöd för objektprioritet.
      • Stöd för mediahändelseköer.
      • Olika kärn-API för att hantera objekt av mediatyp, ström- och presentationsbeskrivningar, objektattribut, byteströmobjekt, prover och buffertar.
      • Initial Source Resolver implementering.
      • Initial implementering av Source Reader API.
      • Implementering för Sample Grabber-objekt.
      • Kärnstöd för att bygga topologiobjekt.
      • Inbyggd presentationsklockimplementering, började implementera Media Session-funktionalitet.
    • Videoinsamlingsfiltret har porterats för att använda v4l2 istället för det föråldrade v4l1 API, vilket tillåter användning av vissa kameror som inte stöder v4l1.
    • Stöd för YUV till RGB-översättning och läsning från v4l2-enheter med hjälp av mmap() har tagits bort; vi är nu beroende av libv4l2 för båda dessa saker.
    • De inbyggda AVI-, MPEG-I- och WAVE-avkodarna har tagits bort; vi är nu beroende av GStreamer eller Mac QuickTime Toolkit för att avkoda sådana mediafiler.
    • Några fler VMR7-konfigurations-API: er är implementerade.
    • Ljuddrivrutinerna stöder volymjusteringar per kanal.
  • Internationalisering:
    • Unicode-teckentabeller är baserade på version 12.1.0 av Unicode Standard.
    • Unicode-normalisering är implementerad.
    • Det geografiska region-id: t ställs automatiskt in i registret baserat på den aktuella lokalen. Den kan ändras vid behov under HKEY_CURRENT_USER\Kontrollpanelen\International\Geo.
    • Lokalerna singalesiska och asturiska stöds.
    • Codepage 28601 (latin/thailändsk) stöds.
  • RPC/COM:
    • Typelib marshaller stöder komplexa strukturer och arrayer.
    • Det finns en initial implementering av Windows Script runtime-bibliotek.
    • Det finns en initial implementering av Microsoft ActiveX Data Objects (ADO)-biblioteket.
  • Installatörer:
    • Microsoft Installer (MSI) Patch-filer stöds.
    • WUSA-verktyget (Windows Update Standalone Installer) stöder installation av .MSU-uppdateringsfiler.
  • ARM-plattformar:
    • Undantagsavveckling implementeras för ARM64, med hjälp av libunwind-biblioteket.
    • OLE stubbfria proxyservrar stöds på ARM64.
  • Utvecklingsverktyg / Winelib:
    • Visual Studio fjärrfelsökning kan användas för att felsöka applikationer som körs under Wine.
    • Debug Engine-biblioteket (DBGENG) är delvis implementerat.
    • Binärfiler byggda för ett Windows-mål är inte längre beroende av libwine-biblioteket, för att de ska kunna köras på Windows utan några extra beroenden. Libwine-biblioteket är inte längre byggt för Windows alls.
    • Resurskompilatorn och IDL-kompilatorn stöder ett "--sysroot"-alternativ för att tillåta lokalisering av huvudfiler i korskompileringsmiljöer.
    • Winegcc stöder alternativen '--target', '--wine-objdir', '--winebuild' och '-fuse-ld' som gör det lättare att använda som en korskompilator, eller med anpassade verktygskedjor.
    • Wine/unicode.h-huvudet är inte längre tillgängligt för applikationer, eftersom funktionerna i slutändan kommer att tas bort och ersättas av standard C runtime wide character-funktioner.
  • Bygg infrastruktur:
    • Testbinärer byggs i PE-format om MinGW är tillgängligt, så samma testbinär kan köras på både Wine och Windows. "Crosstest"-målet behövs inte längre eller stöds inte längre.
    • Anropskonventionen 'fastcall' stöds i specifikationsfiler. Den använder korrekt namnmangling för Windows-byggen.
    • En '-import' ingångspunktsflagga stöds i spec-filer för att markera funktioner som behöver ett hotpatch-kodprefix för att genereras för deras import-thunks.
    • Winebuild stöder ett '--builtin'-alternativ för att lägga till en speciell signatur till PE-binärer för att markera dem som inbyggda viner.
  • Inbyggda applikationer:
    • CHCP-verktyget är implementerat. Det gör det möjligt att ställa in konsolens teckentabell.
    • MSIDB-verktyget är implementerat. Det tillåter manipulering av MSI-databaser.
  • Prestanda förbättringar:
    • De olika tidsfunktionerna använder systemklockor med högre prestanda om sådana finns, för att minska kostnaderna i renderingsslingan för många spel.
    • Filsökningar drar fördel av ext4 filsystems fallvikningsstöd om det är aktiverat i katalogen som du söker.
    • Listboxar utan datastil (LBS_NODATA) har bättre prestanda för ett stort antal objekt.
    • Slim Reader/Writer-lås, nyckelhändelser och tillståndsvariabler använder futexes på Linux för att undvika vinservern tur och retur.
  • Nya externa beroenden:
    • MinGW-w64 korskompilatorn används för att bygga moduler i PE-format.
    • FAudio-biblioteket används för att implementera XAudio2.
    • Inotify-biblioteket används för filändringsmeddelanden på BSD-plattformar.
    • Unwind-biblioteket används för undantagshantering på ARM64.
    • Video4Linux version 2-biblioteket används istället för version 1.

Läs mer


Källa: Vin HQ

Berättelse via: AndroidPolice