După un an de dezvoltare și 29 de versiuni experimentale, a fost prezentată o versiune stabilă a implementării deschise a API-ului Win32 - Wine 10.0, care a încorporat peste 6000 de modificări. Realizările cheie în noua versiune includ suport complet pentru arhitectura ARM64EC, scalare pe ecrane cu densitate mare de pixeli, includerea implicită a driverului Wayland, implementarea panourilor pentru configurarea ecranului și joystick-ului, un backend multimedia alternativ bazat pe FFmpeg, Bluetooth driver, suport Vulkan 1.4, capacitate de emulare pentru comutarea modurilor video.
5372 programe au fost confirmate ca funcționând corect în Wine. Windows (5336 acum un an, 5266 acum doi ani, 5156 acum trei ani), alte 4435 de programe (4397 acum un an, 4370 acum doi ani, 4312 acum trei ani) funcționează fără probleme cu setări suplimentare și DLL-uri externe. 4020 de programe (3943 acum un an, 3888 acum doi ani, 3813 acum trei ani) au probleme minore care nu interferează cu utilizarea funcționalității de bază a aplicației.
Inovații cheie în Wine 10.0:
- ARM64
- Este oferit suport complet pentru arhitectura ARM64EC (ARM64 Emulation Compatible), nivelul de suport în Wine pentru care a atins paritatea cu arhitectura ARM64. Arhitectura ARM64EC este concepută pentru a simplifica portarea aplicațiilor scrise inițial pentru sisteme x64_86 către sisteme ARM64 și permite modulelor individuale de cod x64_86 să ruleze în mediul ARM64 folosind un emulator.
- A fost implementat suport complet pentru formatul de fișier ARM64X PE, care vă permite să combinați codul pentru arhitecturile ARM64EC și ARM64 într-un singur fișier executabil. Pentru a construi Wine în formatul ARM64X, trebuie să instalați LLVM din Git (funcționalitatea necesară va fi inclusă în versiunea LLVM 20) și când rulați scriptul „configure”, specificați opțiunea „-enable-archs=arm64ec,aarch64” .
- A fost implementată o interfață pentru emularea sistemelor x64 pe 86 de biți. Când utilizați ARM64EC, Wine în sine rulează așa cum este, iar emularea este aplicată numai codului aplicației x86-64. Biblioteca cu emulator nu este încă inclusă în pachetul principal Wine, dar pentru a rula cod x86-64 în mediul ARM64, puteți utiliza emulatorul extern FEX construit cu suport ARM64EC.
- Для поддержки ARM64 необходимо использование в системе страниц памяти размером 4КБ, как того требует ABI Windows (запуск в окружениях с ядрами Linux, использующими страницы памяти 16K или 64K пока не поддерживается).
- Subsistemul grafic
- S-a implementat o scalare mai precisă pe ecrane cu densitate mare de pixeli (High-DPI). A fost oferit suport pentru modul DPI Awareness pentru a organiza afișarea aplicațiilor pe ecrane cu densitate mare de pixeli, ținând cont dacă aplicația acceptă adaptarea la modificările DPI sau nu (aplicațiile care nu iau în considerare DPI sunt scalate automat). S-au adăugat opțiuni pentru a înlocui suportul High-DPI pentru aplicații individuale sau prefixe Wine.
- Suport pentru specificația Vulkan 1.4 a fost adăugat la driverul pentru API-ul grafic Vulkan (Vulkan 9.0 a fost acceptat în Wine 1.3.272). S-a adăugat suport pentru extensiile Vulkan pentru codificare și decodare video.
- Când utilizați backend-ul X11, a fost implementată capacitatea de a reda ferestre copil Vulkan pentru aplicațiile care folosesc astfel de ferestre pentru a afișa conținut 3D (anterior, o astfel de caracteristică era disponibilă numai pentru OpenGL).
- Suport pentru mecanismul de conectare a fonturilor a fost adăugat la biblioteca GdiPlus, care vă permite să utilizați mai multe fonturi atunci când afișați text dacă nu există fonturi care să acopere separat toate caracterele găsite în text.
- Wayland
- В конфигурации по умолчанию активирован драйвер winewayland.drv, позволяющий использовать Wine в окружениях на базе протокола Wayland без применения XWayland и компонентов X11. Wine запускает приложения по умолчанию на Wayland напрямую только если XWayland недоступен, в противном случае запуск с использованием XWayland остаётся приоритетным. Для принудительного включения Wayland можно использовать переменную окружения DISPLAY, либо добавить ключ в реестр, создав файл file.reg: Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Wine\Drivers] «Graphics»=»wayland» и применив его командой: $ WINEPREFIX=/путь/до/префикса wine regedit /путь/до/file.reg
- S-a adăugat suport pentru OpenGL și buffer-uri de pixeli (pBuffer) la driverul winewayland.drv.
- S-au rezolvat problemele legate de poziționarea ferestrelor pop-up în mediile bazate pe Wayland.
- Când utilizați Wayland, este implementat suportul pentru apăsarea cu repetare automată în timp ce țineți apăsat tastele.
- Integrare desktop
- S-a adăugat un mecanism de emulare experimental de „modetare” care vă permite să emulați comutarea modurilor video fără a modifica efectiv setările ecranului. Vizibilitatea modificării rezoluției ecranului fără schimbarea modului video este creată prin extinderea și scalarea ferestrelor.
- A fost adăugat un nou applet Desktop Control Panel (desk.cpl) cu implementarea unei interfețe pentru gestionarea setărilor de afișare (de exemplu, puteți modifica rezoluția virtuală a desktopului sau puteți configura parametrii de afișare emulați).
- S-a adăugat posibilitatea de a reseta setările ecranului la valorile implicite dacă este imposibil să restabiliți starea după o blocare a procesului.
- Добавлена поддержка отключения показа пиктограмм в системном лотке (в «HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer» следует указать «NoTrayItemsDisplay=1»).
- Добавлена поддержка отключения оболочек (Shell launcher) в режиме десктопа (в «HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer» следует указать «NoDesktop=1»).
- Direct3D
- Redarea cu OpenGL necesită acum suport pentru GLSL 1.20, precum și pentru extensiile EXT_framebuffer_object și ARB_texture_non_power_of_two. Suportul pentru vechiul backend shader ARB și setarea Offscreen RenderingMode a fost întreruptă.
- Pentru Direct3D 9 și mai vechi, a fost adăugată o conductă de grafică cu funcție fixă (vechiul Direct3D a furnizat doar operațiuni grafice predefinite care nu puteau fi modificate), implementat folosind limbajul de shader HLSL și permițând emularea funcției fixe la randarea prin API-ul Vulkan sau OpenGL.
- Redarea cu Vulkan folosește extensii Vulkan pentru a schimba dinamic starea conductei grafice, reducând bâlbâiala în jocuri.
- S-a adăugat un backend alternativ glsl-vkd3d pentru shadere GLSL, folosind vkd3d-shader.
- A oferit suport inițial pentru compilarea efectelor Direct3D folosind vkd3d-shader.
- Biblioteca D3DX9 implementează capacitatea de a genera texturi MIP (MipMap) la încărcarea texturilor volumetrice. S-a adăugat suport pentru formatele de reprezentare a culorilor 64bpp RGBA și 48bpp RGB în imagini PNG, precum și formatele X8L8V8U8, A2W10V10U10, A8P8, V16U16 și Q16W16V16U16.
- Sunet și video
- Ca o alternativă la backend-ul bazat pe GStreamer, a fost implementat un nou backend multimedia, bazat pe utilizarea FFmpeg și potrivit pentru rularea cadrului Media Foundation. Pentru a activa un backend alternativ, ar trebui să specificați „DisableGstByteStreamHandler=1” în secțiunea de registru „HKCU\Software\Wine\MediaFoundation”.
- Implementarea API-ului Media Foundation a fost îmbunătățită pentru a se adapta mai bine aplicațiilor care depind de componentele de demultiplexare și decodare.
- DirectMusic API a adăugat suport pentru încărcarea fișierelor MIDI.
- Dispozitive de intrare
- S-a adăugat versiunea inițială a driverului Bluetooth.
- S-a adăugat aplicația Joystick Control Panel (joy.cpl) cu implementarea setărilor pentru joystick.
- Внесены улучшения, связанные с устройствами управления указателем (тачпады, мыши), использующими протокол HID (Human Interface Device). Добавлен драйвер mouhid.sys для HID-устройств. Реализован корректный разбор составных устройств ввода и обеспечена передача информации о них в Windows-приложения, как о раздельных устройствах.
- Pentru backend-ul X11, a fost adăugat suport pentru ecranele tactile și a fost implementată capacitatea de a utiliza modul multi-touch prin procesarea mesajelor WM_POINTER* (WM_POINTERENTER, WM_POINTERLEAVE etc.).
- Am implementat plasarea unor structuri interne ale bibliotecii user32 în memoria partajată, ceea ce a crescut performanța și a redus încărcarea pe Wine Server.
- Winex11 a adăugat suport pentru procesarea evenimentelor XInput2 în legătură cu ferestrele individuale.
- S-a implementat suport corect pentru tastaturi cu aspectul Dvorak.
- Nucleu (interfețe nucleu Windows)
- S-a adăugat suport pentru escaladarea privilegiilor de proces (un proces care rulează inițial ca utilizator standard poate primi privilegii de administrator). Când se creează procese server (server de acțiuni msi), precum și procese care apelează funcțiile RtlCreateUserProcess() și CreateProcessInternal(), un token de administrator limitat este activat în mod implicit.
- Atunci când obțineți informații despre etichetele discurilor, ori de câte ori este posibil, acum se utilizează accesarea serviciilor de sistem prin DBus, în loc să încercați să accesați direct dispozitivul.
- Однонаправленный механизм межпроцессного взаимодействия (IPC) Mailslots теперь реализован непосредственно в Wine server, что позволило добиться полной поддержки семантики Windows.
- S-a implementat așteptarea evenimentelor portului serial în modul asincron.
- S-a adăugat suport complet pentru extensiile de procesor XSTATE în contexte de fire, permițând utilizarea de noi extensii vectoriale, cum ar fi AVX-512.
- Aplicații încorporate
- Motorul de procesare a datelor de intrare utilizat în interpretul de comenzi cmd.exe a fost rescris. S-a adăugat suport pentru operațiunile „||” la cmd.exe Și „&&”.
- Utilitarul findstr a adăugat suport pentru expresii regulate și căutări care nu țin cont de majuscule.
- Capacitatea de a înregistra module ARM32EC a fost adăugată la utilitatile regsvr32 și rundll64.
- Utilități adăugate: sortați pentru sortarea datelor de intrare, fc pentru compararea fișierelor și unde pentru căutarea fișierelor.
- Aplicația wmic implementează un mod de operare interactiv.
- Explorer a adăugat suport opțional pentru meniul Start și bara de instrumente. Lansarea explorer.exe activată cu drepturi de acces reduse.
- Instrumente de dezvoltare
- S-a adăugat opțiunea „-marm64x” la winebuild pentru a genera biblioteci hibride ARM64X.
- S-a adăugat opțiunea „-marm64x” la winegcc pentru a permite construirea pentru ARM64X.
- Fișierele generate utilizând limbajul de definire a interfeței (IDL) folosesc componente care acceptă pe deplin execuția în modul interpretat.
- Suport pentru generarea de biblioteci de tip (TypeLib) în vechiul format (SLTG) a fost adăugat compilatorului IDL (Interface Definition Language).
- Utilitarul winedump a adăugat suport pentru salvarea depozitelor de tabele minidump, a informațiilor despre excepții C++ și a resurselor typelib.
- Miscelaneu
- Suport îmbunătățit pentru protocolul de schimb de chei Diffie-Hellman (DH). S-a adăugat posibilitatea de a configura și primi parametrii DH. S-au implementat handlere pentru crearea perechilor de chei publice și private.
- Este furnizată utilizarea de umplutură incrementală OAEP (Optimal Asymmetric Encryption Padding) împreună cu algoritmul RSA.
- DirectPlay API acceptă sesiuni de rețea.
- Gestionare îmbunătățită a stărilor asincrone de intrare/ieșire atunci când se lucrează în modul WoW64 (64 biți) Windows-pe-Windows), care vă permite să rulați pe 32 de biți Windows-aplicații pe sisteme Unix pe 64 de biți.
- Добавлена поддержка загрузки ODBC-драйверов к СУБД, собранных для Windows.
- Pentru platforma ARM, este implementat suport complet pentru excepțiile RPC/COM, C++ RTTI (Run-Time Type Information) și C++.
- În runtime C, funcțiile ANSI implementează suport pentru codificarea UTF-8.
- Capacitățile motorului MSHTML au fost extinse. S-a adăugat suport pentru prototipuri și constructori de obiecte. O nouă interfață de legare a obiectelor pentru MSHTML a fost adăugată motorului JavaScript. Funcțiile încorporate MSHTML au fost convertite în obiecte JavaScript valide. Colectare de gunoi JavaScript îmbunătățită pentru a acoperi toate contextele de execuție a scripturilor într-un fir. S-a adăugat suport pentru obiectele JavaScript ArrayBuffer și DataView.
- Suport pentru analiza statică folosind rapoartele de testare Clang și JUnit a fost adăugat la sistemul de integrare continuă bazat pe Gitlab.
- În pachet este încorporată biblioteca Capstone 5.0.3, prin care dezasamblarea este implementată în depanatorul WineDb.
- Componente actualizate la versiuni noi: Vkd3d 1.14, Faudio 24.10, FluidSynth 2.4.0, LDAP 2.5.18, LCMS2 2.16, LibJpeg 9f, LibMPG123 1.32.9, LibMPG1.6.44, Lib4.7.0ml. 2, LibXslt 2.12.8 și Zlib 1.1.42.
Sursa: opennet.ru
