Wine, il livello di compatibilità di Windows, raggiunge la versione 5.0 su Android

click fraud protection

Wine è un livello di compatibilità di Windows che consente agli utenti di eseguire app Windows su altri sistemi operativi. Wine per Android ha ora raggiunto la versione 5.0: dai un'occhiata!

L'ecosistema delle app Android si è evoluto costantemente nel corso degli anni di esistenza di Android, alimentato dalla costante adozione del cellulare come interazione primaria con il computer per la maggior parte delle persone. Molti utenti gravitano verso uno stile di vita esclusivamente mobile, e questo perché le app e l'ecosistema delle app sui dispositivi mobili sono riusciti a soddisfare le loro esigenze particolari. Ma se mai ti trovassi ad aver bisogno di un'applicazione desktop senza avere accesso a un desktop, cosa faresti? È qui che arriva Wine, un livello di compatibilità di Windows che consente agli utenti di eseguire applicazioni Windows complete su diversi sistemi operativi. Wine per Android ha ora ha raggiunto la v5.0, raccogliendo un anno di sforzi di sviluppo da parte del team.

Wine è un livello di compatibilità gratuito e open source per Windows, che mira a consentire ai programmi per computer sviluppati per Windows di essere eseguiti su altri sistemi operativi.

Wine per Android porta Wine su Android, ovviamente. Wine non è un emulatore (che in realtà è un acronimo ricorsivo per il nome), quindi può solo essere eseguito versioni di app specifiche dell'architettura: la versione ARM di Wine per Android eseguirà solo applicazioni ARM, e non x86.

I punti salienti della versione stabile di Wine 5.0 includono il supporto multi-monitor e il supporto Vulkan 1.1. Il registro delle modifiche completo per l'aggiornamento è il seguente:

