Wine, Windows Compatibility Layer, dosahuje na Androidu verze 5.0

Wine je vrstva kompatibility Windows, která uživatelům umožňuje spouštět aplikace Windows na jiných operačních systémech. Wine pro Android nyní dosáhlo verze 5.0 – podívejte se!

Ekosystém aplikací pro Android se v průběhu let existence Androidu neustále vyvíjel, což je podporováno neustálým přijímáním mobilních zařízení jako primární interakce s počítačem pro většinu lidí. Mnoho uživatelů tíhlo k životnímu stylu pouze pro mobily, a to proto, že aplikace a ekosystém aplikací v mobilu dokázaly splnit jejich konkrétní potřeby. Ale pokud se někdy ocitnete v nouzi desktopové aplikace, aniž byste měli přístup k ploše, co byste udělali? Zde přichází Wine, vrstva kompatibility Windows, která uživatelům umožňuje spouštět plnohodnotné aplikace Windows na různých operačních systémech. Wine pro Android má nyní dosaženo verze 5.0, shromažďující roční vývojové úsilí týmu.

Wine je bezplatná a open-source vrstva kompatibility pro Windows, jejímž cílem je umožnit počítačovým programům, které byly vyvinuty pro Windows, běžet na jiných operačních systémech.

Wine pro Android přináší Wine do Androidu, očividně. Wine není emulátor (což je ve skutečnosti rekurzivní backronym pro název), takže může běžet pouze verze aplikací pro konkrétní architekturu – verze ARM Wine pro Android bude spouštět pouze aplikace ARM, a ne x86.

Mezi hlavní výhody stabilního vydání Wine 5.0 patří podpora více monitorů a podpora Vulkan 1.1. Kompletní seznam změn pro aktualizaci je uveden níže:

