Stabilna različica Wine 7.0

Po letu dni razvoja in 30 eksperimentalnih različic je predstavljena stabilna različica odprte implementacije Win32 API - Wine 7.0, ki vključuje več kot 9100 sprememb. Med ključnimi dosežki nove različice izstopa pretvorba večine Wine modulov v format PE, podpora za teme oblikovanja, razširitev skladišča za joysticke in naprave za vnos z vmesnikom HID ter uresničitev arhitekture WoW64 za zagon 32-bitnih programov v 64-bitnem okolju.

V Wine je potrjena polna podpora za 5156 (pred letom 5049) programov za Windows, še 4312 (pred letom 4227) programov deluje odlično ob dodatnih nastavitvah in zunanjih DLL. Pri 3813 programih (pred letom 3703) so opazne manjše težave, ki ne ovirajo osnovnih funkcij aplikacij.

Ključne novosti Wine 7.0:

  • Moduli v formatu PE
    • Skoraj vse DLL knjižnice so bile pretvorjene za uporabo formata izvršnih datotek PE (Portable Executable, uporablja se v Windows) namesto ELF. Uporaba PE rešuje težave s podporo različnim shemam zaščite pred kopiranjem, ki preverjajo identiteto sistemskih modulov na disku in v pomnilniku.
    • Uresničena je sposobnost interakcije PE modulo z Unix knjižnicami z uporabo standardnega sistemskega klica jedra NT, kar omogoča skrivanje pozivov k Unix kodi pred Windows debagerji in sledenje registraciji niti.
    • Vgrajene DLL se zdaj nalagajo samo, če je na disku ustrezna datoteka v formatu PE, ne glede na to, ali gre za pravo knjižnico ali nadomestek. Ta sprememba omogoča aplikaciji, da vedno vidi pravilno povezavo z PE datotekami. Za onemogočanje te funkcije lahko uporabite okoljsko spremenljivko WINEBOOTSTRAPMODE.
  • WoW64
    • Uresničena je arhitektura WoW64 (64-bit Windows-on-Windows), kar omogoča zagon 32-bitnih Windows aplikacij v 64-bitnih Unix procesih. Podpora je uresničena preko povezave sloja, ki prevaja 32-bitne sistemske klice NT v 64-bitne klice NTDLL.
    • Sloji WoW64 so pripravljeni za večino Unix knjižnic in omogočajo 32-bitnim modulom v formatu PE dostop do 64-bitnih Unix knjižnic. Po zaključku prenosa vseh modulov v format PE bo možna izvršitev 32-bitnih Windows aplikacij brez namestitve 32-bitnih Unix knjižnic.
  • Teme oblikovanja
    • Podpora tem je bila implementirana. Vključene so teme 'Light', 'Blue' in 'Classic Blue', ki jih je mogoče izbrati preko konfiguratorja WineCfg.
    • Dodana je možnost prilagoditve videza vseh kontrolnih elementov vmesnika preko tem. Zaslon se samodejno posodobi po spremembi teme.
    • Vsa vgrajena aplikacija Wine zdaj podpirajo teme. Aplikacije so bile prilagojene za zaslone z visoko gostoto pik (High DPI).
  • Grafični sistem
    • Dodana je nova knjižnica Win32u, v kateri so bile premeščene komponente knjižnic GDI32 in USER32, povezane z obdelavo grafike in upravljanjem oken na ravni jedra. V prihodnosti se bo pričelo delo na prenosu komponent gonilnikov v Win32u, kot so winex11.drv in winemac.drv.
    • V gonilniku Vulkan je bila implementirana podpora za specifikacijo grafičnega API Vulkan 1.2.201.
    • Dodana je podpora za izhod preko API Direct2D za črtkane geometrijske objekte, z možnostjo preverjanja zadetka (hit-test).
    • V API Direct2D je bila implementirana začetna podpora za vizualne učinke, ki se uporabljajo z vmesnikom ID2D1Effect.
    • V API Direct2D je bila dodana podpora za vmesnik ID2D1MultiThread, ki se uporablja za organizacijo izključnega dostopa do virov v večnitnih aplikacijah.
    • V naboru knjižnic WindowsCodecs je bila implementirana podpora za dekodiranje slik v formatu WMP (Windows Media Photo) in kodiranje slik v formatu DDS (DirectDraw Surface). Podpora za kodiranje slik v formatu ICNS (za macOS), ki ni podprt v Windows, je prenehana.
  • Direct3D
    • Znatno je izboljšan novi motor za risanje, ki prevaja klice Direct3D v grafični API Vulkan. V večini situacij je raven podpore Direct3D 10 in 11 v motorju na osnovi Vulkan dosežena na ravni pariteta s starim motorjem na osnovi OpenGL. Za vključitev motorja za risanje preko Vulkan nastavite registrsko spremenljivko Direct3D 'renderer' na 'vulkan'.
    • Implementirane so številne funkcije Direct3D 10 in 11, vključno z odloženimi konteksti (Deferred Contexts), delovanjem v kontekstu naprav, objekti stanja, stalnimi pomiki v predpomnilnikih, čiščenjem neurejenih prikazov tekstur, kopiranjem podatkov med viri v breztipnih formatih (DXGI_FORMAT_BC3_TYPELESS, DXGI_FORMAT_R32G32B32A32_TYPELESS) itd.
    • Dodana je podrška za višemonitorske konfiguracije, što omogućava odabir monitora za prikaz Direct3D aplikacije u režimu celog ekrana.
    • U DXGI API-ju implementirana je mogućnost gamma korekcije ekrana, što se može koristiti u aplikacijama baziranim na Direct3D 10 i 11 za promenu osvetljenosti ekrana. Omogućeno je preuzimanje brojača virtuelnih frame buffer-a (SwapChain).
    • U Direct3D 12 dodana je podrška za korenske potpise verzije 1.1.
    • U kodu za renderovanje putem Vulkan API-ja poboljšana je efikasnost obrade zahteva kada postoji podrška za ekstenziju VK_EXT_host_query_reset.
    • Dodana je mogućnost prikazivanja virtuelnih frame buffer-a (SwapChain) preko GDI-a, kada OpenGL ili Vulkan ne mogu biti korišćeni za prikaz, na primer, prilikom iscrtavanja u prozoru iz različitih procesa, kao u aplikacijama baziranim na CEF (Chromium Embedded Framework).
    • Kada se koristi backend za GLSL šablone, omogućena je primena modifikatora 'precise'.
    • U DirectDraw API-u dodana je podrška za 3D renderovanje u sistemskoj memoriji, koristeći softverske uređaje kao što su 'RGB', 'MMX' i 'Ramp'.
    • U bazu grafičkih kartica Direct3D dodane su AMD Radeon RX 5500M, AMD Radeon RX 6800/6800 XT/6900 XT, AMD Van Gogh, Intel UHD Graphics 630 i NVIDIA GT 1030.
    • Iz registra HKEY_CURRENT_USER\Software\Wine\Direct3D uključen je ključ 'UseGLSL', umesto kojeg od Wine 5.0 treba koristiti 'shader_backend'.
    • Za podršku Direct3D 12 sada je potrebna biblioteka vkd3d najmanje verzije 1.2.
  • D3DX
    • U implementaciji D3DX 10 poboljšana je podrška za okvir vizuelnih efekata i dodata je podrška za format slika Windows Media Photo (JPEG XR).
    • Dodane su funkcije za kreiranje tekstura u D3DX10, kao što je D3DX10CreateTextureFromMemory().
    • Delimično su implementirani softverski interfejsi ID3DX10Sprite i ID3DX10Font.
  • Zvuk i video
    • U jedan zajednički backend WineGStreamer integrišu se GStreamer dodaci za DirectShow i okvir Media Foundation, što bi trebalo da olakša razvoj novih dekodirajućih API-ja.
    • Na osnovu backenda WineGStreamer implementirani su Windows Media objekti za sinhrono i asinhrono čitanje.
    • Nastavljena je dorada implementacije okvira Media Foundation, dodata je podrška za funkcionalnost IMFPMediaPlayer, distribucijskog allocator-a uzoraka, poboljšana je podrška za EVR i baferisanje male rezolucije.
    • Uklonjena je biblioteka wineqtdecoder, koja je pružala dekoder za QuickTime format (za sve kodeke sada se koristi GStreamer).
  • Ulazni uređaji
    • Znatno je poboljšan skup za ulazne uređaje koji podržavaju HID protokol (Human Interface Devices), omogućujući funkcije kao što su analiza HID deskriptorâ, obrada HID poruka i pružanje mini drajvera HID.
    • U pozadinskim drajverima winebus.sys poboljšana je konverzija opisa uređaja u HID poruke.
    • Dodana je nova pozadina DirectInput za džojstike koji podržavaju HID protokol. Omogućena je upotreba efekata povratne informacije u džojsticima. Poboljšano je kontrolni panel funkcionisanje sa džojsticima. Optimizovana je interakcija sa XInput kompatibilnim uređajima. U WinMM, podrška za džojstike je prebačena na DInput, umesto korišćenja pozadine evdev u Linuxu i IOHID u macOS-u. Stari drajver džojstika winejoystick.drv je uklonjen.
    • U DInput modul su dodani novi testovi zasnovani na virtualnim HID uređajima koji ne zahtevaju fizički uređaj.
  • Tekst i fontovi
    • U DirectWrite je dodat objekat Font Set.
    • U RichEdit je ispravno implementiran interfejs TextHost.
  • Jezgro (interfejsi jezgra Windows-a)
    • Pri pokretanju neprepoznate izvršne datoteke u Wine-u (na primer, ‘wine foo.msi’) sada se pokreće start.exe koji poziva obrtnike povezane sa tipom datoteke.
    • Dodana je podrška za mehanizme sinhronizacije NtAlertThreadByThreadId i NtWaitForAlertByThreadId, slične fjučeksima u Linuxu.
    • Dodana je podrška za NT debug objekte koji se koriste za debagovanje funkcija jezgra.
    • Dodana je podrška za dinamičke ključeve registra za čuvanje podataka o performansama.
  • C Runtime
    • U C runtime-u implementiran je kompletan skup matematičkih funkcija, koji je uglavnom prenesen iz Musl biblioteke.
    • Obezbeđena je ispravna podrška za funkcije izračunavanja sa pomičnom tačkom na svim CPU platformama.
  • Mrežne mogućnosti
    • Poboljšana je kompatibilnost sa Internet Explorer 11 (IE11), koji se sada koristi kao podrazumevani način za obradu HTML dokumenata.
    • U biblioteci mshtml implementiran je JavaScript režim ES6 (ECMAScript 2015), koji podržava mogućnosti kao što su izraz let i objekat Map.
    • Instalacija Wine MSI paketa sa dodatcima za Gecko motor u radni katalog sada se vrši po potrebi, a ne tokom ažuriranja Wine-a.
    • Dodana je podrška za DTLS protokol.
    • Implementirana je NSI (Network Store Interface) usluga koja čuva i prenosi drugim uslugama informacije o rutiranju i mrežnim interfejsima na računaru.
    • API handlers WinSock, such as setsockopt and getsockopt, have been moved to the NTDLL library and the afd.sys driver to comply with the Windows architecture.
    • The Wine working directory now contains its own files with network databases, such as /etc/protocols and /etc/networks, instead of referencing similar Unix databases.
  • Alternative platforms
    • Support for Apple hardware based on M1 ARM chips (Apple Silicon) has been added.
    • To support BCrypt and Secur32 functions on macOS, the GnuTLS library must now be installed.
    • 32-bit executables for ARM platforms are now built in Thumb-2 mode, similar to Windows. A preloader is used to load such files.
    • Support for exception unwinding is implemented for 32-bit ARM platforms.
    • For FreeBSD, the number of supported low-level system information queries has been expanded, such as data on memory status and battery charge level.
  • Built-in applications and development tools
    • The reg.exe utility now supports 32- and 64-bit representations of the registry. Support for copying registry keys has been added.
    • The WineDump utility has been enhanced with the ability to output Windows metadata dumps and show detailed information about CodeView entries.
    • The Wine Debugger (winedbg) now supports debugging 32-bit processes from a 64-bit debugger.
    • The IDL compiler (widl) has been updated to load libraries embedded in PE files, supporting WinRT-specific attributes and constructs, and enabling platform-specific library binding.
  • Build system
    • In architecture-specific directories, libraries are now stored with names reflecting the architecture and type of executable files, such as 'i386-windows' for PE format and 'x86_64-unix' for unix libraries, allowing different architectures to be supported in a single Wine installation and enabling cross-compilation of Winelib.
    • To set options in PE headers that control the switch to using native DLLs, the winebuild utility has been updated with the flag '--prefer-native option' (handling of DLL_WINE_PREATTACH in DllMain has been discontinued).
    • Support for version 4 of the Dwarf debug data format is added, which is now used by default when building Wine libraries.
    • Dodana je opcija za sastavljanje ‘—enable-build-id’ za pohranu jedinstvenih identifikatora sastava u izvršne datoteke.
    • Dodana je podrška za korištenje Clang kompajlera u MSVC kompatibilnom režimu.
  • Razno
    • Nazivi tipičnih mapa u korisničkom sučelju (Windows Shell) prilagođeni su shemi koja se primjenjuje od Windows Vista, tj. umjesto ‘Moji dokumenti’ sada se kreira mapa ‘Dokumenti’, a većina podataka se pohranjuje u mapu ‘AppData’.
    • U sloju za OpenCL biblioteku dodana je podrška za specifikaciju OpenCL 1.2.
    • U WinSpool drajver dodana je podrška za različite varijante veličina stranica pri ispisu.
    • Dodana je početna podrška za MSDASQL, Microsoft OLE DB provajder za ODBC drajvere.
    • Wine Mono motor s implementacijom .NET platforme ažuriran je na verziju 7.0.0.
    • Unicode podaci ažurirani su na specifikaciju Unicode 14.
    • U stablo izvornih tekstova ugrađene su biblioteke Faudio, GSM, LCMS2, LibJPEG, LibJXR, LibMPG123, LibPng, LibTiff, LibXml2, LibXslt i Zlib, koje se sastavljaju u PE formatu i ne zahtijevaju prisutnost varijante u Unix formatu. Ove biblioteke također se mogu uvesti iz sustava za korištenje vanjskih sastavljanja umjesto ugrađenih PE varijanti.

Izvor: opennet.ru

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster