Stable na release ng Wine 7.0

Pagkatapos ng isang taon ng pag-unlad at 30 pang-eksperimentong bersyon, ipinakita ang isang matatag na paglabas ng bukas na pagpapatupad ng Win32 API - Wine 7.0, na nagsama ng higit sa 9100 mga pagbabago. Kabilang sa mga pangunahing tagumpay ng bagong bersyon ang pagsasalin ng karamihan sa mga module ng Wine sa PE na format, suporta para sa mga tema, pagpapalawak ng stack para sa mga joystick at mga input device na may HID interface, at pagpapatupad ng WoW64 architecture para sa pagpapatakbo ng mga 32-bit na programa sa isang 64-bit na kapaligiran.

Kinumpirma ng alak ang buong operasyon ng 5156 (isang taon na ang nakalipas 5049) na mga programa para sa Windows, isa pang 4312 (isang taon na ang nakalipas 4227) na mga programa ay gumagana nang perpekto sa mga karagdagang setting at panlabas na DLL. 3813 na mga programa (3703 taon na ang nakakaraan) ay may maliliit na problema sa pagpapatakbo na hindi nakakasagabal sa paggamit ng mga pangunahing pag-andar ng mga application.

Mga pangunahing inobasyon sa Wine 7.0:

  • Mga module sa PE format
    • Halos lahat ng DLL ay na-convert upang gamitin ang PE (Portable Executable, ginagamit sa Windows) na executable na format ng file sa halip na ELF. Ang paggamit ng PE ay nalulutas ang mga problema sa pagsuporta sa iba't ibang mga scheme ng proteksyon ng kopya na nagpapatunay sa pagkakakilanlan ng mga module ng system sa disk at sa memorya.
    • Ang kakayahang makipag-ugnay sa mga module ng PE sa mga Unix library gamit ang karaniwang NT kernel system call ay ipinatupad, na nagbibigay-daan sa iyo upang itago ang access sa Unix code mula sa mga debugger ng Windows at subaybayan ang pagpaparehistro ng thread.
    • Ang mga built-in na DLL ay na-load na ngayon lamang kung mayroong kaukulang PE file sa disk, hindi alintana kung ito ay isang tunay na library o isang stub. Ang pagbabagong ito ay nagbibigay-daan sa application na palaging makita ang tamang pag-binding sa mga PE file. Upang huwag paganahin ang gawi na ito, maaari mong gamitin ang variable na kapaligiran ng WINEBOOTSTRAPMODE.
  • WoW64
    • Ang arkitektura ng WoW64 (64-bit na Windows-on-Windows) ay ipinatupad, na nagbibigay-daan sa iyong magpatakbo ng 32-bit na Windows application sa 64-bit na mga proseso ng Unix. Ipinapatupad ang suporta sa pamamagitan ng koneksyon ng isang layer na nagsasalin ng 32-bit na mga NT system na tawag sa 64-bit na mga tawag sa NTDLL.
    • Ang mga layer ng WoW64 ay inihanda para sa karamihan ng mga aklatan ng Unix at pinapayagan ang mga 32-bit na PE module na ma-access ang mga 64-bit na Unix na aklatan. Kapag ang lahat ng mga module ay na-convert sa PE na format, magiging posible na magpatakbo ng 32-bit na Windows application nang hindi nag-i-install ng 32-bit na Unix na library.
  • Mga tema
    • Ang suporta sa tema ay ipinatupad. Ang mga tema ng disenyo na "Banayad", "Asul" at "Classic Blue" ay kasama, na maaaring mapili sa pamamagitan ng WineCfg configurator.
    • Idinagdag ang kakayahang i-customize ang hitsura ng lahat ng mga kontrol sa interface sa pamamagitan ng mga tema. Awtomatikong ina-update ang hitsura ng mga elemento pagkatapos baguhin ang tema ng disenyo.
    • Ang suporta sa tema ay naidagdag sa lahat ng built-in na Wine application. Ang mga application ay inangkop sa mga screen na may mataas na pixel density (Mataas na DPI).
  • Subsystem ng graphics
    • Ang isang bagong Win32u library ay naidagdag, na kinabibilangan ng mga bahagi ng GDI32 at USER32 library na may kaugnayan sa pagpoproseso ng graphics at pamamahala ng window sa antas ng kernel. Sa hinaharap, magsisimula ang trabaho sa pag-port ng mga bahagi ng driver gaya ng winex32.drv at winemac.drv sa Win11u.
    • Sinusuportahan ng driver ng Vulkan ang detalye ng Vulkan graphics API 1.2.201.
    • Nagbigay ng suporta para sa pag-output ng mga hatched na geometric na bagay sa pamamagitan ng Direct2D API, na may kakayahang suriin kung ang isang pag-click ay tumama (hit-test).
    • Ang Direct2D API ay nagbibigay ng paunang suporta para sa mga visual effect na inilapat gamit ang ID2D1Effect interface.
    • Nagdagdag ang Direct2D API ng suporta para sa interface ng ID2D1MultiThread, na ginagamit upang ayusin ang eksklusibong pag-access sa mga mapagkukunan sa mga multi-threaded na application.
    • Ang WindowsCodecs set ng mga library ay nagbibigay ng suporta para sa pag-decode ng mga larawan sa WMP (Windows Media Photo) na format at pag-encode ng mga larawan sa DDS (DirectDraw Surface) na format. Hindi na namin sinusuportahan ang pag-encode ng mga larawan sa ICNS format (para sa macOS), na hindi sinusuportahan sa Windows.
  • Direct3D
    • Ang bagong rendering engine ay lubos na napabuti, na nagsasalin ng mga Direct3D na tawag sa Vulkan graphics API. Sa karamihan ng mga sitwasyon, ang antas ng suporta para sa Direct3D 10 at 11 sa Vulkan-based na engine ay dinala sa pagkakapareho sa mas lumang OpenGL-based na engine. Upang paganahin ang Vulkan rendering engine, itakda ang Direct3D registry variable na "renderer" sa "vulkan".
    • Maraming feature ng Direct3D 10 at 11 ang ipinatupad, kabilang ang Deferred Contexts, state objects na gumagana sa device context, persistent offsets in buffers, clearing out-of-order texture view, pagkopya ng data sa pagitan ng mga mapagkukunan sa mga walang type na format (DXGI_FORMAT_BC3_TYPELESS, DXGI_FORMAT_R32G32B32A32), atbp .
    • Nagdagdag ng suporta para sa mga configuration ng multi-monitor, na nagbibigay-daan sa iyong pumili ng monitor upang magpakita ng Direct3D application sa full screen mode.
    • Ang DXGI API ay nagbibigay ng screen gamma correction, na maaaring gamitin ng Direct3D 10 at 11 based na application upang baguhin ang liwanag ng screen. Pinagana ang pagkuha ng mga virtual na framebuffers na counter (SwapChain).
    • Ang Direct3D 12 ay nagdaragdag ng suporta para sa bersyon 1.1 na mga lagda sa ugat.
    • Sa rendering code sa pamamagitan ng Vulkan API, napabuti ang kahusayan ng pagproseso ng query kapag sinusuportahan ng system ang extension na VK_EXT_host_query_reset.
    • Idinagdag ang kakayahang mag-output ng mga virtual na framebuffer (SwapChain) sa pamamagitan ng GDI kung hindi magagamit ang OpenGL o Vulkan para sa pagpapakita, halimbawa, kapag nag-output sa isang window mula sa iba't ibang proseso, halimbawa, sa mga programang batay sa CEF (Chromium Embedded Framework) na balangkas.
    • Kapag ginagamit ang GLSL shader backend, tinitiyak ang "tumpak" na modifier para sa mga tagubilin sa shader.
    • Ang DirectDraw API ay nagdaragdag ng suporta para sa 3D rendering sa memorya ng system gamit ang mga software device gaya ng "RGB", "MMX" at "Ramp".
    • Ang AMD Radeon RX 3M, AMD Radeon RX 5500/6800 XT/6800 XT, AMD Van Gogh, Intel UHD Graphics 6900 at NVIDIA GT 630 card ay naidagdag sa Direct1030D graphics card database.
    • Ang "UseGLSL" key ay tinanggal mula sa HKEY_CURRENT_USER\Software\Wine\Direct3D registry, sa halip na kung saan, simula sa Wine 5.0, kailangan mong gumamit ng "shader_backend".
    • Upang suportahan ang Direct3D 12, kailangan mo na ngayong hindi bababa sa bersyon 3 ng vkd1.2d library.
  • D3DX
    • Ang pagpapatupad ng D3DX 10 ay nagpabuti ng suporta para sa visual effects framework at nagdagdag ng suporta para sa Windows Media Photo image format (JPEG XR)
    • Nagdagdag ng mga function ng paggawa ng texture na ibinigay sa D3DX10, gaya ng D3DX10CreateTextureFromMemory().
    • Ang mga interface ng software ng ID3DX10Sprite at ID3DX10Font ay bahagyang naipatupad.
  • Tunog at video
    • Ang mga add-on ng GStreamer para sa DirectShow at ang Media Foundation framework ay pinagsama sa isang karaniwang backend ng WineGStreamer, na dapat gawing simple ang pagbuo ng mga bagong content decoding API.
    • Batay sa backend ng WineGStreamer, ipinapatupad ang mga object ng Windows Media para sa kasabay at asynchronous na pagbabasa.
    • Ang pagpapatupad ng balangkas ng Media Foundation ay higit na pino, ang suporta para sa functionality ng IMFPMediaPlayer at sample allocator ay naidagdag, at ang suporta para sa EVR at SAR rendering buffer ay napabuti.
    • Ang wineqtdecoder library, na nagbibigay ng decoder para sa QuickTime format, ay inalis na (lahat ng codec ay gumagamit na ngayon ng GStreamer).
  • Mga aparatong input
    • Ang stack para sa mga input device na sumusuporta sa HID (Human Interface Devices) na protocol ay lubos na napabuti, na nagbibigay ng mga kakayahan tulad ng pag-parse ng mga HID descriptor, pagproseso ng mga HID na mensahe, at pagbibigay ng mga mini-HID na driver.
    • Sa mga backend ng winebus.sys driver, ang pagsasalin ng mga paglalarawan ng device sa mga HID na mensahe ay napabuti.
    • Nagdagdag ng bagong DirectInput backend para sa mga joystick na sumusuporta sa HID protocol. Naipatupad na ang kakayahang gumamit ng mga feedback effect sa mga joystick. Pinahusay na joystick control panel. Na-optimize na pakikipag-ugnayan sa mga XInput compatible na device. Sa WinMM, ang suporta sa joystick ay inilipat sa DInput, sa halip na gamitin ang evdev backend sa Linux at IOHID sa macOS IOHID. Ang lumang joystick driver na winejoystick.drv ay inalis na.
    • Ang mga bagong pagsubok ay naidagdag sa module ng DInput, batay sa paggamit ng mga virtual na HID device at hindi nangangailangan ng pisikal na device.
  • Teksto at mga font
    • Nagdagdag ng object ng Font Set sa DirectWrite.
    • Tamang ipinapatupad ng RichEdit ang interface ng TextHost.
  • Kernel (Mga Interface ng Windows Kernel)
    • Kapag nagpapatakbo ng hindi kilalang executable na file (gaya ng 'wine foo.msi') sa Wine, ang start.exe ay tinatawag na ngayon, na humihiling ng mga humahawak na nauugnay sa uri ng file.
    • Nagdagdag ng suporta para sa mga mekanismo ng pag-synchronize na NtAlertThreadByThreadId at NtWaitForAlertByThreadId, katulad ng mga futex sa Linux.
    • Nagdagdag ng suporta para sa NT debug objects na ginagamit sa pag-debug ng mga function ng kernel.
    • Nagdagdag ng suporta para sa mga dynamic na registry key upang i-save ang data ng pagganap.
  • C Runtime
    • Ang C runtime ay nagpapatupad ng isang buong hanay ng mga mathematical function, na pangunahing dinadala mula sa Musl library.
    • Ang lahat ng mga platform ng CPU ay nagbibigay ng tamang suporta para sa mga function ng floating point.
  • Mga tampok sa network
    • Pinahusay na compatibility mode para sa Internet Explorer 11 (IE11), na ginagamit na ngayon bilang default para sa pagproseso ng mga HTML na dokumento.
    • Ang mshtml library ay nagpapatupad ng ES6 JavaScript mode (ECMAScript 2015), na nagbibigay ng suporta para sa mga feature gaya ng let expression at ang Map object.
    • Ang pag-install ng mga MSI package na may mga karagdagan sa Gecko engine sa Wine working directory ay ginagawa na ngayon kung kinakailangan, at hindi sa panahon ng pag-update ng Wine.
    • Nagdagdag ng suporta para sa DTLS protocol.
    • Ang serbisyo ng NSI (Network Store Interface) ay ipinatupad, nag-iimbak at nagpapadala ng impormasyon tungkol sa pagruruta at mga interface ng network sa computer sa ibang mga serbisyo.
    • Ang mga humahawak ng WinSock API tulad ng setsockopt at getsockopt ay inilipat sa NTDLL at ang afd.sys driver upang umayon sa arkitektura ng Windows.
    • Ang sariling network database file ng Wine, tulad ng /etc/protocols at /etc/networks, ay naka-install na ngayon sa Wine working directory, sa halip na i-access ang mga katulad na Unix database.
  • Mga alternatibong platform
    • Nagdagdag ng suporta para sa Apple equipment batay sa M1 ARM chips (Apple Silicon).
    • Ang suporta para sa mga feature ng BCrypt at Secur32 sa macOS ay nangangailangan na ngayon ng pag-install ng library ng GnuTLS.
    • Ang mga 32-bit na executable para sa mga platform ng ARM ay binuo na ngayon sa Thumb-2 mode, katulad ng Windows. Ang isang preloader ay ginagamit upang i-load ang mga naturang file.
    • Para sa 32-bit na ARM platform, ipinatupad ang suporta para sa mga unwinding exception.
    • Para sa FreeBSD, ang bilang ng mga sinusuportahang query para sa mababang antas ng impormasyon ng system, tulad ng katayuan ng memorya at antas ng pagkarga ng baterya, ay pinalawak.
  • Mga built-in na application at development tool
    • Ang reg.exe utility ay nagdagdag ng suporta para sa 32- at 64-bit na registry view. Nagdagdag ng suporta para sa pagkopya ng mga registry key.
    • Ang WineDump utility ay nagdagdag ng suporta para sa paglalaglag ng metadata ng Windows at pagpapakita ng detalyadong impormasyon tungkol sa mga entry ng CodeView.
    • Ang Wine Debugger (winedbg) ay nagbibigay ng kakayahang mag-debug ng mga 32-bit na proseso mula sa isang 64-bit na debugger.
    • Ang kakayahang mag-load ng mga library na binuo sa mga PE file ay naidagdag sa IDL compiler (widl), suporta para sa WinRT-specific attributes at constructs ay ibinigay, at isang platform-specific library search ay ipinatupad.
  • Sistema ng pagpupulong
    • Sa mga direktoryo na partikular sa arkitektura, ang mga aklatan ay nai-save na ngayon gamit ang mga pangalan na nagpapakita ng arkitektura at uri ng maipapatupad, tulad ng 'i386-windows' para sa format na PE at 'x86_64-unix' para sa mga unix na library, na nagbibigay-daan sa suporta para sa iba't ibang mga arkitektura sa iisang Wine pag-install at magbigay ng cross-compilation ng Winelib.
    • Upang magtakda ng opsyon sa mga header ng PE file na kumokontrol sa paglipat sa paggamit ng mga native na DLL, ang flag na '--prefer-native na opsyon' ay idinagdag sa winebuild (DLL_WINE_PREATTACH processing sa DllMain ay itinigil).
    • Nagdagdag ng suporta para sa bersyon 4 ng format ng data ng Dwarf debug, na ginagamit na ngayon bilang default kapag gumagawa ng mga library ng Wine.
    • Nagdagdag ng opsyon sa build na 'β€”enable-build-id' para i-save ang mga natatanging build identifier sa mga executable na file.
    • Nagdagdag ng suporta para sa paggamit ng Clang compiler sa MSVC compatibility mode.
  • Miscellanea
    • Ang mga pangalan ng karaniwang mga direktoryo sa shell ng gumagamit (Windows Shell) ay ibinibigay sa scheme na ginamit simula sa Windows Vista, i.e. Sa halip na 'Aking Mga Dokumento', isang direktoryo ng 'Mga Dokumento' ang nalikha na ngayon, at karamihan sa data ay nai-save sa direktoryo ng 'AppData'.
    • Ang suporta para sa pagtutukoy ng OpenCL 1.2 ay idinagdag sa layer ng OpenCL library.
    • Ang driver ng WinSpool ay nagdagdag ng suporta para sa iba't ibang laki ng pahina kapag nagpi-print.
    • Nagdagdag ng paunang suporta para sa MSDASQL, ang Microsoft OLE DB provider para sa mga driver ng ODBC.
    • Ang Wine Mono engine na may pagpapatupad ng .NET platform ay na-update upang ilabas ang 7.0.0.
    • Ang data ng Unicode ay na-update sa detalye ng Unicode 14.
    • Kasama sa source tree ang Faudio, GSM, LCMS2, LibJPEG, LibJXR, LibMPG123, LibPng, LibTiff, LibXml2, LibXslt at Zlib na library, na pinagsama-sama sa PE na format at hindi nangangailangan ng bersyon sa Unix na format. Kasabay nito, ang mga aklatang ito ay maaari ding ma-import mula sa system upang gumamit ng mga panlabas na assemblies sa halip na mga built-in na opsyon sa PE.

Pinagmulan: opennet.ru

Magdagdag ng komento