Nakon godinu dana razvoja i 29 eksperimentalnih verzija, predstavljeno je stabilno izdanje otvorene implementacije Win32 API-ja - Wine 10.0, koje je uključilo više od 6000 izmjena. Ključna dostignuća u novoj verziji uključuju punu podršku za ARM64EC arhitekturu, skaliranje na ekranima sa visokom gustinom piksela, podrazumevano uključivanje Wayland drajvera, implementaciju panela za prilagođavanje ekrana i džojstika, alternativni multimedijalni backend baziran na FFmpeg, Bluetooth drajver, podrška za Vulkan 1.4, mogućnost emulacije prebacivanje video modova.
Potvrđeno je da 5372 programa ispravno rade u Wineu. Windows (5336 prije godinu dana, 5266 prije dvije godine, 5156 prije tri godine), dodatnih 4435 programa (4397 prije godinu dana, 4370 prije dvije godine, 4312 prije tri godine) radi dobro s dodatnim postavkama i vanjskim DLL-ovima. 4020 programa (3943 prije godinu dana, 3888 prije dvije godine, 3813 prije tri godine) ima manje probleme koji ne ometaju korištenje osnovne funkcionalnosti aplikacije.
Ključne inovacije u Wine 10.0:
- ARM64
- Puna podrška je obezbeđena za ARM64EC (ARM64 Emulation Compatible) arhitekturu, nivo podrške u Wine-u za koji je dostigao paritet sa ARM64 arhitekturom. ARM64EC arhitektura je dizajnirana da pojednostavi prenos aplikacija prvobitno napisanih za x64_86 sisteme na ARM64 sisteme, i dozvoljava pojedinačnim x64_86 kodnim modulima da rade u ARM64 okruženju koristeći emulator.
- Implementirana je puna podrška za ARM64X PE format datoteke, koji vam omogućava da kombinujete kod za ARM64EC i ARM64 arhitekture u jednoj izvršnoj datoteci. Da biste napravili Wine u formatu ARM64X, potrebno je da instalirate LLVM iz Gita (potrebna funkcionalnost će biti uključena u LLVM 20 izdanje) i kada pokrenete “configure” skriptu, navedite opciju “-enable-archs=arm64ec,aarch64” .
- Implementirano je sučelje za emulaciju 64-bitnih x86 sistema. Kada se koristi ARM64EC, sam Wine radi kao što jeste, a emulacija se primjenjuje samo na x86-64 kod aplikacije. Biblioteka sa emulatorom još nije uključena u glavni paket Wine, ali da biste pokrenuli x86-64 kod u ARM64 okruženju, možete koristiti eksterni FEX emulator izgrađen sa ARM64EC podrškom.
- Для поддержки ARM64 необходимо использование в системе страниц памяти размером 4КБ, как того требует ABI Windows (запуск в окружениях с ядрами Linux, использующими страницы памяти 16K или 64K пока не поддерживается).
- Grafički podsistem
- Implementirano preciznije skaliranje na ekranima sa velikom gustinom piksela (High-DPI). Obezbeđena je podrška za DPI Awareness režim za organizovanje prikaza aplikacija na ekranima sa velikom gustinom piksela, uzimajući u obzir da li aplikacija podržava prilagođavanje DPI promenama ili ne (aplikacije koje ne uzimaju u obzir DPI automatski se skaliraju). Dodane opcije za nadjačavanje High-DPI podrške za pojedinačne aplikacije ili Wine prefikse.
- Podrška za specifikaciju Vulkan 1.4 je dodata drajveru za Vulkan grafički API (Vulkan 9.0 je podržan u Wine 1.3.272). Dodata podrška za Vulkan ekstenzije za video kodiranje i dekodiranje.
- Kada se koristi X11 backend, implementirana je mogućnost renderiranja Vulkan podređenih prozora za aplikacije koje koriste takve prozore za prikaz 3D sadržaja (ranije je takva funkcija bila dostupna samo za OpenGL).
- Podrška za mehanizam povezivanja fontova je dodana u GdiPlus biblioteku, koja vam omogućava da koristite nekoliko fontova prilikom prikazivanja teksta ako ne postoje fontovi koji posebno pokrivaju sve znakove koji se nalaze u tekstu.
- 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
- Dodata podrška za OpenGL i bafere piksela (pBuffer) u drajver winewayland.drv.
- Rešeni problemi sa pozicioniranjem iskačućih prozora u okruženjima zasnovanim na Waylandu.
- Kada koristite Wayland, implementirana je podrška za automatsko ponavljanje pritiskanja dok držite tipke.
- Integracija sa desktopom
- Dodan je eksperimentalni mehanizam emulacije "modesetting" koji vam omogućava da emulirate promjenu video načina bez stvarne promjene postavki ekrana. Vidljivost promjene rezolucije ekrana bez prebacivanja video moda stvara se kroz proširenje i skaliranje prozora.
- Dodan je novi aplet kontrolne table radne površine (desk.cpl) sa implementacijom interfejsa za upravljanje postavkama ekrana (na primer, možete promeniti virtuelnu rezoluciju radne površine ili konfigurisati emulirane parametre prikaza).
- Dodana je mogućnost resetiranja postavki ekrana na zadane vrijednosti ako je nemoguće vratiti stanje nakon pada procesa.
- Добавлена поддержка отключения показа пиктограмм в системном лотке (в «HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer» следует указать «NoTrayItemsDisplay=1»).
- Добавлена поддержка отключения оболочек (Shell launcher) в режиме десктопа (в «HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer» следует указать «NoDesktop=1»).
- Direct3D
- Renderiranje sa OpenGL-om sada zahtijeva podršku za GLSL 1.20, kao i ekstenzije EXT_framebuffer_object i ARB_texture_non_power_of_two. Podrška za stari ARB shader backend i postavku OffscreenRenderingMode je ukinuta.
- Za Direct3D 9 i starije, dodat je grafički cjevovod fiksne funkcije (stariji Direct3D je pružao samo unaprijed definirane grafičke operacije koje se nisu mogle mijenjati), implementiran korištenjem HLSL shader jezika i omogućava emulaciju fiksne funkcije prilikom renderiranja putem Vulkan ili OpenGL API-ja.
- Rendering sa Vulkanom koristi Vulkan ekstenzije za dinamičku promjenu stanja grafičkog cjevovoda, smanjujući mucanje u igrama.
- Dodan alternativni glsl-vkd3d backend za GLSL shadere, koristeći vkd3d-shader.
- Pruža početnu podršku za kompajliranje Direct3D efekata koristeći vkd3d-shader.
- D3DX9 biblioteka implementira mogućnost generiranja MIP tekstura (MipMap) prilikom učitavanja volumetrijskih tekstura. Dodata podrška za 64bpp RGBA i 48bpp RGB formate predstavljanja boja u PNG slikama, kao i za formate X8L8V8U8, A2W10V10U10, A8P8, V16U16 i Q16W16V16U16.
- Zvuk i video
- Kao alternativa backendu zasnovanom na GStreameru, implementiran je novi multimedijalni backend, baziran na upotrebi FFmpeg i pogodan za pokretanje Media Foundation frameworka. Da biste omogućili alternativni backend, trebali biste navesti “DisableGstByteStreamHandler=1” u odjeljku registra “HKCU\Software\Wine\MediaFoundation”.
- Implementacija Media Foundation API-ja je poboljšana kako bi se bolje prilagodile aplikacijama koje zavise od komponenti za demultipleksiranje i dekodiranje.
- DirectMusic API je dodao podršku za učitavanje MIDI datoteka.
- Uređaji za unos
- Dodata početna verzija Bluetooth drajvera.
- Dodan aplet kontrolne table džojstika (joy.cpl) sa implementacijom podešavanja za džojstik.
- Внесены улучшения, связанные с устройствами управления указателем (тачпады, мыши), использующими протокол HID (Human Interface Device). Добавлен драйвер mouhid.sys для HID-устройств. Реализован корректный разбор составных устройств ввода и обеспечена передача информации о них в Windows-приложения, как о раздельных устройствах.
- Za pozadinu X11 dodata je podrška za ekrane osetljive na dodir i implementirana je mogućnost korišćenja multi-touch režima kroz obradu WM_POINTER* poruka (WM_POINTERENTER, WM_POINTERLEAVE, itd.).
- Implementirano postavljanje nekih internih struktura biblioteke user32 u dijeljenu memoriju, što je povećalo performanse i smanjilo opterećenje Wine Servera.
- Winex11 je dodao podršku za obradu XInput2 događaja u odnosu na pojedinačne prozore.
- Implementirana ispravna podrška za tastature sa Dvorak rasporedom.
- Jezgro (jezgreni interfejsi Windows)
- Dodata podrška za eskalaciju privilegija procesa (proces koji se u početku izvodi kao standardni korisnik može dobiti administratorske privilegije). Prilikom kreiranja serverskih procesa (msi akcioni server), kao i procesa koji pozivaju funkcije RtlCreateUserProcess() i CreateProcessInternal(), po defaultu je omogućen ograničeni administratorski token.
- Prilikom dobivanja informacija o oznakama diska, kad god je to moguće, sada se koristi pristup sistemskim uslugama preko DBus-a, umjesto pokušaja direktnog pristupa uređaju.
- Однонаправленный механизм межпроцессного взаимодействия (IPC) Mailslots теперь реализован непосредственно в Wine server, что позволило добиться полной поддержки семантики Windows.
- Implementirano čekanje događaja serijskog porta u asinkronom načinu rada.
- Dodata je puna podrška za proširenja procesora XSTATE u kontekstu niti, omogućavajući upotrebu novih vektorskih ekstenzija kao što je AVX-512.
- Ugrađene aplikacije
- Mehanizam za obradu ulaznih podataka koji se koristi u interpretatoru komandi cmd.exe je ponovo napisan. Dodata podrška za “||” operacije u cmd.exe I "&&".
- Uslužni program findstr je dodao podršku za regularne izraze i pretraživanja bez obzira na velika i mala slova.
- Mogućnost registracije ARM32EC modula dodata je uslužnim programima regsvr32 i rundll64.
- Dodati uslužni programi: sortiranje za sortiranje ulaznih podataka, fc za poređenje datoteka i gdje za pretraživanje datoteka.
- Aplikacija wmic implementira interaktivni način rada.
- Explorer je dodao opcionu podršku za start meni i traku sa alatkama. Omogućeno pokretanje explorer.exe sa smanjenim pravima pristupa.
- Razvojni alati
- Dodata opcija "-marm64x" za winebuild za generiranje ARM64X hibridnih biblioteka.
- Dodata opcija "-marm64x" u winegcc kako bi se omogućila pravljenje za ARM64X.
- Datoteke generirane korištenjem Interface Definition Language (IDL) koriste komponente koje u potpunosti podržavaju izvršenje u interpretiranom načinu.
- Podrška za generisanje biblioteka tipova (TypeLib) u starom formatu (SLTG) dodata je kompajleru IDL (Interface Definition Language).
- Uslužni program winedump je dodao podršku za spremanje dumpova minidump tabela, C++ informacija o izuzetcima i typelib resursa.
- Разное
- Poboljšana podrška za Diffie-Hellman (DH) protokol za razmjenu ključeva. Dodata mogućnost konfigurisanja i primanja DH parametara. Implementirani rukovaoci za kreiranje parova javnih i privatnih ključeva.
- Osigurana je upotreba inkrementalnog dopuna OAEP (Optimal Asymmetric Encryption Padding) zajedno sa RSA algoritmom.
- DirectPlay API podržava mrežne sesije.
- Poboljšano rukovanje asinhronim ulazno/izlaznim stanjima pri radu u WoW64 (64-bitnom) modu Windows-na-Windows), što vam omogućava pokretanje 32-bitnih Windows-aplikacije na 64-bitnim Unix sistemima.
- Добавлена поддержка загрузки ODBC-драйверов к СУБД, собранных для Windows.
- Za ARM platformu implementirana je puna podrška za RPC/COM, C++ RTTI (Run-Time Type Information) i C++ izuzetke.
- U C runtime-u, ANSI funkcije implementiraju podršku za UTF-8 kodiranje.
- Mogućnosti MSHTML motora su proširene. Dodata podrška za prototipove i konstruktore objekata. Novi interfejs za povezivanje objekata za MSHTML je dodat JavaScript mašini. MSHTML ugrađene funkcije su konvertovane u važeće JavaScript objekte. Poboljšano JavaScript sakupljanje smeća da pokrije sve kontekste izvršavanja skripte u niti. Dodata podrška za ArrayBuffer i DataView JavaScript objekte.
- Podrška za statičku analizu koristeći Clang i JUnit test izvještaje dodata je sistemu kontinuirane integracije baziranom na Gitlabu.
- Biblioteka Capstone 5.0.3 je ugrađena u paket, kroz koju se implementira rastavljanje u WineDb debugger-u.
- Komponente ažurirane na nove verzije: Vkd3d 1.14, Faudio 24.10, FluidSynth 2.4.0, LDAP 2.5.18, LCMS2 2.16, LibJpeg 9f, LibMPG123 1.32.9, LibPng1.6.44mTiXl 4.7.0 2, LibXslt 2.12.8 i Zlib 1.1.42.
izvor: opennet.ru
