Wine este un strat de compatibilitate Windows care permite utilizatorilor să ruleze aplicații Windows pe alte sisteme de operare. Wine pentru Android a ajuns acum la versiunea 5.0 -- verifică-l!
Ecosistemul de aplicații Android a evoluat constant de-a lungul anilor de existență a lui Android, alimentat de adoptarea constantă a mobilului ca interacțiune principală cu computerul pentru majoritatea oamenilor. Mulți utilizatori s-au orientat către un stil de viață exclusiv pentru dispozitive mobile și asta pentru că aplicațiile și ecosistemul de aplicații de pe mobil au reușit să-și îndeplinească nevoile specifice. Dar dacă ai nevoie vreodată de o aplicație desktop fără a avea acces la un desktop, ce ai face? Aici vine Wine, un strat de compatibilitate Windows care permite utilizatorilor să ruleze aplicații Windows complete pe diferite sisteme de operare. Wine pentru Android are acum a ajuns la v5.0, adunând eforturile de dezvoltare de un an din partea echipei.
Wine este un strat de compatibilitate gratuit și open-source pentru Windows, care urmărește să permită programelor de calculator care au fost dezvoltate pentru Windows să ruleze pe alte sisteme de operare.
Wine pentru Android aduce Wine pe Android, evident. Wine nu este un emulator (care este de fapt un backronym recursiv pentru nume), deci poate rula doar versiuni ale aplicațiilor specifice arhitecturii -- versiunea ARM a Wine pentru Android va rula numai aplicații ARM, și nu x86.Punctele importante pentru lansarea stabilă a Wine 5.0 includ suportul pentru mai multe monitoare și suportul Vulkan 1.1. Jurnalul complet de modificări pentru actualizare este după cum urmează:
Jurnalul modificărilor Wine 5.0:
- module PE:
- Majoritatea modulelor sunt construite în format PE (Portable Executable, formatul binar Windows) în loc de ELF când compilatorul MinGW este disponibil. Acest lucru ajută la diferite scheme de protecție la copiere care verifică dacă conținutul de pe disc și din memorie al modulelor de sistem este identic.
- Binarele PE reale sunt copiate în prefixul Wine în loc de fișierele DLL false. Acest lucru face ca prefixul să arate mai mult ca o instalare Windows reală, cu prețul unui spațiu suplimentar pe disc.
- Modulele care au fost convertite în PE pot folosi funcții standard C cu caracter larg, precum și constante de caractere cu caracter larg, cum ar fi L „abc”. Acest lucru face codul mai ușor de citit.
- Nu toate modulele au fost încă convertite în PE; acesta este un proces în desfășurare care va continua în timpul seriei de dezvoltare Wine 5.x.
- Runtime-ul Wine C este actualizat pentru a accepta conectarea la binarele compilate de MinGW; este folosit în mod implicit în locul runtime-ului MinGW când se construiește DLL-uri.
- Grafică:
- Mai multe adaptoare de afișare și monitoare sunt acceptate corespunzător, inclusiv modificările dinamice ale configurației.
- Driverul Vulkan acceptă până la versiunea 1.1.126 a specificației Vulkan.
- Biblioteca WindowsCodecs este capabilă să convertească mai multe formate bitmap, inclusiv formate indexate în paletă.
- Direct3D:
- Aplicațiile Direct3D pe ecran complet inhibă economizorul de ecran.
- Prezentările swapchain DXGI informează aplicația când fereastra corespunzătoare este minimizată. Acest lucru permite de obicei aplicațiilor să reducă utilizarea CPU în timp ce sunt minimizate și, în unele cazuri, este necesar pentru a permite restabilirea ferestrei aplicației.
- Comutarea între modurile ecran complet și fereastră folosind combinația standard Alt+Enter este implementată pentru aplicațiile DXGI.
- Următoarele caracteristici sunt implementate pentru aplicațiile Direct3D 12:
- Comutarea între ecran complet și fereastră.
- Schimbarea modurilor de afișare.
- Cadouri la scară.
- Intervalele de schimb. Aceste caracteristici au fost deja implementate anterior pentru versiunile anterioare ale API-ului Direct3D.
- Manipularea diferitelor carcase marginale este îmbunătățită. Printre alții:
- Valori de referință în afara intervalului pentru testele alfa și stencil.
- Eșantionarea resurselor 2D cu probe 3D și invers.
- Desen cu texturi și buffere mapate.
- Utilizarea obiectelor de tăiere DirectDraw nevalide.
- Crearea de dispozitive Direct3D pe Windows nevalid, cum ar fi fereastra desktopului.
- Ferestre cu un Z minim mai mare sau egal cu Z maxim.
- Resurse legate atât de vizualizările shader-resurse, cât și de vizualizările de randare-țintă sau de depth-stencil în același timp.
- Blits între formate cu și fără componente alfa. Deoarece aplicațiile bine comportate nu se bazează pe aceste carcase marginale, de obicei afectează doar una sau două aplicații fiecare. Există totuși un număr destul de mare.
- Regiunile de textură murdare sunt urmărite mai precis pentru încărcările de texturi Direct3D 8 și 9.
- Încărcările de texturi 3D comprimate cu S3TC necesită mai puțin spațiu de adrese. Deoarece texturile 3D pot fi potențial mari, iar epuizarea spațiului de adrese este o preocupare pentru aplicațiile pe 32 de biți, texturile 3D comprimate cu S3TC sunt încărcate pe felie, în loc să fie într-o singură încărcare.
- Este implementată interfața ID3D11Multithread.
- Au fost făcute diverse remedieri de calcul de iluminare și îmbunătățiri pentru aplicațiile DirectDraw mai vechi.
- Este implementat suport limitat pentru blit-uri în cadrul swapchain-urilor.
- Sunt implementate mai multe API-uri de reflectare a umbririi.
- Wined3d CPU blitter poate gestiona resurse sursă comprimate. Suportul pentru resursele de destinație comprimate a fost deja implementat într-o versiune anterioară.
- Baza de date a plăcilor grafice Direct3D recunoaște mai multe plăci grafice.
- Chei noi de registry HKEY_CURRENT_USER\Software\Wine\Direct3D:
- „shader_backend” (REG_SZ)Backend-ul shader de utilizat. Valorile posibile sunt „glsl” (implicit) pentru GLSL, „arb” pentru programele ARB vertex/fragment și „none” pentru a dezactiva suportul shader.
- „strict_shader_math” (REG_DWORD) Activați (0x1) sau dezactivați (0x0, implicit) traducerea mai strictă a shader-urilor Direct3D, posibil cu un cost de performanță. În prezent, acest lucru face diferența doar cu backend-ul implicit GLSL shader în combinație cu driverele proprietare NVIDIA.
- Cheie de registry HKEY_CURRENT_USER\Software\Wine\Direct3D depreciată:
- „UseGLSL”Acest lucru a fost înlocuit de setarea „shader_backend” de mai sus.
- D3DX:
- Este implementat suportul pentru comprimarea texturilor folosind compresia S3TC.
- Diverse operații, cum ar fi de ex. umplerile de textură, pe suprafețele nemapabile sunt implementate mai corect. Anterior, implementarea lor se baza pe implementarea Direct3D subiacentă, care nu impunea restricții de cartografiere.
- Au fost aduse diferite îmbunătățiri și remedieri cadrului de efect.
- Nucleu:
- Majoritatea funcțiilor care erau în Kernel32 sunt mutate în KernelBase, pentru a urma arhitectura versiunilor recente de Windows.
- Bibliotecile cu 32/64 de biți greșit sunt ignorate atunci când sunt găsite în calea de căutare, pentru a permite încărcarea celei corecte dacă este găsită mai departe în cale.
- Obiectele kernel sunt mai bine emulate pentru driverele de dispozitiv care se așteaptă să manipuleze obiecte din partea kernelului.
- Sunt implementate obiectele de sincronizare la nivel de kernel, cum ar fi blocările de rotație, mutexurile rapide, blocările de eliminare și variabilele de resurse.
- Starea bateriei sistemului este raportată corespunzător aplicațiilor.
- Interfața cu utilizatorul:
- Ferestrele minimizate sunt afișate folosind bara de titlu în loc de pictogramele vechi în stil Windows 3.1.
- Sunt implementate noile stiluri de butoane Split Buttons și Command Links.
- Controlul Edit setează corect marginile și pentru fonturile CJK.
- Integrare desktop:
- Legăturile simbolice către directoarele Unix corespunzătoare sunt create pentru folderele „Descărcări” și „Șabloane”.
- Dispozitive de intrare:
- Driverele de dispozitiv Plug & Play pot fi instalate și încărcate la pornire.
- Controlerele de joc sunt mai bine acceptate, inclusiv suport adecvat pentru comutatorul de pălărie, roată, gaz și comenzi de frână.
- Vechiul API de joystick al versiunilor Linux anterioare 2.2 nu mai este acceptat.
- .NET:
- Motorul Mono este actualizat la versiunea 4.9.4, inclusiv părți ale cadrului Windows Presentation Foundation (WPF).
- Suplimentele Gecko și Mono acceptă instalarea partajată, unde fișierele sunt utilizate direct dintr-o locație globală sub /usr/share/wine în loc să fie copiate în fiecare prefix nou.
- Internet și rețele:
- Motorul Gecko este reîmprospătat pentru a suporta lanțurile de instrumente recente.
- Sunt implementate o serie de noi API-uri HTML.
- MSHTML acceptă unele elemente SVG.
- Propagarea obiectelor de eroare și a excepțiilor sunt acceptate în VBScript.
- Sunt implementate un număr de funcții integrate VBScript.
- Modul compatibil JScript EcmaScript este extins pentru a suporta mai multe funcții.
- Obiectele de script JScript și VBScript expun interfețe cu informații de tip.
- Configurația proxy HTTP poate fi preluată prin DHCP.
- Redirecționările HTTP pentru pașaport sunt acceptate.
- Serviciul HTTP și biblioteca corespunzătoare client-side (HTTPAPI) sunt parțial implementate.
- Criptografie:
- Tastele ECC (curba eliptică) sunt acceptate când se utilizează GnuTLS.
- Importarea cheilor și certificatelor din blob-uri PFX este implementată.
- Algoritmul de derivare a cheii PBKDF2 este acceptat.
- Text și fonturi:
- Caracteristicile de poziționare OpenType sunt acceptate în DirectWrite și activate pentru scriptul latin în mod implicit, inclusiv kerning.
- Accesul la datele fonturilor este mai sigur prin validarea diferitelor tabele de date înainte de a le utiliza.
- Interfețele DirectWrite sunt actualizate la un SDK recent, implementând unele dintre cele mai recente completări API.
- Audio video:
- Bibliotecile XAudio2 sunt reimplementate pentru a utiliza biblioteca externă FAudio, pentru o mai bună compatibilitate.
- Bibliotecile Media Foundation sunt dezvoltate, inclusiv:
- Suport pentru cozile de lucru încorporate și asincrone ale utilizatorilor.
- Abilitatea de a trimite apeluri inverse periodice, articole de lucru în așteptare, programate și regulate, cu suport pentru prioritatea articolului.
- Suport pentru cozile de evenimente media.
- Diverse API de bază pentru a gestiona obiecte de tip media, descriptori de flux și prezentare, atribute de obiect, obiecte de flux de octeți, mostre și buffere.
- Implementarea inițială a soluției sursei.
- Implementarea inițială a API-ului Source Reader.
- Implementare pentru obiectul Sample Grabber.
- Suport de bază pentru construirea obiectelor de topologie.
- Implementarea ceasului de prezentare încorporat, a început implementarea funcționalității Media Session.
- Filtrul de captură video a fost portat pentru a utiliza v4l2 în loc de API-ul v4l1 depreciat, permițând utilizarea unor camere care nu acceptă v4l1.
- Suportul pentru traducerea și citirea YUV în RGB de pe dispozitivele v4l2 folosind mmap() a fost eliminat; acum depindem de libv4l2 pentru ambele lucruri.
- Decodoarele AVI, MPEG-I și WAVE încorporate au fost eliminate; acum depindem de GStreamer sau de Mac QuickTime Toolkit pentru a decoda astfel de fișiere media.
- Mai multe API-uri de configurare VMR7 sunt implementate.
- Driverele de sunet acceptă ajustări de volum pe canal.
- Internationalizare:
- Tabelele de caractere Unicode se bazează pe versiunea 12.1.0 a standardului Unicode.
- Este implementată normalizarea Unicode.
- Id-ul regiunii geografice este setat automat în registru pe baza localizării curente. Poate fi modificat dacă este necesar sub HKEY_CURRENT_USER\Control Panel\International\Geo.
- Localitățile sinhaleze și asturiana sunt acceptate.
- Pagina de coduri 28601 (latină/thailandeză) este acceptată.
- RPC/COM:
- Typelib marshaller acceptă structuri și matrice complexe.
- Există o implementare inițială a bibliotecii de rulare Windows Script.
- Există o implementare inițială a bibliotecii Microsoft ActiveX Data Objects (ADO).
- Instalatori:
- Fișierele de corecție Microsoft Installer (MSI) sunt acceptate.
- Instrumentul WUSA (Windows Update Standalone Installer) acceptă instalarea fișierelor de actualizare .MSU.
- Platforme ARM:
- Derularea excepțiilor este implementată pentru ARM64, folosind biblioteca libunwind.
- Proxy-urile OLE Stubless sunt acceptate pe ARM64.
- Instrumente de dezvoltare / Winelib:
- Depanatorul de la distanță Visual Studio poate fi folosit pentru a depana aplicațiile care rulează sub Wine.
- Biblioteca Motorului de depanare (DBGENG) este parțial implementată.
- Binarele create pentru o țintă Windows nu mai depind de biblioteca libwine, pentru a le permite să ruleze pe Windows fără dependențe suplimentare. Biblioteca libwine nu mai este construită deloc pentru Windows.
- Compilatorul de resurse și compilatorul IDL acceptă o opțiune „--sysroot” pentru a permite localizarea fișierelor de antet în medii de compilare încrucișată.
- Winegcc acceptă opțiunile „--target”, „--wine-objdir”, „--winebuild” și „-fuse-ld” care fac mai ușor de utilizat ca compilator încrucișat sau cu lanțuri de instrumente personalizate.
- Antetul wine/unicode.h nu mai este disponibil pentru aplicații, deoarece funcțiile vor fi în cele din urmă eliminate și înlocuite cu funcțiile standard C cu caractere de rulare.
- Construiți infrastructură:
- Binarele de testare sunt construite în format PE dacă este disponibil MinGW, astfel încât același binar de test poate rula atât pe Wine, cât și pe Windows. „Testul încrucișat” nu mai este necesar sau acceptat.
- Convenția de apelare „fastcall” este acceptată în fișierele cu specificații. Folosește denumirea corectă pentru versiunile Windows.
- Un indicator de punct de intrare „-import” este acceptat în fișierele de specificații, pentru a marca funcțiile care necesită generarea unui prefix de cod hotpatch pentru thunk-urile lor de import.
- Winebuild acceptă o opțiune „--builtin” pentru a adăuga o semnătură specială la binarele PE pentru a le marca ca Wine built-in.
- Aplicații încorporate:
- Instrumentul CHCP este implementat. Permite setarea paginii de cod a consolei.
- Instrumentul MSIDB este implementat. Permite manipularea bazelor de date MSI.
- Imbunatatiri ale performantei:
- Diferitele funcții de timp folosesc ceasuri de sistem de performanță mai mare, dacă sunt disponibile, pentru a reduce supraîncărcarea în bucla de redare a multor jocuri.
- Căutările de fișiere profită de suportul de pliere a carcasei sistemului de fișiere ext4 dacă este activat în directorul căutat.
- Casetele de listă cu stil fără date (LBS_NODATA) au performanțe mai bune pentru un număr mare de articole.
- Blocările Slim Reader/Writer, evenimentele cu cheie și variabilele de condiție folosesc futex-uri pe Linux pentru a evita călătoriile dus-întors la Winserver.
- Noi dependențe externe:
- Compilatorul încrucișat MinGW-w64 este folosit pentru a construi module în format PE.
- Biblioteca FAudio este folosită pentru a implementa XAudio2.
- Biblioteca Inotify este utilizată pentru notificările de modificare a fișierelor pe platformele BSD.
- Biblioteca Unwind este utilizată pentru gestionarea excepțiilor pe ARM64.
- Biblioteca Video4Linux versiunea 2 este utilizată în loc de versiunea 1.
citeşte mai mult
Sursă: Sediul vinului
Povestea prin: Android Poliție