Wine 5.0 Changelog:

  • PE moduly:
    • Většina modulů je postavena ve formátu PE (Portable Executable, binární formát Windows) namísto ELF, pokud je k dispozici kompilátor MinGW. To pomáhá různým schématům ochrany proti kopírování, která kontrolují, zda je obsah systémových modulů na disku a v paměti stejný.
    • Skutečné binárky PE jsou zkopírovány do předpony Wine namísto falešných souborů DLL. Díky tomu předpona vypadá spíše jako skutečná instalace Windows, za cenu určitého místa na disku navíc.
    • Moduly, které byly převedeny na PE, mohou používat standardní funkce C s širokými znaky a také znakové konstanty se širokými znaky, jako je L"abc". To usnadňuje čtení kódu.
    • Ne všechny moduly byly dosud převedeny na PE; toto je pokračující proces, který bude pokračovat během vývojové série Wine 5.x.
    • Runtime Wine C je aktualizováno, aby podporovalo propojení s binárními soubory zkompilovanými MinGW; používá se ve výchozím nastavení místo běhového prostředí MinGW při vytváření knihoven DLL.
  • Grafika:
    • Správně je podporováno více grafických adaptérů a monitorů, včetně dynamických změn konfigurace.
    • Ovladač Vulkan podporuje až do verze 1.1.126 specifikace Vulkan.
    • Knihovna WindowsCodecs je schopna převádět více bitmapových formátů, včetně formátů indexovaných paletou.
  • Direct3D:
    • Aplikace Direct3D na celou obrazovku blokují spořič obrazovky.
    • Prezentace DXGI swapchain informují aplikaci, když je příslušné okno minimalizováno. To obvykle umožňuje aplikacím snížit využití procesoru při minimalizaci a v některých případech je vyžadováno, aby bylo možné znovu obnovit okno aplikace.
    • Přepínání mezi celoobrazovkovým a okenním režimem pomocí standardní kombinace Alt+Enter je implementováno pro DXGI aplikace.
    • Pro aplikace Direct3D 12 jsou implementovány následující funkce:
      • Přepínání mezi celou obrazovkou a oknem.
      • Změna režimů zobrazení.
      • Dárky v měřítku.
      • Intervaly výměny. Tyto funkce byly již dříve implementovány pro dřívější verze rozhraní Direct3D API.
    • Zlepšila se manipulace s různými okrajovými pouzdry. Mezi ostatními:
      • Referenční hodnoty pro testy alfa a stencil jsou mimo rozsah.
      • Vzorkování 2D zdrojů pomocí 3D vzorkovačů a naopak.
      • Kreslení s namapovanými texturami a buffery.
      • Použití neplatných objektů ořezávače DirectDraw.
      • Vytváření zařízení Direct3D na neplatných Windows, jako je okno plochy.
      • Výřezy s minimálním Z větším nebo rovným maximálnímu Z.
      • Prostředky vázané současně prostřednictvím zobrazení zdrojů shaderu a zobrazení cíle vykreslení nebo zobrazení hloubky šablony.
      • Blity mezi formáty s alfa komponentami a bez nich. Protože dobře fungující aplikace nespoléhají na tyto okrajové případy, obvykle ovlivňují každou pouze jednu nebo dvě aplikace. Přesto je jich poměrně hodně.
    • Oblasti špinavých textur jsou sledovány přesněji pro odesílání textur Direct3D 8 a 9.
    • Nahrání 3D textur komprimovaných pomocí S3TC vyžaduje méně adresního prostoru. Vzhledem k tomu, že 3D textury mohou být potenciálně velké a vyčerpání adresního prostoru je problémem pro 32bitové aplikace, jsou 3D textury komprimované pomocí S3TC nahrány po jednotlivých řezech, nikoli v jediném nahrání.
    • Je implementováno rozhraní ID3D11Multithread.
    • Pro starší aplikace DirectDraw byly provedeny různé opravy a vylepšení výpočtu osvětlení.
    • Je implementována omezená podpora pro blity napříč swapchainy.
    • Je implementováno více rozhraní API pro odraz shaderu.
    • Wined3d CPU blitter zvládne komprimované zdrojové zdroje. Podpora pro komprimované cílové prostředky byla implementována již v předchozí verzi.
    • Databáze grafických karet Direct3D rozpoznává více grafických karet.
    • Nové klíče registru HKEY_CURRENT_USER\Software\Wine\Direct3D:
      • "shader_backend" (REG_SZ)Backend shaderu, který se má použít. Možné hodnoty jsou "glsl" (výchozí) pro GLSL, "arb" pro programy vertexů/fragmentů ARB a "none" pro zakázání podpory shaderů.
      • "strict_shader_math" (REG_DWORD) Povolí (0x1) nebo zakáže (0x0, výchozí) přísnější překlad Direct3D shaderů, potenciálně za cenu výkonu. To v současnosti dělá rozdíl pouze s výchozím backendem shaderu GLSL v kombinaci s proprietárními ovladači NVIDIA.
    • Zastaralý klíč registru HKEY_CURRENT_USER\Software\Wine\Direct3D:
      • "UseGLSL"Toto bylo nahrazeno nastavením "shader_backend" výše.
  • D3DX:
    • Je implementována podpora pro kompresi textur pomocí S3TC-komprese.
    • Různé operace, jako např. texturové výplně jsou na nemapovatelných površích implementovány správněji. Dříve jejich implementace spoléhala na základní implementaci Direct3D, která nevynucovala omezení mapování.
    • V rámci efektů byla provedena různá vylepšení a opravy.
  • Jádro:
    • Většina funkcí, které bývaly v Kernel32, je přesunuta do KernelBase, aby odpovídala architektuře posledních verzí Windows.
    • Knihovny se špatnou 32/64bitovou hodnotou jsou při nalezení ve vyhledávací cestě ignorovány, aby bylo možné načíst správnou, pokud je nalezena dále v cestě.
    • Objekty jádra se lépe emulují pro ovladače zařízení, které očekávají manipulaci s objekty ze strany jádra.
    • Jsou implementovány objekty synchronizace na úrovni jádra, jako jsou zámky otáčení, rychlé mutexy, odstranění zámků a proměnné prostředků.
    • Stav baterie systému je správně hlášen aplikacím.
  • Uživatelské rozhraní:
    • Minimalizovaná okna se zobrazují pomocí jejich záhlaví namísto starých ikon ve stylu Windows 3.1.
    • Jsou implementovány nové styly tlačítek Split Buttons a Command Links.
    • Ovládací prvek Upravit nastavuje okraje správně i pro písma CJK.
  • Integrace s počítačem:
    • Pro složky 'Downloads' a 'Templates' jsou vytvořeny symbolické odkazy na odpovídající adresáře Unixu.
  • Vstupní zařízení:
    • Ovladače zařízení Plug & Play lze nainstalovat a načíst při spuštění.
    • Herní ovladače jsou lépe podporovány, včetně správné podpory pro ovládání kloboukového spínače, kola, plynu a brzdy.
    • Staré joystick API verzí Linuxu starších než 2.2 již není podporováno.
  • .SÍŤ:
    • Modul Mono je aktualizován na verzi 4.9.4, včetně částí rámce Windows Presentation Foundation (WPF).
    • Doplňky Gecko a Mono podporují sdílenou instalaci, kde jsou soubory používány přímo z globálního umístění pod /usr/share/wine namísto toho, aby byly zkopírovány do každé nové předpony.
  • Internet a sítě:
    • Gecko engine je aktualizován, aby podporoval nejnovější toolchainy.
    • Je implementována řada nových HTML API.
    • MSHTML podporuje některé prvky SVG.
    • VBScript je podporován objekt chyby a šíření výjimek.
    • Je implementována řada vestavěných funkcí VBScript.
    • JScript Režim kompatibilní s EcmaScript je rozšířen o podporu více funkcí.
    • Objekty skriptů JScript a VBScript odhalují rozhraní informací o typu.
    • Konfiguraci HTTP proxy lze získat přes DHCP.
    • Passport HTTP přesměrování jsou podporována.
    • Služba HTTP a odpovídající knihovna na straně klienta (HTTPAPI) jsou částečně implementovány.
  • kryptografie:
    • Při použití GnuTLS jsou podporovány klíče ECC (eliptic-curve).
    • Je implementován import klíčů a certifikátů z objektů PFX.
    • Je podporován algoritmus pro odvození klíče PBKDF2.
  • Text a písma:
    • Funkce určování polohy OpenType jsou podporovány v DirectWrite a ve výchozím nastavení jsou povoleny pro latinku, včetně vyrovnání párů.
    • Přístup k datům písem je bezpečnější, protože různé datové tabulky před jejich použitím ověříte.
    • Rozhraní DirectWrite jsou aktualizována na nejnovější sadu SDK a implementují některé z nejnovějších doplňků API.
  • Audio/Video:
    • Knihovny XAudio2 jsou reimplementovány tak, aby využívaly externí knihovnu FAudio pro lepší kompatibilitu.
    • Knihovny Media Foundation jsou doplněny, včetně:
      • Podpora pro vestavěné a uživatelské asynchronní pracovní fronty.
      • Možnost odesílat periodická zpětná volání, čekající, naplánované a pravidelné pracovní položky s podporou priority položky.
      • Podpora pro fronty mediálních událostí.
      • Různá základní API pro zpracování objektů typu média, popisovačů proudů a prezentací, atributů objektů, objektů byte stream, vzorků a vyrovnávacích pamětí.
      • Implementace Initial Source Resolver.
      • Počáteční implementace Source Reader API.
      • Implementace pro objekt Sample Grabber.
      • Základní podpora pro vytváření objektů topologie.
      • Implementace vestavěných prezentačních hodin, zahájena implementace funkčnosti Media Session.
    • Filtr pro zachycení videa byl portován tak, aby používal v4l2 namísto zastaralého v4l1 API, což umožňuje použití některých kamer, které nepodporují v4l1.
    • Podpora pro překlad YUV do RGB a čtení ze zařízení v4l2 pomocí mmap() byla odstraněna; nyní závisíme na libv4l2 pro obě tyto věci.
    • Vestavěné dekodéry AVI, MPEG-I a WAVE byly odstraněny; nyní závisíme na GStreamer nebo Mac QuickTime Toolkit při dekódování takových mediálních souborů.
    • Jsou implementována některá další konfigurační API VMR7.
    • Ovladače zvuku podporují nastavení hlasitosti pro jednotlivé kanály.
  • Internacionalizace:
    • Tabulky znaků Unicode jsou založeny na verzi 12.1.0 standardu Unicode.
    • Je implementována normalizace Unicode.
    • ID geografické oblasti je automaticky nastaveno v registru na základě aktuálního národního prostředí. V případě potřeby jej lze upravit pod HKEY_CURRENT_USER\Control Panel\International\Geo.
    • Jsou podporovány sinhálské a asturské lokality.
    • Kódová stránka 28601 (latinka/thajština) je podporována.
  • RPC/COM:
    • Zařazovací nástroj typelib podporuje složité struktury a pole.
    • Existuje počáteční implementace runtime knihovny Windows Script.
    • Existuje počáteční implementace knihovny Microsoft ActiveX Data Objects (ADO).
  • Instalátoři:
    • Jsou podporovány soubory oprav Microsoft Installer (MSI).
    • Nástroj WUSA (Windows Update Standalone Installer) podporuje instalaci aktualizačních souborů .MSU.
  • ARM platformy:
    • Odvíjení výjimek je implementováno pro ARM64 pomocí knihovny libunwind.
    • OLE stubless proxy jsou podporovány na ARM64.
  • Vývojové nástroje / Winelib:
    • Vzdálený debugger sady Visual Studio lze použít k ladění aplikací spuštěných pod Wine.
    • Knihovna Debug Engine (DBGENG) je částečně implementována.
    • Binární soubory vytvořené pro cíl Windows již nezávisí na knihovně libwine, aby mohly běžet na Windows bez jakýchkoli dalších závislostí. Knihovna libwine již není vůbec vytvořena pro Windows.
    • Resource Compiler a IDL Compiler podporují volbu '--sysroot', která umožňuje vyhledání souborů záhlaví v prostředích s křížovou kompilací.
    • Winegcc podporuje možnosti '--target', '--wine-objir', '--winebuild' a '-fuse-ld', které usnadňují použití jako křížový kompilátor nebo s vlastními nástroji.
    • Záhlaví wine/unicode.h již není pro aplikace k dispozici, protože funkce budou nakonec odstraněny a nahrazeny standardními funkcemi pro široké znaky za běhu C.
  • Vybudujte infrastrukturu:
    • Testovací binární soubory jsou sestaveny ve formátu PE, pokud je k dispozici MinGW, takže stejný testovací binární soubor lze spustit na Wine i Windows. Cíl značky „crosstest“ již není potřeba ani podporován.
    • V souborech specifikací je podporována konvence volání 'fastcall'. Používá správné mandlování názvů pro sestavení Windows.
    • V souborech specifikací je podporován příznak vstupního bodu '-import' k označení funkcí, které potřebují předponu kódu hotpatch, která má být vygenerována pro jejich import thunks.
    • Winebuild podporuje možnost '--builtin' pro přidání speciálního podpisu k binárkám PE, které je označí jako vestavěné Wine.
  • Vestavěné aplikace:
    • Je implementován nástroj CHCP. Umožňuje nastavení kódové stránky konzoly.
    • Je implementován nástroj MSIDB. Umožňuje manipulaci s databázemi MSI.
  • Vylepšení výkonu:
    • Různé časové funkce používají vyšší výkon systémových hodin, pokud jsou k dispozici, aby se snížila režie ve vykreslovací smyčce mnoha her.
    • Vyhledávání souborů využívá podporu skládání případů v souborovém systému ext4, pokud je povolena v prohledávaném adresáři.
    • Seznamy bez datového stylu (LBS_NODATA) mají lepší výkon pro velký počet položek.
    • Slim Reader/Writer locks, keyed events a condition variables používají futexy v Linuxu, aby se vyhnuly zpátečním výletům na wineserver.
  • Nové externí závislosti:
    • Křížový kompilátor MinGW-w64 se používá k vytváření modulů ve formátu PE.
    • Knihovna FAudio se používá k implementaci XAudio2.
    • Knihovna Inotify se používá pro upozornění na změnu souborů na platformách BSD.
    • Knihovna Unwind se používá pro zpracování výjimek na ARM64.
    • Místo verze 1 se používá knihovna Video4Linux verze 2.

Přečtěte si více


Zdroj: Sídlo vína

Story Via: AndroidPolice