Lansare stabilă a Wine 5.0

După un an de dezvoltare și 28 de versiuni experimentale prezentat lansare stabilă a implementării deschise a API-ului Win32 - Vin 5.0, care a inclus peste 7400 de modificări. Realizările cheie ale noii versiuni includ livrarea modulelor Wine încorporate în format PE, suport pentru configurații cu mai multe monitoare, o nouă implementare a API-ului audio XAudio2 și suport pentru API-ul grafic Vulkan 1.1.

În vin confirmat muncă completă de 4869 (acum un an 4737) de programe pentru WindowsAlte 4136 de programe (4045 acum un an) funcționează perfect cu setări suplimentare și DLL-uri externe. 3635 de programe au probleme minore care nu interferează cu funcționalitatea de bază a aplicațiilor.

Cheie inovații Vin 5.0:

  • Module în format PE
    • Cu compilatorul MinGW, majoritatea modulelor Wine sunt acum construite în PE (Portable Executable, utilizat în Windows) în loc de ELF. Utilizarea PE rezolvă problema suportării diferitelor scheme de protecție împotriva copierii care verifică identitatea modulelor de sistem pe disc și în memorie;
    • Fișierele executabile PE sunt acum copiate în directorul ~/.wine ($WINEPREFIX) în loc să se utilizeze fișiere DLL fictive, ceea ce face ca instalarea să fie mai asemănătoare cu instalările reale. Windows, cu prețul consumării de spațiu suplimentar pe disc;
    • Modulele convertite în format PE pot folosi standard wchar Funcții C și constante cu Unicode (de exemplu, L"abc");
    • Wine C runtime a adăugat suport pentru conectarea cu binarele construite în MinGW, care este utilizat în mod implicit în loc de runtime MinGW la construirea DLL-urilor;
  • Subsistemul grafic
    • S-a adăugat suport pentru lucrul cu mai multe monitoare și adaptoare grafice, inclusiv capacitatea de a schimba dinamic setările;
    • Driverul pentru API-ul grafic Vulkan a fost actualizat pentru a se conforma cu specificația Vulkan 1.1.126;
    • În bibliotecă WindowsCodecurile implementează capacitatea de a converti formate raster suplimentare, inclusiv formate cu o paletă indexată;
  • Direct3D
    • Când rulați aplicații Direct3D pe ecran complet, apelul de economizor de ecran este blocat;
    • DXGI (DirectX Graphics Infrastructure) a adăugat suport pentru informarea unei aplicații atunci când fereastra acesteia este minimizată, ceea ce permite aplicației să reducă performanța operațiunilor care necesită resurse intensive atunci când minimizează fereastra;
    • Pentru aplicațiile care folosesc DXGI, acum este posibil să comutați între modul ecran complet și modul fereastră folosind combinația Alt+Enter;
    • Capacitățile implementării Direct3D 12 au fost extinse, de exemplu, există acum suport pentru comutarea între modurile ecran complet și fereastră, schimbarea modurilor ecranului, scalarea ieșirii și gestionarea intervalului de înlocuire a bufferului de randare (interval de schimb);
    • Gestionarea îmbunătățită a diferitelor situații limită, cum ar fi utilizarea valorilor de intrare în afara intervalului pentru testele de transparență și profunzime, randarea cu texturi reflectate și buffere și utilizarea obiectelor DirectDraw incorecte mașină de tuns, creând dispozitive Direct3 pentru ferestre incorecte, folosind zone vizibile ale căror valori minime ale parametrilor sunt egale cu cele maxime etc.
    • Direct3D 8 și 9 oferă o urmărire mai precisă "murdar» zone de texturi încărcate;
    • Dimensiunea spațiului de adrese necesar la încărcarea texturilor 3D comprimate folosind metoda S3TC a fost redusă (în loc să se încarce în întregime, texturile sunt încărcate în bucăți).
    • Interfață implementată ID3D11Multithread pentru a proteja secțiunile critice în aplicații cu mai multe fire;
    • Au fost făcute diverse îmbunătățiri și remedieri legate de calculele de iluminare pentru aplicațiile DirectDraw mai vechi;
    • S-au implementat apeluri suplimentare pentru a obține informații despre shadere în API ShaderReflection;
    • wined3d suportă acum blitter Bazat pe CPU pentru procesarea resurselor comprimate;
    • Baza de date a plăcilor grafice recunoscute în Direct3D a fost extinsă;
    • S-au adăugat noi chei de registry HKEY_CURRENT_USER\Software\Wine\Direct3D: „shader_backend” (backend pentru lucrul cu shaders: „glsl” pentru GLSL, „arb” pentru ARB vertex/fragment și „none” pentru a dezactiva suportul shader), „strict_shader_math” ( 0x1 - activați, 0x0 - dezactivați conversia shaderului Direct3D). A fost depreciată cheia „UseGLSL” (ar trebui să folosească „shader_backend”);
  • D3DX
    • A fost implementat suportul pentru mecanismul de compresie a texturii 3D S3TC (S3 Texture Compression);
    • S-au adăugat implementări corecte ale operațiunilor, cum ar fi umplerea texturii și suprafețele nemapabile;
    • Au fost aduse diferite îmbunătățiri și remedieri cadrului de creare efecte vizuale;
  • Nucleu (interfețe nucleu Windows)
    • Cele mai multe dintre funcțiile utilizate în Kernel32 au fost mutate în
      KernelBase, în urma modificărilor arhitecturii Windows;
    • Abilitatea de a amesteca DLL-uri pe 32 și 64 de biți în directoarele utilizate pentru încărcare. Se asigură că bibliotecile care nu se potrivesc cu adâncimea de biți curentă sunt ignorate (32/64), în cazul în care mai departe de-a lungul căii este posibilă găsirea unei biblioteci care este corectă pentru adâncimea de biți curentă;
    • Pentru driverele de dispozitiv, emularea obiectelor kernel a fost îmbunătățită;
    • Obiecte de sincronizare implementate care lucrează la nivel de kernel, cum ar fi blocare de spin, mutexuri rapide și variabile atașate unei resurse;
    • Se asigură că aplicațiile sunt corect informate despre starea bateriei;
  • Interfață utilizator și integrare desktop
    • Ferestrele minimizate sunt acum afișate folosind o bară de titlu în loc de o pictogramă de stil Windows 3.1;
    • S-au adăugat noi stiluri de butoane SplitButton (buton cu o listă derulantă de acțiuni) și Legături de comandă (linkuri în casetele de dialog folosite pentru a trece la etapa următoare);
    • Au fost create legături simbolice pentru folderele „Descărcări” și „Șabloane”, care indică directoarele corespunzătoare de pe sistemele Unix;
  • Dispozitive de intrare
    • La pornire, driverele necesare pentru dispozitive Plug & Play sunt instalate și încărcate;
    • Suport îmbunătățit pentru controlerele de joc, inclusiv un mini-joystick (comutator cu pălărie), volan, pedale de accelerație și frână.
    • Asistența pentru versiunea veche a fost întreruptă Linux API-ul de interacțiune cu joystick-ul utilizat în kernel-uri Linux până la versiunea 2.2;
  • . NET
    • Motorul Mono a fost actualizat la versiunea 4.9.4 și include acum părți din framework-ul de dezvoltare. Windows Fundația de Prezentare (WPF);
    • S-a adăugat posibilitatea de a instala suplimente cu Mono și Gecko într-un singur director comun, plasând fișierele în ierarhia /usr/share/wine în loc să le copiem în noi prefixe;
  • Caracteristici de rețea
    • Motorul de browser Wine Gecko, care este utilizat în biblioteca MSHTML, a fost actualizat pentru a lansa 2.47.1. A fost implementat suport pentru noile API HTML;
    • MSHTML acceptă acum elemente SVG;
    • S-au adăugat multe funcții VBScript noi (de exemplu, handlere de erori și excepții, funcții Hour, Day, Month, String, LBound, RegExp.Replace, РScriptTypeInfo_* și ScriptTypeComp_Bind* etc.);
    • A asigurat păstrarea stării codului în VBScript și JScript (persistența scriptului);
    • S-a adăugat o implementare inițială a serviciului HTTP (WinHTTP) și a API-ului asociat (HTTPAPI) pentru aplicațiile client și server care trimit și primesc cereri folosind protocolul HTTP;
    • A implementat capacitatea de a obține setări HTTP proxy prin DHCP;
    • S-a adăugat suport pentru redirecționarea cererilor de autentificare prin serviciul Microsoft Passport;
  • Criptografie
    • S-a implementat suport pentru cheile criptografice cu curbă eliptică (ECC) atunci când se utilizează GnuTLS;
    • S-a adăugat posibilitatea de a importa chei și certificate din fișiere în format PFX;
    • S-a adăugat suport pentru schema de generare a cheilor bazată pe parola PBKDF2;
  • Text și fonturi
    • Implementarea DirectWrite API a adăugat suport pentru caracteristicile OpenType legate de poziționarea glifelor, care sunt activate implicit pentru stilul latin, inclusiv kerning;
    • Securitate îmbunătățită pentru procesarea datelor fonturilor prin verificarea corectitudinii diferitelor tabele de date înainte de a le utiliza;
    • Interfețele DirectWrite au fost aduse în conformitate cu cel mai recent SDK;
  • Sunet și video
    • A fost propusă o nouă implementare a API-ului de sunet XAudio2, construit pe baza proiectului FAudio. Utilizarea FAudio in Wine vă permite să obțineți o calitate mai bună a sunetului în jocuri și să utilizați funcții precum mixarea volumului și efecte sonore avansate;
    • Un număr mare de apeluri noi au fost adăugate la implementarea cadrului Media Foundation, inclusiv suport pentru cozi asincrone încorporate și personalizate, API Source Reader, Media Session etc.
    • Filtrul de captură video a fost schimbat la utilizarea API-ului v4l2 în locul API-ului v4l1, care a extins gama de camere acceptate;
    • Au fost eliminate decodoarele AVI, MPEG-I și WAVE încorporate, în locul cărora acum se utilizează sistemul GStreamer sau QuickTime;
    • S-a adăugat un subset de API-uri de configurare VMR7;
    • S-a adăugat suport pentru ajustarea volumului canalelor individuale la driverele de sunet;
  • Internaționalizare
    • Tabelele Unicode actualizate la versiunea 12.1.0;
    • Suport implementat pentru normalizarea Unicode;
    • Instalarea automată furnizată a regiunii geografice (HKEY_CURRENT_USER\Control Panel\International\Geo) pe baza localității curente;
  • RPC/COM
    • S-a adăugat suport pentru structuri și matrice complexe la typelib;
    • Adăugată implementarea inițială a bibliotecii runtime Windows Script;
    • S-a adăugat implementarea inițială a bibliotecii ADO (Microsoft ActiveX Data Objects);
  • Instalatori
    • Suportul pentru livrarea de corecții (Fișiere de corecție) a fost implementat pentru instalatorul MSI;
    • În utilitarul WUSA (Windows Instalatorul independent de actualizări) vă permite acum să instalați actualizări în format .MSU;
  • Platforma ARM
    • Pentru arhitectura ARM64, suportul pentru derularea stivei a fost adăugat la ntdll. S-a adăugat suport pentru conectarea bibliotecilor externe libunwind;
    • Pentru arhitectura ARM64, a fost implementat suport pentru proxy-uri fără întreruperi pentru interfețele obiect;
  • Instrumente de dezvoltare / Winelib
    • S-a adăugat posibilitatea de a utiliza depanatorul din Visual Studio pentru a depana de la distanță aplicațiile care rulează în Wine;
    • Biblioteca DBGENG (Debug Engine) a fost parțial implementată;
    • Colectate pentru Windows Executabilele nu mai depind de libwine, permițându-le să fie rulate în Windows fără dependențe suplimentare;
    • S-a adăugat opțiunea „--sysroot” la Resource Compiler și IDL Compiler pentru a determina calea fișierelor antet;
    • S-au adăugat opțiunile „—target”, „—wine-objdir” la winegcc
      „—winebuild” și „-fuse-ld”, care simplifică configurarea mediului pentru compilarea încrucișată;
  • Aplicații încorporate
    • Implementat un utilitar CHCP pentru a configura codificarea consolei;
    • A fost implementat utilitarul MSIDB pentru manipularea bazelor de date în format MSI;
  • Optimizarea performanțelor
    • Diverse funcții de sincronizare au fost migrate pentru a utiliza funcții de cronometru de sistem de înaltă performanță, reducând supraîncărcarea în bucla de randare a multor jocuri;
    • S-a adăugat posibilitatea de a folosi Ext4 în FS regim lucrați fără sensibilitate la majuscule;
    • Performanța procesării unui număr mare de elemente în casetele de dialog de afișare a listei care funcționează în modul LBS_NODATA a fost optimizată;
    • A fost adăugată o implementare mai rapidă a încuietorilor SRW (Slim Reader/Writer) pentru Linux, tradus în Futex;
  • Dependențe externe
    • Pentru a asambla module în format PE, se folosește compilatorul încrucișat MinGW-w64;
    • Implementarea XAudio2 necesită biblioteca FAudio;
    • Pentru a urmări modificările fișierelor pe sistemele BSD
      se folosește biblioteca Inotify;
    • Pentru a gestiona excepțiile pe platforma ARM64, este necesară biblioteca Unwind;
    • În loc de Video4Linux1 necesită acum biblioteca Video4Linux2.

Sursa: opennet.ru

Cumpărați găzduire de încredere pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără găzduire web fiabilă cu protecție DDoS, servere VPS VDS | ProHoster