Stabila eldono de Wine 7.0

Post jaro da evoluo kaj 30 eksperimentaj versioj, stabila eldono de la malferma efektivigo de la Win32 API estis prezentita - Wine 7.0, kiu korpigis pli ol 9100 ŝanĝojn. La ŝlosilaj atingoj de la nova versio inkluzivas la tradukon de la plej multaj Wine-moduloj en PE-formaton, subtenon por temoj, vastiĝon de la stako por stirstangoj kaj enigaparatoj kun HID-interfaco, kaj efektivigon de la WoW64-arkitekturo por ruli 32-bitajn programojn en 64-bita medio.

Wine konfirmis la plenan funkciadon de 5156 (antaŭ jaro 5049) programoj por Vindozo, aliaj 4312 (antaŭ jaro 4227) programoj funkcias perfekte kun aldonaj agordoj kaj eksteraj DLL-oj. 3813 programoj (antaŭ 3703 jaroj) havas negravajn funkciajn problemojn, kiuj ne malhelpas la uzon de la ĉefaj funkcioj de la aplikaĵoj.

Ŝlosilaj novigoj en Wine 7.0:

  • Moduloj en PE-formato
    • Preskaŭ ĉiuj DLL-oj estis konvertitaj por uzi la plenumeblan dosierformaton PE (Portable Executable, uzata en Vindozo) anstataŭ ELF. La uzo de PE solvas problemojn kun subtenado de diversaj kopiprotektaj skemoj, kiuj kontrolas la identecon de sistemaj moduloj sur disko kaj en memoro.
    • La kapablo interagi PE-modulojn kun Unikso-bibliotekoj per la norma NT-kerna sistemvoko estis efektivigita, kio ebligas al vi kaŝi aliron al Unikso-kodo de Vindozaj erarserĉiloj kaj monitori fadenregistradon.
    • Enkonstruitaj DLL-oj nun estas ŝarĝitaj nur se estas responda PE-dosiero sur disko, sendepende ĉu ĝi estas vera biblioteko aŭ ĝermo. Ĉi tiu ŝanĝo permesas al la aplikaĵo ĉiam vidi la ĝustan ligadon al PE-dosieroj. Por malŝalti ĉi tiun konduton, vi povas uzi la mediovariablon WINEBOOTSTRAPMODE.
  • WoW64
    • La arkitekturo WoW64 (64-bita Vindozo-sur-Vindozo) estis efektivigita, permesante al vi ruli 32-bitajn Vindozajn aplikojn en 64-bitaj Unikso-procezoj. Subteno estas efektivigita per la ligo de tavolo kiu tradukas 32-bitajn NT-sistemvokojn en 64-bitajn vokojn al NTDLL.
    • WoW64-tavoloj estas pretaj por la plej multaj Uniksaj bibliotekoj kaj permesas al 32-bitaj PE-moduloj aliri 64-bitajn Uniksajn bibliotekojn. Post kiam ĉiuj moduloj estis konvertitaj al PE-formato, eblos ruli 32-bitajn Vindozajn aplikaĵojn sen instali 32-bitajn Unix-bibliotekojn.
  • Temoj
    • Temsubteno estis efektivigita. La dezajnaj temoj "Lumo", "Blua" kaj "Klasika Bluo" estas inkluzivitaj, kiuj povas esti elektitaj per la agordilo WineCfg.
    • Aldonis la kapablon agordi la aspekton de ĉiuj interfacaj kontroloj per temoj. La aspekto de elementoj aŭtomate ĝisdatiĝas post ŝanĝado de la desegna temo.
    • Temsubteno estis aldonita al ĉiuj enkonstruitaj Wine-aplikoj. Aplikoj estis adaptitaj al ekranoj kun alta piksela denseco (Alta DPI).
  • Subsistemo de grafikaĵoj
    • Nova biblioteko Win32u estis aldonita, kiu inkluzivas partojn de la bibliotekoj GDI32 kaj USER32 rilataj al grafika prilaborado kaj fenestroadministrado ĉe la kernnivelo. En la estonteco, laboro komenciĝos pri portado de ŝoforaj komponantoj kiel winex32.drv kaj winemac.drv al Win11u.
    • La Vulkan-ŝoforo subtenas la Vulkan-grafikan API-specifon 1.2.201.
    • Provizita subteno por eligo de elkovitaj geometriaj objektoj per la Direct2D API, kun la kapablo kontroli ĉu klako trafas (sukceso).
    • La Direct2D API disponigas komencan subtenon por vidaj efikoj aplikataj per la ID2D1Effect-interfaco.
    • La Direct2D API aldonis subtenon por la ID2D1MultiThread-interfaco, kiu estas uzata por organizi ekskluzivan aliron al resursoj en plurfadenaj aplikoj.
    • La aro de bibliotekoj de WindowsCodecs disponigas subtenon por malkodi bildojn en la formato WMP (Windows Media Photo) kaj kodi bildojn en la formato DDS (DirectDraw Surface). Ni ne plu subtenas kodigi bildojn en la ICNS-formato (por macOS), kiu ne estas subtenata en Vindozo.
  • Rekta3D
    • La nova bildiga motoro estis signife plibonigita, tradukante Direct3D-vokojn al la Vulkan-grafika API. En la plej multaj situacioj, la nivelo de subteno por Direct3D 10 kaj 11 en la Vulkan-bazita motoro estis alportita al egaleco kun la pli malnova OpenGL-bazita motoro. Por ebligi la bildigan motoron Vulkan, agordu la Direct3D-registran variablon "renderer" al "vulkan".
    • Multaj ecoj de Direct3D 10 kaj 11 estas efektivigitaj, inkluzive de Prokrastaj kuntekstoj, ŝtatobjektoj funkciigantaj en la aparatkunteksto, konstantaj ofsetoj en bufroj, malplenigo de neordinaraj teksturaj vidoj, kopiado de datumoj inter resursoj en sentipaj formatoj (DXGI_FORMAT_BC3_TYPELESS, DXGI_FORMAT_R32G32B32PELES32), ktp. .
    • Aldonita subteno por plurmonitoraj agordoj, permesante al vi elekti monitoron por montri Direct3D-aplikaĵon en plenekrana reĝimo.
    • La DXGI API disponigas ekranan gama-korektadon, kiu povas esti uzata de Direct3D 10 kaj 11 bazitaj aplikoj por ŝanĝi ekranbrilecon. Ebligita reakiro de virtualaj frambuffers nombriloj (SwapChain).
    • Direct3D 12 aldonas subtenon por radikaj subskriboj de versio 1.1.
    • En la bildiga kodo per la Vulkan API, la efikeco de demanda prilaborado estis plibonigita kiam la sistemo subtenas la etendon VK_EXT_host_query_reset.
    • Aldonis la kapablon eligi virtualajn kadrobufferojn (SwapChain) per GDI se OpenGL aŭ Vulkan ne povas esti uzataj por montri, ekzemple, dum eligo al fenestro de malsamaj procezoj, ekzemple, en programoj bazitaj sur la kadro CEF (Chromium Embedded Framework).
    • Kiam vi uzas la GLSL-ombrilon, la "preciza" modifilo estas certigita por ombrilaj instrukcioj.
    • La DirectDraw API aldonas subtenon por 3D bildigo en sistemmemoron uzante programarajn aparatojn kiel "RGB", "MMX" kaj "Ramp".
    • AMD Radeon RX 3M, AMD Radeon RX 5500/6800 XT/6800 XT, AMD Van Gogh, Intel UHD Graphics 6900 kaj NVIDIA GT 630 kartoj estis aldonitaj al la datumbazo de grafikaj kartoj Direct1030D.
    • La ŝlosilo "UseGLSL" estis forigita de la registro HKEY_CURRENT_USER\Software\Wine\Direct3D, anstataŭ kiu, komencante kun Wine 5.0, vi devas uzi "shader_backend".
    • Por subteni Direct3D 12, vi nun bezonas almenaŭ version 3 de la biblioteko vkd1.2d.
  • D3DX
    • La efektivigo de D3DX 10 plibonigis subtenon por la kadro de vidaj efikoj kaj aldonis subtenon por la bildoformato de Windows Media Photo (JPEG XR)
    • Aldonitaj teksturaj kreaj funkcioj provizitaj en D3DX10, kiel D3DX10CreateTextureFromMemory().
    • La ID3DX10Sprite kaj ID3DX10Font softvarinterfacoj estis parte efektivigitaj.
  • Sono kaj video
    • GStreamer-aldonaĵoj por DirectShow kaj la Media Foundation-kadro estas kombinitaj en unu komunan WineGStreamer-backend, kiu devus simpligi la evoluon de novaj enhavaj malkodaj APIoj.
    • Surbaze de la backend WineGStreamer, Windows Media objektoj estas efektivigitaj por sinkrona kaj nesinkrona legado.
    • La efektivigo de la Media Foundation-kadro estis plue rafinita, subteno por la IMFPMediaPlayer-funkcio kaj specimena alsignilo estis aldonita, kaj subteno por EVR kaj SAR-bildigiloj estis plibonigita.
    • La biblioteko wineqtdecoder, kiu disponigas malĉifrilon por la formato QuickTime, estis forigita (ĉiuj kodekoj nun uzas GStreamer).
  • Enigaj aparatoj
    • La stako por enigaparatoj kiuj subtenas la HID (Human Interface Devices) protokolon estis signife plibonigita, disponigante kapablojn kiel ekzemple analizado de HID-priskribiloj, prilaborado de HID-mesaĝoj, kaj disponigante mini-HID-ŝoforojn.
    • En la backends de la ŝoforo winebus.sys, la traduko de aparatpriskriboj en HID-mesaĝojn estis plibonigita.
    • Aldonis novan DirectInput backend por stirstangoj kiuj subtenas la HID-protokolon. La kapablo uzi religajn efikojn en stirstangoj estis efektivigita. Plibonigita stirstanga kontrolpanelo. Optimumigita interago kun XInput-kongruaj aparatoj. En WinMM, stirstanga subteno estis movita al DInput, anstataŭ uzi la evdev-backend en Linukso kaj IOHID en macOS IOHID. La malnova stirstila ŝoforo winejoystick.drv estis forigita.
    • Novaj testoj estis aldonitaj al la DInput-modulo, bazitaj sur la uzo de virtualaj HID-aparatoj kaj ne postulantaj fizikan aparaton.
  • Teksto kaj tiparoj
    • Aldonita Font-Agordita objekto al DirectWrite.
    • RichEdit ĝuste efektivigas la TextHost-interfacon.
  • Kerno (Windows Kernel Interfacoj)
    • Dum rulado de neidentigita rulebla dosiero (kiel ekzemple 'wine foo.msi') en Wine, start.exe nun estas nomita, kiu alvokas prizorgantojn asociitajn kun la dosiertipo.
    • Aldonita subteno por sinkronigaj mekanismoj NtAlertThreadByThreadId kaj NtWaitForAlertByThreadId, simila al futeks en Linukso.
    • Aldonita subteno por NT-sencimigaj objektoj uzataj por sencimigi kernfunkciojn.
    • Aldonita subteno por dinamikaj registraj ŝlosiloj por konservi rendimentajn datumojn.
  • C Runtime
    • La rultempo C efektivigas plenan aron de matematikaj funkcioj, kiuj estas plejparte portitaj de la Musl-biblioteko.
    • Ĉiuj CPU-platformoj disponigas ĝustan subtenon por glitkomaj funkcioj.
  • Retaj ecoj
    • Plibonigita kongrua reĝimo por Internet Explorer 11 (IE11), kiu nun estas uzata defaŭlte por prilabori HTML-dokumentojn.
    • La mshtml-biblioteko efektivigas ES6 JavaScript-reĝimon (ECMAScript 2015), kiu provizas subtenon por funkcioj kiel ekzemple la let-esprimo kaj la Map-objekto.
    • Instalado de MSI-pakaĵoj kun aldonoj al la Gecko-motoro en la Wine labordosierujon nun estas farita kiam necese, kaj ne dum Wine-ĝisdatigo.
    • Aldonita subteno por DTLS-protokolo.
    • La servo NSI (Network Store Interface) estis efektivigita, stokante kaj elsendante informojn pri vojigo kaj retaj interfacoj en la komputilo al aliaj servoj.
    • WinSock API-traktiloj kiel setsockopt kaj getsockopt estis movitaj al NTDLL kaj la afd.sys-ŝoforo por konformiĝi al la Vindoza arkitekturo.
    • La propraj retdatumbazaj dosieroj de Wine, kiel /etc/protocols kaj /etc/networks, nun estas instalitaj en la labordosierujo de Wine, anstataŭ aliri similajn Unikso-similajn datumbazojn.
  • Alternativaj platformoj
    • Aldonita subteno por Apple-ekipaĵo bazita sur M1 ARM-blatoj (Apple Silicon).
    • Subteno por funkcioj de BCrypt kaj Secur32 en macOS nun postulas instaladon de la biblioteko GnuTLS.
    • 32-bitaj ruligeblaj por ARM-platformoj nun estas konstruitaj en Thumb-2-reĝimo, simila al Vindozo. Antaŭŝargilo estas uzata por ŝargi tiajn dosierojn.
    • Por 32-bitaj ARM-platformoj, subteno por malvolvi esceptoj estis efektivigita.
    • Por FreeBSD, la nombro da subtenataj demandoj por malaltnivelaj sisteminformoj, kiel ekzemple memorstatuso kaj bateria ŝargnivelo, estis vastigita.
  • Enkonstruitaj aplikaĵoj kaj evoluiloj
    • La reg.exe ilo aldonis subtenon por 32- kaj 64-bitaj registraj vidoj. Aldonita subteno por kopiado de registraj ŝlosiloj.
    • La WineDump ilo aldonis subtenon por forĵeti Vindozajn metadatenojn kaj montri detalajn informojn pri CodeView-enskriboj.
    • La Wine Debugger (winedbg) disponigas la kapablon sencimigi 32-bitajn procezojn de 64-bita erarserĉilo.
    • La kapablo ŝarĝi bibliotekojn konstruitajn en PE-dosierojn estis aldonita al la IDL-kompililo (widl), subteno por WinRT-specifaj atributoj kaj konstrukcioj estis disponigita, kaj platform-specifa bibliotekserĉo estis efektivigita.
  • Munta sistemo
    • En arkitektur-specifaj adresaroj, bibliotekoj nun estas konservitaj kun nomoj kiuj reflektas la arkitekturon kaj specon de rulebla, ekzemple, "i386-windows" por la PE-formato kaj "x86_64-unix" por uniksaj bibliotekoj, permesante subtenon por malsamaj arkitekturoj en ununura Wine-instalaĵo kaj provizi kruc-kompilon de Winelib.
    • Por agordi opcion en la kaplinioj de PE-dosieroj, kiu kontrolas la transiron al uzado de denaskaj DLL-oj, la flago '--prefer-native option' estis aldonita al winebuild (DLL_WINE_PREATACH-pretigo en DllMain estis ĉesigita).
    • Aldonita subteno por versio 4 de la Dwarf-sencimiga datumformato, kiu nun estas uzata defaŭlte dum konstruado de Wine-bibliotekoj.
    • Aldonita konstruopcio '—enable-build-id' por konservi unikajn konstruajn identigilojn en ruleblaj dosieroj.
    • Aldonita subteno por uzi la Clang-kompililon en MSVC-kongrua reĝimo.
  • Разное
    • La nomoj de tipaj dosierujoj en la uzantŝelo (Windows Shell) ricevas al la skemo uzita komencante kun Vindozo Vista, t.e. Anstataŭ "Miaj Dokumentoj", nun estas kreita dosierujo "Dokumentoj", kaj plejparto de la datumoj estas konservitaj en la dosierujo "AppData".
    • Subteno por la OpenCL 1.2-specifo estis aldonita al la OpenCL-biblioteka tavolo.
    • La WinSpool-ŝoforo aldonis subtenon por malsamaj paĝgrandoj dum presado.
    • Aldonita komenca subteno por MSDASQL, la Microsoft OLE DB provizanto por ODBC-ŝoforoj.
    • La Wine Mono-motoro kun .NET platformefektivigo estis ĝisdatigita por liberigi 7.0.0.
    • Unikodaj datumoj estis ĝisdatigitaj al la Unikodo 14-specifo.
    • La fontarbo inkluzivas la bibliotekojn Faudio, GSM, LCMS2, LibJPEG, LibJXR, LibMPG123, LibPng, LibTiff, LibXml2, LibXslt kaj Zlib, kiuj estas kompilitaj en PE-formato kaj ne postulas version en Uniksoformato. Samtempe, ĉi tiuj bibliotekoj ankaŭ povas esti importitaj de la sistemo por uzi eksterajn asembleojn anstataŭe de enkonstruitaj PE-opcioj.

fonto: opennet.ru

Aldoni komenton