Lansare stabilă Wine 11.0

După un an de dezvoltare și 25 de versiuni experimentale, a fost lansată versiunea stabilă a implementării open-source a Win32 API — Wine 11.0, care include peste 6300 de modificări și 600 de corecții de erori. Printre realizările cheie din noua versiune se numără suportul complet pentru NTSYNC, implementarea mecanismului Reparse Point și utilizarea unei noi arhitecturi WoW64.

În Wine, s-a confirmat funcționarea completă a 5419 de aplicații pentru Windows (cu un an în urmă erau 5372, acum doi ani 5336, acum trei ani 5266), iar alte 4500 de aplicații (cu un an în urmă 4435, acum doi ani 4397, acum trei ani 4370) funcționează excelent cu setări suplimentare și DLL-uri externe. Pentru 4086 de aplicații (cu un an în urmă 4020, acum doi ani 3943, acum trei ani 3888) există mici probleme de funcționare, care nu afectează utilizarea principalelor funcții ale aplicațiilor.

Noutățile cheie din Wine 11.0:

  • Suport complet pentru driverul ntsync, care poate îmbunătăți semnificativ performanța jocurilor Windows rulate prin Wine. Driverul este inclus în nucleul Linux începând cu versiunea 6.14 și implementează un dispozitiv simbolic \/dev\/ntsync și un set de primitive pentru sincronizare, utilizate în nucleul Windows NT. Creșterea semnificativă a performanței se obține prin eliminarea suprapunerilor asociate utilizării RPC în spațiul utilizatorului.
  • A fost adăugată posibilitatea de a seta prioritățile thread-urilor în Linux și macOS.
  • În ntdll a fost adăugat API-ul de sincronizare „Synchronization barriers”, care permite suspendarea execuției mai multor thread-uri până când se atinge un anumit punct de execuție în toate thread-urile (de exemplu, așteptând ca toate thread-urile să ajungă la o anumită etapă în execuția paralelă a aceluiași cod).
  • Noua implementare a nivelului WoW64 (Windows-on-Windows pe 64 biți), care permite rularea aplicațiilor Windows pe 32 de biți în sisteme Unix pe 64 de biți, a fost clasificată ca fiind complet suportată. Spre deosebire de vechea implementare WoW64, în care aplicațiile pe 32 de biți erau rulate în procese Unix pe 32 de biți, noua arhitectură WoW64 asigură rularea codului pe 32 de biți în interiorul unui proces pe 64 de biți. A fost implementat suport pentru rularea aplicațiilor pe 16 biți în modul WoW64.

    În toate modulele care interacționează cu bibliotecile Unix, sunt utilizați convertori de apeluri de sistem WoW64 (thunk), care permit modulelor de 32 de biți în format PE să acceseze bibliotecile Unix de 64 de biți. A fost adăugată posibilitatea de a rula versiunile vechi WoW64 într-un nou mod prin setarea variabilei de mediu „WINEARCH=wow64”. Prefixe-urile de 32 de biți, create prin setarea WINEARCH=win32, sunt declarate învechite și nu sunt suportate în noul mod WoW64. A fost eliminat loaderul separat wine64, în locul căruia este utilizat un loader universal care determină modul în funcție de arhitectura fișierului executabil.

  • Kernel (interfețe ale kernel-ului Windows)
    • A fost implementat mecanismul Reparse Point, prin care se pot atașa date suplimentare fișierelor și directorilor, identificate prin etichete. Sunt acceptate tipuri de Reparse Point precum linkuri simbolice și puncte de montare.
    • Pentru a îmbunătăți performanța monitorizării operațiunilor de scriere în memorie, a fost folosit mecanismul UFFD (userfaultfd), care permite crearea de gestionatori pentru accesările paginilor de memorie nealocate (page faults) în spațiul utilizatorului. Testele efectuate au demonstrat că utilizarea UFFD a redus timpul de încărcare a nivelurilor în jocul „Streets of Rage 4” de la 6-8 secunde la 1.5-2 secunde, ceea ce corespunde performanțelor de lansare pe platforma Windows.
    • Au fost utilizate numerele apelurilor de sistem NT, identice cu cele din cele mai recente versiuni Windows, ceea ce este necesar pentru a susține aplicații care folosesc numere de apeluri de sistem hardcodate.
    • Pe sistemele ARM64 a fost implementată capacitatea de a simula pagini de memorie de 4K în medii cu kernel-uri Linux care utilizează pagini de memorie mai mari (16K sau 64K). Simularea permite rularea aplicațiilor simple, iar pentru programele mai complexe se recomandă utilizarea kernel-urilor Linux cu pagini de memorie de 4 kilobytes.
  • Substanța grafică
    • Pe sistemele X11 (winex11), pentru OpenGL, backend-ul de redare implicit folosește EGL. Backend-ul GLX este declarat învechit, dar rămâne disponibil ca alternativă și este utilizat în absența EGL.
    • A fost adăugată suport inițial pentru obiectele D3DKMT, care oferă acces de nivel scăzut la dispozitivele grafice din spațiul utilizatorului. Au fost implementate extensiile Vulkan VK_KHR_external_memory_win32, VK_KHR_external_semaphore_win32, VK_KHR_external_fence_win32 și VK_KHR_win32_keyed_mutex.
    • În modul WoW64 (Windows-on-Windows 64-bit) a fost implementat suportul pentru mapparea memoriei pentru OpenGL prin intermediul API-ului Vulkan, ceea ce permite accelerarea funcționării aplicațiilor OpenGL pe 32 de biți în Wine.
    • A fost implementată emularea buffer-ului de afișare (front buffer) pentru OpenGL pe platformele care nu dispun de suport încorporat.
    • În driverul pentru API-ul grafic Vulkan a fost adăugat suportul pentru specificația Vulkan 1.4.335.
    • În setul de biblioteci WindowsCodecs a fost extins suportul pentru metadatele din fișierele cu imagini și a fost implementat suportul pentru conversia între formatele de culoare întregi și cele cu virgulă mobilă.
    • A fost eliminată dependența de biblioteca OSMesa (Off-screen Mesa). A fost implementată posibilitatea de a desena bitmap-uri prin OpenGL folosind runtime-ul OpenGL accelerat hardware.
  • Integrare cu desktop-ul
    • În driverul winewayland.drv, care permite utilizarea Wine în medii bazate pe protocolul Wayland fără a folosi XWayland și componentele X11, a fost implementat suportul pentru clipboard, metode de input, feronii neregulate și transparență.
    • A fost îmbunătățită integrarea cu X11: s-au realizat trimiterea de solicitări de activare a feronilor către managerul de feron și utilizarea protocolului EWMH pentru a sincroniza starea feronilor activi X11 și Win32.
    • A fost implementat suportul pentru modul exclusiv pe ecran complet. A fost îmbunătățit suportul pentru modul pe ecran complet în D3D și au fost îmbunătățite performanțele jocurilor mai vechi bazate pe DDraw.
    • A fost crescută performanța unor funcții de gestionare a feronilor. Pentru interacțiunea între procese a fost utilizată memoria partajată.
  • Direct3D
    • În Direct3D 11 a fost adăugat suportul pentru accelerarea hardware a decodării video în format H.264, implementat prin intermediul API-ului grafic Vulkan.
    • În Direct3D 11 a fost implementat suportul pentru minmax-filtering al texturilor, folosind extensia OpenGL GL_ARB_texture_filter_minmax sau extensia Vulkan VK_EXT_sampler_filter_minmax.
    • În Direct3D 11 au fost implementate funcții de încărcare a texturilor.
    • A fost implementată o gamă largă de capabilități Direct3D pentru redarea prin Vulkan, incluzând amestecarea vertex-urilor, umbrirea plată, plane de tăiere personalizate și diverse formate de resurse.
    • În copia încorporată a vkd3d-shader a fost îmbunătățit suportul pentru modelele 1, 2 și 3 ale shader-elor.
    • În metoda D3DXSaveSurfaceToFileInMemory a fost implementat suportul pentru imagini PNG, JPEG și BMP.
    • În Direct3D 10 și 11 a fost implementat suportul pentru compresia și decomprimarea formatelor BC4 și BC5, precum și generarea nivelurilor MIP (MipMap) la încărcarea texturilor.
    • Sunt implementate metodele ID3DXEffect::SetRawValue() și ID3DXSkinInfo::UpdateSkinnedMesh().
  • Dispozitive de intrare
    • Compatibilitatea cu joystick-urile a fost îmbunătățită prin utilizarea backend-ului hidraw.
    • A fost îmbunătățită suportul pentru efectul de vibrație (Force feedback) când se utilizau volane de joc și joystick-uri.
    • A fost îmbunătățită suportul pentru gamepad-uri în API-ul Windows.Gaming.Input și când se utiliza backend-ul evdev.
    • În aplicația de gestionare a controlerelor de joc a fost adăugată o filă pentru configurarea API-ului Windows.Gaming.Input.
    • Compatibilitatea DirectInput cu jocurile mai vechi a fost crescută.
  • Bluetooth
    • În driverul Bluetooth a fost adăugată opțiunea de scanare, setare a detectării și asocierea dispozitivelor.
    • A fost adăugat suport pentru serviciile Bluetooth Low Energy.
    • Aplicațiile au fost dotate cu capacitatea de a crea conexiuni RFCOMM de nivel joasă cu dispozitive externe, folosind API-ul Winsock.
  • Suport pentru scanere
    • A fost implementat suport pentru API-ul TWAIN 2.0, care permite accesul la scanere din aplicații pe 64 de biți.
    • A fost implementat suport pentru componenta DAT_IMAGENATIVEXFER pentru transferul imaginilor de la scaner în aplicație.
    • S-a asigurat salvarea în registru a scanerului selectat și a setărilor scanerului.
    • A fost adăugat suport pentru scanarea multipagina și alimentarea automată a documentelor.
    • S-a oprit blocarea aplicației în timpul apelării interfeței de scanare.
    • A fost adăugat suport pentru instalarea driverelor native Windows pentru scanere.
  • Internaționalizare
    • S-a asigurat generarea bazei de date a localelor în format locale.nls din baza de date Unicode CLDR (Unicode Common Locale Data Repository) versiunea 48. A fost adăugat suport pentru localele suplimentare bua-RU, bqi-IR, cop-EG, ht-HT, kek-GT, lzz-TR, mww-Hmnp-US, oka-CA, pi-Latn-GB, pms-IT, sgs-LT, suz-Deva-NP și suz-Sunu-NP.
    • Tabelele de simboluri Unicode au fost actualizate la versiunea standard 17.0.0. Baza de date a fuselor orare a fost actualizată.
  • Funcționalități de rețea
    • În motorul MSHTML în modul de conformitate standardelor, s-a asigurat funcționarea cu atributele elementelor ca noduri DOM complete. Au fost implementate obiectele DOMParser, XDomainRequest și msCrypto.
    • În JavaScript a fost adăugat suport pentru array-uri tipizate.
    • Pentru ICMPv6 a fost implementat comanda ping.
  • Baza de date
    • În biblioteca MSADO (ActiveX Data Objects) a fost adăugat suport pentru înregistrarea modificărilor în baza de date. Au fost implementate majoritatea funcțiilor obiectului Recordset.
    • În biblioteca odbc32 a fost îmbunătățită suportul pentru driverele win32 ANSI care nu sunt concepute pentru a lucra cu Unicode. Au fost implementate funcțiile SQLDriverConnectA(), SQLSpecialColumnsW(), SQLGetInfoW(), SQLGetInfoW(), SQLStatisticsW() și QLColumnsW().
  • Aplicații încorporate
    • În WineCfg a fost adăugată o filă pentru configurarea dispozitivului MIDI implicit.
    • Utilitarul cmd a implementat completarea automată a numelui fișierelor în modul de lucru interactiv, a adăugat suport pentru comenzi complexe și a implementat comanda „mklink /j” pentru crearea punctelor de reanaliză.
    • În utilitarul conhost (Console Hosting) a fost adăugat suport pentru obținerea istoriei prin apăsarea tastelor F1 și F3.
    • Au fost implementate comenzile timeout, runas și subst.
    • În utilitarul find au fost adăugate opțiunile „/c” pentru a arăta numărul de potriviri și „/i” pentru potriviri fără a ține cont de majuscule.
    • În utilitarul whoami a apărut posibilitatea de a configura formatul de ieșire.
  • Diverse
    • În implementarea limbajului de descriere a interfeței WIDL (Wine Interface Definition Language) a apărut suport pentru generarea de metadate Windows Runtime (WinRT). S-a asigurat generarea și instalarea fișierelor WinMD (Windows Metadata) pentru API WinRT (Windows Runtime).
    • În utilitarul winedump a fost adăugat suport pentru dump-uri de resurse MUI, numerele apelurilor de sistem, module NE încorporate și fișiere PDB mari (> 4 GB).
    • A fost efectuat un refactor al implementării Common Control, biblioteca COMCTL32 a fost împărțită în module separate pentru versiunile 5 și 6.
    • În BCrypt a fost adăugat suport pentru standardul de generare a cheilor PBKDF2.
    • A fost adăugat suport pentru directoarele UserProgramFiles, AccountPictures și Screenshots.
    • Pachetul include bibliotecile LLVM Compiler-RT 8.0.1 și TomCrypt 1.18.2. Pentru identificarea CPU-ului pe platforma FreeBSD a fost utilizată biblioteca HwLoc.
    • Au fost actualizate la versiuni noi componentele Vkd3d 1.18, Faudio 25.12, FluidSynth 2.4.2, LCMS2 2.17, LibMPG123 1.33.0, Libpng 1.6.51, LibTiff 4.7.1, LibXml2 2.12.10, LibXslt 1.1.43.

    Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster