Lëshimi stabil i Wine 7.0

Pas një viti zhvillimi dhe 30 versioneve eksperimentale, u prezantua lëshimi stabil i implementimit të hapur të Win32 API — Wine 7.0, i cili përmban më shumë se 9100 ndryshime. Nga arritjet kryesore të versionit të ri përmendet kalimi i shumicës së moduleve të Wine në formatin PE, mbështetje për tema dizajni, zgjerimi i skemës për joystick-et dhe pajisjet e inputit me ndërfaqe HID, realizimi i arkitekturës WoW64 për të ekzekutuar programe 32-bit në një ambient 64-bit.

Në Wine, është konfirmuar funksionimi i plotë të 5156 (një vit më parë 5049) programeve për Windows, ndërsa 4312 (një vit më parë 4227) programe funksionojnë përsosur me konfigurime shtesë dhe DLL të jashtme. Tek 3813 programeve (një vit më parë 3703) vërehen probleme të vogla në funksionim, të cilat nuk pengojnë përdorimin e funksioneve kryesore të aplikacioneve.

Risi kryesore të Wine 7.0:

  • Module në formatin PE
    • Gati të gjitha bibliotekat DLL janë transferuar në përdorimin e formatit të skedarëve ekzekutivë PE (Portable Executable, e përdorur në Windows) në vend të ELF. Përdorimi i PE zgjidh problemet me mbështetjen e ndryshmeve mbrojtëse nga kopjimi, të cilat kryejnë verifikimin e identitetit të moduleve sistemore në disk dhe në memorie.
    • Është implementuar mundësia e ndërveprimit të moduleve PE me bibliotekat Unix duke përdorur thirrjen standarde të sistemit bërthamë NT, e cila lejon fshehjen e referencës në kodin Unix nga debugerët e Windows dhe ndjekjen e regjistrimit të rrjedhave.
    • DLL-të e integruara tani ngarkohen vetëm kur në disk ekziston skedari përkatës në formatin PE, pavarësisht se a është ajo bibliotekë e vërtetë apo një dummy. Ky ndryshim lejon aplikacionin të shohë gjithmonë lidhjen korrekte me skedarët PE. Për të çaktivizuar këtë sjellje, mund të përdoret variabla e mjedisit WINEBOOTSTRAPMODE.
  • WoW64
    • Është realizuar arkitektura WoW64 (Windows-on-Windows 64-bit), e cila lejon ekzekutimin e aplikacioneve Windows 32-bit në procese Unix 64-bit. Mbështetja është realizuar përmes bashkëngjitjes së një shtrese, e cila transkonverton thirrjet 32-bit NT në thirrje 64-bit në NTDLL.
    • Shtresat WoW64 janë përgatitur për shumicën e bibliotekave Unix dhe lejojnë moduleve 32-bit në formatin PE të aksesojnë bibliotekat 64-bit Unix. Pas përfundimit të transferimit të të gjitha moduleve në formatin PE, do të ketë mundësinë të ekzekutohen aplikacione Windows 32-bit pa instaluar bibliotekat Unix 32-bit.
  • Tematike e dizajnit
    • Është implementuar mbështetje për temat e dizajnit. Në përbërje përfshihen temat e dizajnit "Light", "Blue" dhe "Classic Blue", të cilat mund të zgjidhen përmes konfiguruesit WineCfg.
    • Është shtuar mundësia për të personalizuar pamjen e të gjithave elementeve të kontrollit të ndërfaqes përmes temave të dizajnit. Është siguruar përditësimi automatik i pamjes së elementeve pas ndryshimit të temës së dizajnit.
    • Në të gjitha aplikacionet e integruara të Wine është shtuar mbështetje për temat e dizajnit. Janë bërë adaptime të aplikacioneve për ekranet me densitet të lartë pikselesh (High DPI).
  • Sistemi grafik
    • Është shtuar një bibliotekë e re Win32u, në të cilën janë transferuar pjesë të bibliotekave GDI32 dhe USER32, të lidhura me përpunimin grafik dhe menaxhimin e dritareve në nivelin e bërthamës. Në të ardhmen do të fillojë puna për të transferuar në Win32u komponentët e drejtuesve, siç janë winex11.drv dhe winemac.drv.
    • Në drejtuesin Vulkan është realizuar mbështetje për specifikimin e API grafik Vulkan 1.2.201.
    • Është ofruar mbështetje për daljen përmes API Direct2D të objekteve gjeometrike të shtresuara, me mundësinë e kontrollit të treguesve të goditjes (hit-test).
    • Në API Direct2D është realizuar mbështetje fillestare për efektet vizuale që aplikohet duke përdorur ndërfaqen ID2D1Effect.
    • Në API Direct2D është shtuar mbështetje për ndërfaqen ID2D1MultiThread, e cila përdoret për të organizuar qasje ekskluzive në burimet në aplikacione shumëfishe.
    • Në grupin e bibliotekave WindowsCodecs është realizuar mbështetje për dekodimin e imazheve në formatin WMP (Windows Media Photo) dhe kodimin e imazheve në formatin DDS (DirectDraw Surface). Është ndalur mbështetja për kodimin e imazheve në formatin ICNS (për macOS), i cili nuk mbështetet në Windows.
  • Direct3D
    • Është përmirësuar ndjeshëm motori i ri i renderimit, i cili bën transkriptimin e thirrjeve Direct3D në API-në grafike Vulkan. Në shumicën e situatave, niveli i mbështetjes për Direct3D 10 dhe 11 në motorin e bazuar në Vulkan është arritur në barazim me motorin e vjetër të bazuar në OpenGL. Për të aktivizuar motorin e renderimit përmes Vulkan, duhet të vendosni variablën e regjistrit Direct3D "renderer" në vlerën "vulkan".
    • Janë realizuar shumë mundësi të Direct3D 10 dhe 11, duke përfshirë kontekstet e vonuara (Deferred Contexts), funksionimin në kontekstin e pajisjeve me objekte të qëndrueshme të gjendjes, zhvendosjet e përhershme në bufe, pastrimin e pamjeve të paqartë të teksteve, kopjimin e të dhënave midis burimeve në formate pa lloj (DXGI_FORMAT_BC3_TYPELESS, DXGI_FORMAT_R32G32B32A32_TYPELESS) etj.
    • Të shtuar mbështetje për konfigurime multi-monitor, duke lejuar zgjedhjen e monitorit për shfaqjen e aplikacioneve Direct3D në modalitetin me ekran të plotë.
    • Në API DXGI është implementuar mundësia për korrigjimin e gamma-s së ekranit, e cila mund të përdoret nga aplikacionet e bazuara në Direct3D 10 dhe 11 për të ndryshuar ndriçimin e ekranit. Është siguruar nxjerrja e numëruesve të bufferëve virtualë (SwapChain).
    • Në Direct3D 12 është shtuar mbështetja për nënshkrimet themelore të versionit 1.1.
    • Në kodin e renderimit përmes API Vulkan është rritur efikasiteti i përpunimit të kërkesave kur sistemi ka mbështetje për zgjerimin VK_EXT_host_query_reset.
    • Është shtuar mundësia për të nxjerrë bufferat virtualë (SwapChain) përmes GDI, nëse OpenGL ose Vulkan nuk mund të përdoren për shfaqje, për shembull, gjatë shfaqjes në një dritare nga procese të ndryshme, si në programet e bazuara në frameworkun CEF (Chromium Embedded Framework).
    • Me përdorimin e backend-it për shaderat GLSL për udhëzimet e shader-it, është siguruar aplikimi i modifikatorit "precise".
    • Në API DirectDraw është shtuar mbështetje për renderimin 3D në memorien sistemike, duke përdorur pajisje programore si "RGB", "MMX" dhe "Ramp".
    • Në bazën e kartave grafike Direct3D janë shtuar kartat AMD Radeon RX 5500M, AMD Radeon RX 6800/6800 XT/6900 XT, AMD Van Gogh, Intel UHD Graphics 630 dhe NVIDIA GT 1030.
    • Çelësi "UseGLSL" është fshirë nga regjistri HKEY_CURRENT_USER\Software\Wine\Direct3D, në vend të tij, duke filluar nga Wine 5.0, duhet përdorur "shader_backend".
    • Për mbështetje të Direct3D 12 tani nevojitet libraria vkd3d me versionin minimal 1.2.
  • D3DX
    • Në implementimin D3DX 10 është përmirësuar mbështetja për frameworkun e efekteve vizuale dhe është shtuar mbështetje për formatin e imazheve Windows Media Photo (JPEG XR).
    • Janë shtuar funksionet për krijimin e teksturave të ofruara në D3DX10, si D3DX10CreateTextureFromMemory().
    • Janë implementuar pjesërisht ndërfaqet programore ID3DX10Sprite dhe ID3DX10Font.
  • Zëri dhe video
    • Në një backend të përbashkët WineGStreamer janë bashkuar shtesat GStreamer për DirectShow dhe frameworkun Media Foundation, çka duhet ta thjeshtëzojë zhvillimin e API-ve të reja për dekodimin e përmbajtjes.
    • Në bazën e backend-it WineGStreamer janë realizuar objektet Windows Media për leximin sinkron dhe asinhron.
    • Funksionaliteti i frameworkut Media Foundation është përmirësuar më tej, është shtuar mbështetje për funksionalitetin IMFPMediaPlayer, alokuesin e mostrave (sample allocator), është përmirësuar mbështetja për EVR dhe bufferët e vizatimit SAR.
    • Biblioteka wineqtdecoder, që ofronte një dekoder për formatin QuickTime (për të gjitha kodekët tani përdoret GStreamer), është fshirë.
  • Pajisjet e inputit
    • Në mënyrë të konsiderueshme është përmirësuar steku për pajisjet hyrëse që mbështesin protokollin HID (Pajisje të Ndërfaqes Njerëzore), i cili realizon mundësi të tilla si analiza e HID-deskriptorëve, përpunimi i mesazheve HID dhe sigurimi i mini-drejtorëve HID.
    • Në back-end-et e drejtorit winebus.sys është përmirësuar translacioni i përshkrimeve të pajisjeve në mesazhe HID.
    • Shtuar një back-end të ri DirectInput për joytë, që mbështesin protokollin HID. Realizuar mundësia e përdorimit të efekteve të reagimit në joytë. Përmirësuar panairi i menaxhimit përdorimin e joytë. Optimizuar ndërveprimi me pajisjet që janë të pajtueshme me XInput. Në WinMM mbështetja për joytë është kaluar në DInput, në vend të përdorimit të back-end-it evdev në Linux dhe IOHID në macOS. Shtyry drejtorin e vjetër të joytë winejoystick.drv.
    • Në modul DInput janë shtuar teste të reja, të bazuara në përdorimin e pajisjeve virtuale HID dhe që nuk kërkojnë praninë e një pajisjeje fizike.
  • Teksti dhe fontet
    • Në DirectWrite është shtuar objekti Font Set.
    • Në RichEdit është realizuar saktë ndërfaqja TextHost.
  • Bërthama (ndërfaqet e bërthamës Windows)
    • Kur ekzekutohet një skedar ekzekutiv të panjohur në Wine (p.sh., ‘wine foo.msi’) tani thirret start.exe, i cili thërret menaxherët e lidhur me llojin e skedarit.
    • Shtuar mbështetje për mekanizmat e sinkronizimit NtAlertThreadByThreadId dhe NtWaitForAlertByThreadId, të ngjashme me fajtë në Linux.
    • Shtuar mbështetje për objektet e debuggimit NT, të përdorura për debuggimin e funksioneve të bërthamës.
    • Shtuar mbështetje për çelësat dinamikë të regjistrit për ruajtjen e të dhënave mbi performancën.
  • C Runtime
    • Në C runtime është realizuar një grup i plotë i funksioneve matematikore, i cili kryesisht është transferuar nga biblioteka Musl.
    • Për të gjitha platformat CPU është siguruar mbështetje e duhur për funksionet për llogaritje me pikën e lëvizshme.
  • Mundësitë rrjetë
    • Është përmirësuar mënyra e kompatibilitetit me Internet Explorer 11 (IE11), e cila tani përdoret si parazgjedhje për përpunimin e dokumenteve HTML.
    • Në bibliotekën mshtml është realizuar modaliteti JavaScript ES6 (ECMAScript 2015), në të cilin është siguruar mbështetje për mundësi të tilla si shprehja let dhe objekti Map.
    • Instalimi i paketave MSI në katalogun e punës të Wine me shtesa për motorin Gecko tani bëhet kur është e nevojshme, në vend që gjatë përditësimit të Wine.
    • Shtuar mbështetje për protokollin DTLS.
    • Realizuar shërbimi NSI (Interfacë e Dyqanit të Rrjetit), i cili ruan dhe transmeton shërbimeve të tjera informacionin mbi rutat dhe ndërfaqet e rrjetit në kompjuter.
    • Përpunuesit e API-së WinSock, si setsockopt dhe getsockopt, janë transferuar në bibliotekën NTDLL dhe në driver-in afd.sys, për t'u përputhur me arkitekturën Windows.
    • Tani në katalogun e punës të Wine instalohet skedarë të vetë-rrjetit, si /etc/protocols dhe /etc/networks, në vend që të referohen në databazat e ngjashme të Unix.
  • Platforma alternative
    • Shtuar mbështetje për pajisjet Apple me çipa ARM M1 (Apple Silicon).
    • Për mbështetje të funksioneve BCrypt dhe Secur32 në platformën macOS tani është e nevojshme instalimi i bibliotekës GnuTLS.
    • Skedarët ekzekutivë 32-bit për platforma ARM tani ndërtohen në modin Thumb-2, si në Windows. Preloader është angazhuar për të ngarkuar skedarë të tillë.
    • Për platforma 32-bit ARM është implementuar mbështetje për nxjerrjen (unwinding) e përjashtimeve.
    • Për FreeBSD është zgjeruar numri i kërkesave të mbështetur për informacion të ulët të sistemit, si të dhënat mbi gjendjen e memories dhe nivelin e karikimit të baterisë.
  • Aplikacione dhe mjete të ndërtuar brenda
    • Në utilitarin reg.exe është shtuar mbështetje për paraqitjet 32- dhe 64-bit të regjistrit. Është shtuar mbështetje për kopjimin e çelësave të regjistrit.
    • Në utilitarin WineDump është shtuar mbështetje për eksportimin e dump-it të metadata-ve të Windows dhe për të shfaqur informacion të detajuar mbi regjistrat CodeView.
    • Në debugger-in Wine Debugger (winedbg) është implementuar mundësia për të debuguar procese 32-bit nga debuguar 64-bit.
    • Në kompajlerin IDL (widl) është shtuar mundësia për të ngarkuar biblioteka të integruara në skedarët PE, është siguruar mbështetje për atributet dhe konstrukcionalet specifike të WinRT, si dhe është realizuar kërkimi i bibliotekave të lidhura me platformën.
  • Sistemi i ndërtimit
    • Në kataloget specifike për arkitekturën e harduerit, bibliotekat tani ruhen me emra që pasqyrojnë arkitekturën dhe llojin e skedarëve ekzekutivë, për shembull, 'i386-windows' për formatin PE dhe 'x86_64-unix' për bibliotekat unix, që lejon mbështetje për arkitektura të ndryshme në një instalim të vetëm të Wine dhe mbështetje për ndërrimin e Winelib.
    • Për vendosjen e opsioneve në skedarët PE që regjulojnë kalimin në përdorimin e bibliotekave DLL-native, në winebuild është shtuar flagu ‘—prefer-native option’ (përpunimi i DLL_WINE_PREATTACH në DllMain është ndalur).
    • Shtuar mbështetje për versionin 4 të formatit të të dhënave të debugimit Dwarf, i cili tani përdoret si parazgjedhje gjatë ndërtimit të bibliotekave Wine.
    • është shtuar opsioni "--enable-build-id" për ruajtjen e identifikuesve unike të ndërtimit në skedarët ekzekutiv.
    • është shtuar mbështetje për përdorimin e kompajlerit Clang në modalitetin e pajtueshmërisë me MSVC.
  • Të tjera
    • Emrat e katalogëve standardë në shell-in e përdoruesit (Windows Shell) janë bërë të njëjta me skemën e përdorur që nga Windows Vista, pra, në vend të "My Documents" tani krijohet katalogu "Documents", dhe shumica e të dhënave ruhet në katalogun "AppData".
    • Në ndërfaqen për bibliotekën OpenCL, është shtuar mbështetje për specifikimin OpenCL 1.2.
    • Në drejtuesin WinSpool është shtuar mbështetje për variacione të ndryshme të përmasave të faqeve gjatë printimit.
    • është shtuar mbështetje fillestare për MSDASQL, ofruesin Microsoft OLE DB për drejtuesit ODBC.
    • Motori Wine Mono me implementimin e platformës .NET është përditësuar në versionin 7.0.0.
    • Të dhënat Unicode janë përditësuar në specifikimin Unicode 14.
    • Në pemën e burimeve të teksteve janë integruar bibliotekat Faudio, GSM, LCMS2, LibJPEG, LibJXR, LibMPG123, LibPng, LibTiff, LibXml2, LibXslt dhe Zlib, të cilat janë mbledhur në formatin PE dhe nuk kërkojnë një variant në formatin Unix. Megjithatë, këto biblioteka gjithashtu mund të importohen nga sistemi për të përdorur ndërtimet e jashtme në vend të varianteve të integruara PE.

Burimi: opennet.ru

Blini hostim të besueshëm për faqe interneti me mbrojtje DDoS, serverë VPS VDS 🔥 Blini hostim të besueshëm për faqe interneti me mbrojtje DDoS, serverë VPS VDS - ProHoster