Registro delle modifiche di Wine 5.0:

  • Moduli PE:
    • La maggior parte dei moduli sono realizzati in formato PE (Portable Executable, il formato binario di Windows) anziché ELF quando è disponibile il compilatore MinGW. Ciò aiuta vari schemi di protezione dalla copia che controllano che i contenuti su disco e in memoria dei moduli di sistema siano identici.
    • Gli effettivi binari PE vengono copiati nel prefisso Wine invece dei falsi file DLL. Ciò rende il prefisso più simile a una vera installazione di Windows, al costo di spazio su disco aggiuntivo.
    • I moduli che sono stati convertiti in PE possono utilizzare funzioni C standard a caratteri larghi, nonché costanti di caratteri larghi come L"abc". Ciò rende il codice più facile da leggere.
    • Non tutti i moduli sono ancora stati convertiti in PE; questo è un processo continuo che continuerà durante la serie di sviluppo di Wine 5.x.
    • Il runtime di Wine C è stato aggiornato per supportare il collegamento ai binari compilati con MinGW; viene utilizzato per impostazione predefinita al posto del runtime MinGW durante la creazione di DLL.
  • Grafica:
    • Sono supportati correttamente più adattatori video e monitor, incluse le modifiche alla configurazione dinamica.
    • Il driver Vulkan supporta fino alla versione 1.1.126 delle specifiche Vulkan.
    • La libreria WindowsCodecs è in grado di convertire più formati bitmap, inclusi i formati indicizzati in tavolozza.
  • 3D diretto:
    • Le applicazioni Direct3D a schermo intero inibiscono lo screensaver.
    • I regali di swapchain DXGI informano l'applicazione quando la finestra corrispondente è ridotta a icona. Ciò in genere consente alle applicazioni di ridurre l'utilizzo della CPU mentre sono ridotte a icona e in alcuni casi è necessario per consentire il ripristino successivo della finestra dell'applicazione.
    • Il passaggio dalla modalità a schermo intero a quella a finestra utilizzando la combinazione standard Alt+Invio è implementato per le applicazioni DXGI.
    • Le seguenti funzionalità sono implementate per le applicazioni Direct3D 12:
      • Passaggio da schermo intero a finestra.
      • Modifica delle modalità di visualizzazione.
      • Regali in scala.
      • Intervalli di scambio. Queste funzionalità erano già implementate in precedenza per le versioni precedenti dell'API Direct3D.
    • La gestione di vari casi limite è stata migliorata. Tra gli altri:
      • Valori di riferimento fuori intervallo per i test alfa e stencil.
      • Campionamento di risorse 2D con campionatori 3D e viceversa.
      • Disegnare con texture e buffer mappati.
      • Utilizzo di oggetti clipper DirectDraw non validi.
      • Creazione di dispositivi Direct3D su Windows non validi, come la finestra del desktop.
      • Finestre con una Z minima maggiore o uguale alla Z massima.
      • Risorse vincolate contemporaneamente sia alle viste delle risorse shader che alle viste target di rendering o stencil di profondità.
      • Passa da un formato all'altro con e senza componenti alfa. Poiché le applicazioni ben funzionanti non si basano su questi casi limite, in genere interessano solo una o due applicazioni ciascuna. Ce ne sono comunque parecchi.
    • Le regioni con texture sporche vengono tracciate in modo più accurato per i caricamenti di texture Direct3D 8 e 9.
    • I caricamenti di texture 3D compresse con S3TC richiedono meno spazio di indirizzi. Poiché le texture 3D possono essere potenzialmente grandi e l'esaurimento dello spazio degli indirizzi è un problema per le applicazioni a 32 bit, le texture 3D compresse S3TC vengono caricate per porzione, anziché in un singolo caricamento.
    • È implementata l'interfaccia ID3D11Multithread.
    • Sono state apportate varie correzioni e miglioramenti al calcolo dell'illuminazione per le applicazioni DirectDraw precedenti.
    • È implementato il supporto limitato per i blit attraverso le catene di scambio.
    • Sono implementate più API di riflessione dello shader.
    • Il blitter della CPU wined3d può gestire risorse sorgente compresse. Il supporto per le risorse di destinazione compresse era già implementato in una versione precedente.
    • Il database delle schede grafiche Direct3D riconosce più schede grafiche.
    • Nuove chiavi di registro HKEY_CURRENT_USER\Software\Wine\Direct3D:
      • "shader_backend" (REG_SZ)Il backend shader da utilizzare. I valori possibili sono "glsl" (predefinito) per GLSL, "arb" per programmi vertici/frammenti ARB e "none" per disabilitare il supporto dello shader.
      • "strict_shader_math" (REG_DWORD)Abilita (0x1) o disabilita (0x0, impostazione predefinita) una traduzione più rigorosa degli shader Direct3D, potenzialmente a scapito delle prestazioni. Ciò attualmente fa la differenza solo con il backend shader GLSL predefinito in combinazione con i driver NVIDIA proprietari.
    • Chiave di registro HKEY_CURRENT_USER\Software\Wine\Direct3D obsoleta:
      • "UseGLSL"Questo è stato sostituito dall'impostazione "shader_backend" sopra.
  • D3DX:
    • È implementato il supporto per la compressione delle texture utilizzando la compressione S3TC.
    • Varie operazioni, come ad es. i riempimenti texture sulle superfici non mappabili vengono implementati in modo più corretto. In precedenza la loro implementazione si basava sull'implementazione Direct3D sottostante che non applicava restrizioni sulla mappatura.
    • Sono stati apportati vari miglioramenti e correzioni al framework degli effetti.
  • nocciolo:
    • La maggior parte delle funzioni che si trovavano in Kernel32 sono state spostate su KernelBase, per seguire l'architettura delle recenti versioni di Windows.
    • Le librerie a 32/64 bit errate vengono ignorate quando vengono trovate nel percorso di ricerca, per consentire il caricamento di quella corretta se viene trovata più avanti nel percorso.
    • Gli oggetti del kernel vengono emulati meglio per i driver di dispositivo che prevedono di manipolare oggetti dal lato del kernel.
    • Vengono implementati gli oggetti di sincronizzazione a livello di kernel come spin lock, mutex veloci, rimozione lock e variabili di risorsa.
    • Lo stato della batteria del sistema viene segnalato correttamente alle applicazioni.
  • Interfaccia utente:
    • Le finestre ridotte a icona vengono visualizzate utilizzando la barra del titolo anziché le vecchie icone in stile Windows 3.1.
    • Sono stati implementati i nuovi stili di pulsante Pulsanti divisi e Collegamenti di comando.
    • Il controllo Modifica imposta correttamente i margini anche per i font CJK.
  • Integrazione desktop:
    • Per le cartelle "Download" e "Modelli" vengono creati collegamenti simbolici alle directory Unix corrispondenti.
  • Dispositivi di input:
    • I driver del dispositivo Plug & Play possono essere installati e caricati all'avvio.
    • I controller di gioco sono supportati meglio, compreso il supporto adeguato per i comandi dell'interruttore del cappello, del volante, dell'acceleratore e del freno.
    • La vecchia API joystick delle versioni Linux precedenti alla 2.2 non è più supportata.
  • .NETTO:
    • Il motore Mono è stato aggiornato alla versione 4.9.4, incluse parti del framework Windows Presentation Foundation (WPF).
    • I componenti aggiuntivi Gecko e Mono supportano l'installazione condivisa, in cui i file vengono utilizzati direttamente da una posizione globale in /usr/share/wine invece di essere copiati in ogni nuovo prefisso.
  • Internet e reti:
    • Il motore Gecko è stato aggiornato per supportare le toolchain recenti.
    • Sono implementate numerose nuove API HTML.
    • MSHTML supporta alcuni elementi SVG.
    • L'oggetto errore e la propagazione delle eccezioni sono supportati in VBScript.
    • Sono implementate numerose funzioni integrate di VBScript.
    • La modalità compatibile con JScript EcmaScript è stata estesa per supportare più funzionalità.
    • Gli oggetti script JScript e VBScript espongono interfacce di informazioni sul tipo.
    • La configurazione del proxy HTTP può essere recuperata tramite DHCP.
    • Sono supportati i reindirizzamenti HTTP Passport.
    • Il servizio HTTP e la corrispondente libreria lato client (HTTPAPI) sono parzialmente implementati.
  • Crittografia:
    • Le chiavi ECC (curva ellittica) sono supportate quando si utilizza GnuTLS.
    • È implementata l'importazione di chiavi e certificati dai BLOB PFX.
    • È supportato l'algoritmo di derivazione della chiave PBKDF2.
  • Testo e caratteri:
    • Le funzionalità di posizionamento OpenType sono supportate in DirectWrite e abilitate per gli script latini per impostazione predefinita, inclusa la crenatura.
    • L'accesso ai dati dei font è reso più sicuro convalidando le varie tabelle di dati prima di utilizzarle.
    • Le interfacce DirectWrite vengono aggiornate a un SDK recente, implementando alcune delle ultime aggiunte API.
  • Audio video:
    • Le librerie XAudio2 sono state reimplementate per utilizzare la libreria FAudio esterna, per una migliore compatibilità.
    • Le biblioteche della Media Foundation sono arricchite, tra cui:
      • Supporto per code di lavoro asincrone integrate e utente.
      • Possibilità di inviare richiamate periodiche, elementi di lavoro in attesa, pianificati e regolari, con supporto per la priorità degli elementi.
      • Supporto per code di eventi multimediali.
      • Varie API principali per gestire oggetti di tipo multimediale, descrittori di flusso e presentazione, attributi di oggetti, oggetti di flusso di byte, campioni e buffer.
      • Implementazione iniziale del Source Resolver.
      • Implementazione iniziale dell'API Source Reader.
      • Implementazione per l'oggetto Sample Grabber.
      • Supporto principale per la creazione di oggetti di topologia.
      • Implementazione dell'orologio di presentazione integrata, avvio dell'implementazione della funzionalità Media Session.
    • Il filtro di acquisizione video è stato portato per utilizzare v4l2 invece dell'API v4l1 deprecata, consentendo l'uso di alcune fotocamere che non supportano v4l1.
    • Il supporto per la traduzione e la lettura da YUV a RGB da dispositivi v4l2 utilizzando mmap() è stato rimosso; ora dipendiamo da libv4l2 per entrambe queste cose.
    • I decoder AVI, MPEG-I e WAVE integrati sono stati rimossi; ora dipendiamo da GStreamer o dal Mac QuickTime Toolkit per decodificare tali file multimediali.
    • Sono implementate altre API di configurazione VMR7.
    • I driver audio supportano le regolazioni del volume per canale.
  • Internazionalizzazione:
    • Le tabelle di caratteri Unicode si basano sulla versione 12.1.0 dello standard Unicode.
    • È implementata la normalizzazione Unicode.
    • L'ID della regione geografica viene impostato automaticamente nel registro in base alle impostazioni internazionali correnti. Se necessario, può essere modificato in HKEY_CURRENT_USER\Control Panel\International\Geo.
    • Sono supportate le versioni locali singalese e asturiana.
    • È supportata la tabella codici 28601 (latino/tailandese).
  • RPC/COM:
    • Il marshaller typelib supporta strutture e array complessi.
    • Esiste un'implementazione iniziale della libreria runtime di Windows Script.
    • Esiste un'implementazione iniziale della libreria Microsoft ActiveX Data Objects (ADO).
  • Installatori:
    • Sono supportati i file patch di Microsoft Installer (MSI).
    • Lo strumento WUSA (programma di installazione autonomo di Windows Update) supporta l'installazione dei file di aggiornamento .MSU.
  • Piattaforme ARM:
    • Lo scioglimento delle eccezioni è implementato per ARM64, utilizzando la libreria libunwind.
    • I proxy stubless OLE sono supportati su ARM64.
  • Strumenti di sviluppo / Winelib:
    • Il debugger remoto di Visual Studio può essere utilizzato per eseguire il debug delle applicazioni in esecuzione in Wine.
    • La libreria del motore di debug (DBGENG) è parzialmente implementata.
    • I binari creati per un target Windows non dipendono più dalla libreria libwine, per consentire loro di essere eseguiti su Windows senza dipendenze aggiuntive. La libreria libwine non è più creata per Windows.
    • Il compilatore di risorse e il compilatore IDL supportano un'opzione '--sysroot' per consentire l'individuazione dei file di intestazione in ambienti di compilazione incrociata.
    • Winegcc supporta le opzioni '--target', '--wine-objdir', '--winebuild' e '-fuse-ld' che ne semplificano l'utilizzo come compilatore incrociato o con toolchain personalizzate.
    • L'intestazione wine/unicode.h non è più disponibile per le applicazioni, poiché le funzioni alla fine verranno rimosse e sostituite dalle funzioni di carattere standard a livello di runtime C.
  • Costruisci infrastrutture:
    • I binari di test sono creati in formato PE se MinGW è disponibile, quindi lo stesso binario di test può essere eseguito sia su Wine che su Windows. Il target make "crosstest" non è più necessario né supportato.
    • La convenzione di chiamata "fastcall" è supportata nei file spec. Utilizza la modifica del nome corretta per le build di Windows.
    • Nei file specifiche è supportato un flag del punto di ingresso '-import' per contrassegnare le funzioni che necessitano di un prefisso di codice hotpatch da generare per i relativi thunk di importazione.
    • Winebuild supporta un'opzione '--builtin' per aggiungere una firma speciale ai binari PE per contrassegnarli come built-in di Wine.
  • Applicazioni integrate:
    • Lo strumento CHCP è implementato. Permette di impostare la codepage della console.
    • Lo strumento MSIDB è implementato. Permette di manipolare i database MSI.
  • Miglioramenti delle prestazioni:
    • Le varie funzioni temporali utilizzano orologi di sistema con prestazioni più elevate, se disponibili, per ridurre il sovraccarico nel ciclo di rendering di molti giochi.
    • Le ricerche di file sfruttano il supporto per la piegatura delle case del filesystem ext4 se è abilitato nella directory in cui si sta effettuando la ricerca.
    • Le caselle di riepilogo in stile senza dati (LBS_NODATA) hanno prestazioni migliori per un numero elevato di elementi.
    • I blocchi Slim Reader/Writer, gli eventi con chiave e le variabili di condizione utilizzano i futex su Linux per evitare viaggi di andata e ritorno del wineserver.
  • Nuove dipendenze esterne:
    • Il compilatore incrociato MinGW-w64 viene utilizzato per creare moduli in formato PE.
    • La libreria FAudio viene utilizzata per implementare XAudio2.
    • La libreria Inotify viene utilizzata per le notifiche di modifica dei file sulle piattaforme BSD.
    • La libreria Unwind viene utilizzata per la gestione delle eccezioni su ARM64.
    • Viene utilizzata la libreria Video4Linux versione 2 al posto della versione 1.

Per saperne di più


Fonte: Sede del vino

Storia tramite: AndroidPolizia