Lëshimi i qëndrueshëm i Wine 7.0

Pas një viti zhvillimi dhe 30 versionesh eksperimentale, u prezantua një version i qëndrueshëm i zbatimit të hapur të Win32 API - Wine 7.0, i cili përfshinte më shumë se 9100 ndryshime. Arritjet kryesore të versionit të ri përfshijnë përkthimin e shumicës së moduleve Wine në formatin PE, mbështetjen për temat, zgjerimin e grupit për levë dhe pajisje hyrëse me një ndërfaqe HID dhe zbatimin e arkitekturës WoW64 për ekzekutimin e programeve 32-bit në një Mjedisi 64-bit.

Wine ka konfirmuar funksionimin e plotë të 5156 (një vit më parë 5049) programe për Windows, 4312 të tjera (një vit më parë 4227) programe funksionojnë në mënyrë perfekte me cilësime shtesë dhe DLL të jashtme. 3813 programe (3703 vjet më parë) kanë probleme të vogla operative që nuk ndërhyjnë në përdorimin e funksioneve kryesore të aplikacioneve.

Risitë kryesore në Wine 7.0:

  • Modulet në formatin PE
    • Pothuajse të gjitha DLL-të janë konvertuar për të përdorur formatin e skedarit të ekzekutueshëm PE (Portable Executable, i përdorur në Windows) në vend të ELF. Përdorimi i PE zgjidh problemet me mbështetjen e skemave të ndryshme të mbrojtjes nga kopjimi që verifikojnë identitetin e moduleve të sistemit në disk dhe në memorie.
    • Është zbatuar aftësia për të bashkëvepruar modulet PE me bibliotekat Unix duke përdorur thirrjen standarde të sistemit të kernelit NT, e cila ju lejon të fshehni aksesin në kodin Unix nga korrigjuesit e Windows dhe të monitoroni regjistrimin e temave.
    • DLL-të e integruara tani ngarkohen vetëm nëse ka një skedar përkatës PE në disk, pavarësisht nëse është një bibliotekë e vërtetë apo një cung. Ky ndryshim lejon që aplikacioni të shohë gjithmonë lidhjen e saktë me skedarët PE. Për të çaktivizuar këtë sjellje, mund të përdorni variablin e mjedisit WINEBOOTSTRAPMODE.
  • WoW64
    • Arkitektura WoW64 (64-bit Windows-on-Windows) është implementuar, duke ju lejuar të ekzekutoni aplikacione Windows 32-bit në proceset Unix 64-bit. Mbështetja zbatohet nëpërmjet lidhjes së një shtrese që përkthen thirrjet e sistemit NT 32-bit në thirrje 64-bitësh në NTDLL.
    • Shtresat WoW64 janë përgatitur për shumicën e bibliotekave Unix dhe lejojnë modulet PE 32-bit të kenë akses në bibliotekat Unix 64-bit. Pasi të gjitha modulet të jenë konvertuar në formatin PE, do të jetë e mundur të ekzekutohen aplikacionet Windows 32-bit pa instaluar bibliotekat Unix 32-bit.
  • Temat
    • Mbështetja për temën është zbatuar. Përfshihen temat e dizajnit "Drita", "Blu" dhe "Bluja klasike", të cilat mund të zgjidhen përmes konfiguruesit WineCfg.
    • U shtua aftësia për të personalizuar pamjen e të gjitha kontrolleve të ndërfaqes përmes temave. Pamja e elementeve përditësohet automatikisht pas ndryshimit të temës së dizajnit.
    • Mbështetja e temës është shtuar në të gjitha aplikacionet e integruara të Wine. Aplikacionet janë përshtatur për ekranet me densitet të lartë pixel (High DPI).
  • Nënsistemi grafik
    • Është shtuar një bibliotekë e re Win32u, e cila përfshin pjesë të bibliotekave GDI32 dhe USER32 që lidhen me përpunimin e grafikës dhe menaxhimin e dritareve në nivel kernel. Në të ardhmen, do të fillojë puna për transferimin e komponentëve të shoferit si winex32.drv dhe winemac.drv në Win11u.
    • Drejtuesi Vulkan mbështet specifikimin Vulkan graphics API 1.2.201.
    • Ofron mbështetje për nxjerrjen e objekteve gjeometrike të çelura nëpërmjet Direct2D API, me aftësinë për të kontrolluar nëse një klikim godet (hit-test).
    • Direct2D API ofron mbështetje fillestare për efektet vizuale të aplikuara duke përdorur ndërfaqen ID2D1Effect.
    • Direct2D API ka shtuar mbështetje për ndërfaqen ID2D1MultiThread, e cila përdoret për të organizuar qasje ekskluzive në burime në aplikacionet me shumë fije.
    • Kompleti i bibliotekave WindowsCodecs ofron mbështetje për dekodimin e imazheve në formatin WMP (Windows Media Photo) dhe kodimin e imazheve në formatin DDS (DirectDraw Surface). Ne nuk mbështesim më kodimin e imazheve në formatin ICNS (për macOS), i cili nuk mbështetet në Windows.
  • Direct3D
    • Motori i ri i interpretimit është përmirësuar ndjeshëm, duke përkthyer thirrjet Direct3D në API grafike Vulkan. Në shumicën e situatave, niveli i mbështetjes për Direct3D 10 dhe 11 në motorin e bazuar në Vulkan është barazuar me motorin më të vjetër të bazuar në OpenGL. Për të aktivizuar motorin e interpretimit Vulkan, vendosni variablin e regjistrit Direct3D "renderer" në "vulkan".
    • Shumë veçori të Direct3D 10 dhe 11 janë implementuar, duke përfshirë Kontekste të Shtyra, objekte të gjendjes që funksionojnë në kontekstin e pajisjes, zhvendosje të vazhdueshme në buferë, pastrimin e pamjeve të teksturës jashtë rendit, kopjimin e të dhënave midis burimeve në formate pa tip (DXGI_FORMAT_BC3_TYPELESS, DXGI32G32B, etj. .
    • Mbështetje e shtuar për konfigurimet me shumë monitorë, duke ju lejuar të zgjidhni një monitor për të shfaqur një aplikacion Direct3D në modalitetin e ekranit të plotë.
    • DXGI API siguron korrigjimin e gamës së ekranit, i cili mund të përdoret nga aplikacionet e bazuara në Direct3D 10 dhe 11 për të ndryshuar ndriçimin e ekranit. Aktivizoi rikthimin e numëruesve të kuadrove virtuale (SwapChain).
    • Direct3D 12 shton mbështetje për nënshkrimet rrënjësore të versionit 1.1.
    • Në kodin e interpretimit nëpërmjet Vulkan API, efikasiteti i përpunimit të pyetjeve është përmirësuar kur sistemi mbështet shtrirjen VK_EXT_host_query_reset.
    • U shtua aftësia për të nxjerrë korniza virtuale (SwapChain) nëpërmjet GDI nëse OpenGL ose Vulkan nuk mund të përdoren për shfaqje, për shembull, kur nxirret në një dritare nga procese të ndryshme, për shembull, në programet e bazuara në kornizën CEF (Chromium Embedded Framework).
    • Kur përdorni bazën e shaderit GLSL, modifikuesi "i saktë" sigurohet për udhëzimet e shaderit.
    • DirectDraw API shton mbështetje për paraqitjen 3D në kujtesën e sistemit duke përdorur pajisje softuerike si "RGB", "MMX" dhe "Ramp".
    • Kartat AMD Radeon RX 3M, AMD Radeon RX 5500/6800 XT/6800 XT, AMD Van Gogh, Intel UHD Graphics 6900 dhe NVIDIA GT 630 janë shtuar në bazën e të dhënave të kartave grafike Direct1030D.
    • Çelësi "UseGLSL" është hequr nga regjistri HKEY_CURRENT_USER\Software\Wine\Direct3D, në vend të të cilit, duke filluar me Wine 5.0, duhet të përdorni "shader_backend".
    • Për të mbështetur Direct3D 12, tani ju duhet të paktën versioni 3 i bibliotekës vkd1.2d.
  • D3DX
    • Zbatimi i D3DX 10 ka përmirësuar mbështetjen për kornizën e efekteve vizuale dhe ka shtuar mbështetje për formatin e imazhit të Windows Media Photo (JPEG XR)
    • Funksionet e shtuara të krijimit të teksturës të ofruara në D3DX10, të tilla si D3DX10CreateTextureFromMemory().
    • Ndërfaqet e softuerit ID3DX10Sprite dhe ID3DX10Font janë implementuar pjesërisht.
  • Tingulli dhe video
    • Shtesat GStreamer për DirectShow dhe kuadrin e Media Foundation kombinohen në një fund të përbashkët WineGStreamer, i cili duhet të thjeshtojë zhvillimin e API-ve të reja për dekodimin e përmbajtjes.
    • Bazuar në bazën WineGStreamer, objektet e Windows Media zbatohen për lexim sinkron dhe asinkron.
    • Zbatimi i kornizës së Fondacionit Media është përmirësuar më tej, është shtuar mbështetja për funksionalitetin IMFPMediaPlayer dhe përcaktuesin e mostrës dhe është përmirësuar mbështetja për buferët e dhënies së EVR dhe SAR.
    • Biblioteka wineqtdecoder, e cila ofron një dekoder për formatin QuickTime, është hequr (të gjithë kodekët tani përdorin GStreamer).
  • Pajisjet hyrëse
    • Stafi për pajisjet hyrëse që mbështesin protokollin HID (Human Interface Devices) është përmirësuar ndjeshëm, duke ofruar aftësi të tilla si analizimi i përshkruesve HID, përpunimi i mesazheve HID dhe ofrimi i drejtuesve mini-HID.
    • Në pjesën e pasme të drejtuesit të winebus.sys, përkthimi i përshkrimeve të pajisjes në mesazhe HID është përmirësuar.
    • U shtua një prapavijë e re DirectInput për levë që mbështesin protokollin HID. Është zbatuar aftësia për të përdorur efektet e reagimit në levë. Paneli i përmirësuar i kontrollit të levës. Ndërveprimi i optimizuar me pajisjet e përputhshme me XInput. Në WinMM, mbështetja e levës është zhvendosur në DInput, në vend që të përdoret mbështetja evdev në Linux dhe IOHID në macOS IOHID. Drejtuesi i vjetër i levës winejoystick.drv është hequr.
    • Testet e reja janë shtuar në modulin DInput, bazuar në përdorimin e pajisjeve virtuale HID dhe që nuk kërkojnë pajisje fizike.
  • Teksti dhe fontet
    • U shtua objekti i grupit të shkronjave në DirectWrite.
    • RichEdit zbaton saktë ndërfaqen TextHost.
  • Kernel (ndërfaqet e kernelit të Windows)
    • Kur ekzekutoni një skedar të ekzekutueshëm të paidentifikuar (siç është 'wine foo.msi') në Wine, tani thirret start.exe, i cili thërret mbajtësit e lidhur me llojin e skedarit.
    • Mbështetje e shtuar për mekanizmat e sinkronizimit NtAlertThreadByThreadId dhe NtWaitForAlertByThreadId, të ngjashme me futexes në Linux.
    • Mbështetje e shtuar për objektet e korrigjimit të NT të përdorura për të korrigjuar funksionet e kernelit.
    • Mbështetje e shtuar për çelësat dinamikë të regjistrit për të ruajtur të dhënat e performancës.
  • C Koha e ekzekutimit
    • Runtime C zbaton një grup të plotë funksionesh matematikore, të cilat kryesisht barten nga biblioteka Musl.
    • Të gjitha platformat e CPU-së ofrojnë mbështetje të saktë për funksionet me pikë lundruese.
  • Karakteristikat e rrjetit
    • Modaliteti i përmirësuar i përputhshmërisë për Internet Explorer 11 (IE11), i cili tani përdoret si parazgjedhje për përpunimin e dokumenteve HTML.
    • Biblioteka mshtml zbaton modalitetin JavaScript ES6 (ECMAScript 2015), i cili ofron mbështetje për veçori të tilla si shprehja let dhe objekti Map.
    • Instalimi i paketave MSI me shtesa në motorin Gecko në drejtorinë e punës Wine bëhet tani kur është e nevojshme, dhe jo gjatë një përditësimi Wine.
    • Mbështetje e shtuar për protokollin DTLS.
    • Shërbimi NSI (Network Store Interface) është implementuar, duke ruajtur dhe transmetuar informacione në lidhje me rrugëzimin dhe ndërfaqet e rrjetit në kompjuter në shërbime të tjera.
    • Trajtuesit e WinSock API si setsockopt dhe getsockopt janë zhvendosur në NTDLL dhe drejtuesi afd.sys për t'u përshtatur me arkitekturën e Windows.
    • Skedarët e bazës së të dhënave të rrjetit të Wine, si p.sh. /etc/protocols dhe /etc/networks, janë instaluar tani në drejtorinë e punës Wine, në vend të aksesit në baza të ngjashme të të dhënave Unix.
  • Platformat alternative
    • Mbështetje e shtuar për pajisjet Apple bazuar në çipat M1 ARM (Apple Silicon).
    • Mbështetja për veçoritë BCrypt dhe Secur32 në macOS tani kërkon instalimin e bibliotekës GnuTLS.
    • Ekzekutuesit 32-bit për platformat ARM tani janë ndërtuar në modalitetin Thumb-2, ngjashëm me Windows. Një preloader përdoret për të ngarkuar skedarë të tillë.
    • Për platformat ARM 32-bitësh, është zbatuar mbështetja për përjashtimet e shthurjes.
    • Për FreeBSD, numri i pyetjeve të mbështetura për informacionin e sistemit të nivelit të ulët, si statusi i kujtesës dhe niveli i ngarkimit të baterisë, është zgjeruar.
  • Aplikacione të integruara dhe mjete zhvillimi
    • Programi reg.exe ka shtuar mbështetje për pamjet e regjistrit 32- dhe 64-bit. Mbështetje e shtuar për kopjimin e çelësave të regjistrit.
    • Shërbimi WineDump ka shtuar mbështetje për hedhjen e meta të dhënave të Windows dhe shfaqjen e informacionit të detajuar rreth hyrjeve në CodeView.
    • Wine Debugger (winedbg) ofron mundësinë për të korrigjuar proceset 32-bit nga një korrigjues 64-bit.
    • Aftësia për të ngarkuar bibliotekat e integruara në skedarët PE është shtuar në përpiluesin IDL (widl), është siguruar mbështetje për atributet dhe konstruktet specifike të WinRT dhe është zbatuar një kërkim bibliotekë specifik për platformën.
  • Sistemi i montimit
    • Në drejtoritë specifike për arkitekturën, bibliotekat tani ruhen me emra që pasqyrojnë arkitekturën dhe llojin e ekzekutueshëm, si 'i386-windows' për formatin PE dhe 'x86_64-unix' për bibliotekat unix, duke lejuar mbështetje për arkitektura të ndryshme në një Wine të vetme instalimi dhe sigurimi i ndërthurjes së Winelib.
    • Për të vendosur një opsion në titujt e skedarëve PE që kontrollon kalimin në përdorimin e DLL-ve origjinale, flamuri '--prefer-opsioni vendas' është shtuar në winebuild (përpunimi DLL_WINE_PREATTACH në DllMain është ndalur).
    • U shtua mbështetje për versionin 4 të formatit të të dhënave të korrigjimit të Dwarf, i cili tani përdoret si parazgjedhje gjatë ndërtimit të bibliotekave Wine.
    • U shtua opsioni i ndërtimit '—enable-build-id' për të ruajtur identifikuesit unik të ndërtimit në skedarët e ekzekutueshëm.
    • Mbështetje e shtuar për përdorimin e përpiluesit Clang në modalitetin e pajtueshmërisë MSVC.
  • Përmbledhje
    • Emrat e drejtorive tipike në guaskën e përdoruesit (Windows Shell) i jepen skemës së përdorur duke filluar me Windows Vista, d.m.th. Në vend të "Dokumentet e mia", tani krijohet një drejtori "Dokumentet" dhe shumica e të dhënave ruhen në drejtorinë "AppData".
    • Mbështetja për specifikimin OpenCL 1.2 është shtuar në shtresën e bibliotekës OpenCL.
    • Drejtuesi i WinSpool ka shtuar mbështetje për madhësi të ndryshme faqesh gjatë printimit.
    • U shtua mbështetje fillestare për MSDASQL, ofruesi Microsoft OLE DB për drejtuesit ODBC.
    • Motori Wine Mono me implementimin e platformës .NET është përditësuar për të lëshuar versionin 7.0.0.
    • Të dhënat e Unicode janë përditësuar në specifikimin Unicode 14.
    • Pema burimore përfshin bibliotekat Faudio, GSM, LCMS2, LibJPEG, LibJXR, LibMPG123, LibPng, LibTiff, LibXml2, LibXslt dhe Zlib, të cilat janë përpiluar në formatin PE dhe nuk kërkojnë një version në formatin Unix. Në të njëjtën kohë, këto biblioteka gjithashtu mund të importohen nga sistemi për të përdorur asamble të jashtme në vend të opsioneve të integruara PE.

Burimi: opennet.ru

Shto një koment