Wine 7.0-ın stabil buraxılışı

Bir illik inkişafdan və 30 eksperimental versiyadan sonra Win32 API-nin açıq tətbiqinin stabil buraxılışı təqdim edildi - 7.0-dən çox dəyişikliyi özündə birləşdirən Wine 9100. Yeni versiyanın əsas nailiyyətləri arasında Wine modullarının əksəriyyətinin PE formatına tərcüməsi, mövzulara dəstək, HID interfeysli joystiklər və daxiletmə qurğuları üçün yığının genişləndirilməsi və 64 bitlik proqramların işləməsi üçün WoW32 arxitekturasının tətbiqi daxildir. 64 bitlik mühit.

Wine, Windows üçün 5156 (bir il əvvəl 5049) proqramın tam işləməsini təsdiqlədi, daha 4312 (bir il əvvəl 4227) proqram əlavə parametrlər və xarici DLL-lərlə mükəmməl işləyir. 3813 proqramda (3703 il əvvəl) tətbiqlərin əsas funksiyalarının istifadəsinə mane olmayan kiçik əməliyyat problemləri var.

Wine 7.0-da əsas yeniliklər:

  • PE formatında modullar
    • Demək olar ki, bütün DLL-lər ELF əvəzinə PE (Portable Executable, Windows-da istifadə olunur) icra edilə bilən fayl formatından istifadə etmək üçün çevrilmişdir. PE-nin istifadəsi diskdə və yaddaşda sistem modullarının eyniliyini yoxlayan müxtəlif surətdən qorunma sxemlərinin dəstəklənməsi ilə bağlı problemləri həll edir.
    • Standart NT kernel sistemi çağırışından istifadə edərək PE modullarının Unix kitabxanaları ilə qarşılıqlı əlaqədə olmaq imkanı tətbiq edilmişdir ki, bu da Windows sazlayıcılarından Unix koduna girişi gizlətməyə və mövzu qeydiyyatına nəzarət etməyə imkan verir.
    • Daxili DLL-lər indi yalnız diskdə müvafiq PE faylı olduqda yüklənir, onun həqiqi kitabxana və ya stub olmasından asılı olmayaraq. Bu dəyişiklik proqrama həmişə PE fayllarına düzgün bağlanmanı görməyə imkan verir. Bu davranışı aradan qaldırmaq üçün siz WINEBOOTSTRAPMODE mühit dəyişənindən istifadə edə bilərsiniz.
  • WoW64
    • WoW64 arxitekturası (64-bit Windows-on-Windows) tətbiq edilmişdir ki, bu da 32-bit Unix proseslərində 64-bit Windows proqramlarını işə salmağa imkan verir. Dəstək 32-bit NT sistem zənglərini NTDLL-ə 64-bit zənglərə çevirən təbəqənin qoşulması vasitəsilə həyata keçirilir.
    • WoW64 təbəqələri əksər Unix kitabxanaları üçün hazırlanır və 32 bitlik PE modullarına 64 bitlik Unix kitabxanalarına daxil olmağa imkan verir. Bütün modullar PE formatına çevrildikdən sonra 32 bitlik Unix kitabxanalarını quraşdırmadan 32 bitlik Windows proqramlarını işə salmaq mümkün olacaq.
  • Mövzular
    • Mövzu dəstəyi həyata keçirilib. WineCfg konfiquratoru vasitəsilə seçilə bilən “İşıq”, “Mavi” və “Klassik Mavi” dizayn mövzuları daxildir.
    • Mövzular vasitəsilə bütün interfeys idarəetmələrinin görünüşünü fərdiləşdirmək imkanı əlavə edildi. Dizayn mövzusu dəyişdirildikdən sonra elementlərin görünüşü avtomatik olaraq yenilənir.
    • Mövzu dəstəyi bütün daxili Wine proqramlarına əlavə edildi. Tətbiqlər yüksək piksel sıxlığı (High DPI) olan ekranlara uyğunlaşdırılıb.
  • Qrafik alt sistemi
    • Yeni Win32u kitabxanası əlavə edildi ki, bu kitabxanaya GDI32 və USER32 kitabxanalarının kernel səviyyəsində qrafiklərin işlənməsi və pəncərələrin idarə edilməsi ilə bağlı hissələri daxildir. Gələcəkdə winex32.drv və winemac.drv kimi sürücü komponentlərinin Win11u-ya daşınması üzrə işlərə başlanılacaq.
    • Vulkan sürücüsü Vulkan qrafika API spesifikasiyasını 1.2.201 dəstəkləyir.
    • Direct2D API vasitəsilə lyuklanmış həndəsi obyektlərin çıxarılması üçün dəstək verilir, klik vurub-tutmadığını yoxlamaq imkanı (hit-test).
    • Direct2D API ID2D1Effect interfeysindən istifadə edərək tətbiq edilən vizual effektlər üçün ilkin dəstək verir.
    • Direct2D API çox yivli proqramlarda resurslara eksklüziv girişi təşkil etmək üçün istifadə edilən ID2D1MultiThread interfeysi üçün əlavə dəstək verib.
    • WindowsCodecs kitabxanalar dəsti WMP (Windows Media Foto) formatında şəkillərin dekodlanması və DDS (DirectDraw Surface) formatında şəkillərin kodlaşdırılması üçün dəstək verir. Biz artıq Windows-da dəstəklənməyən ICNS formatında (macOS üçün) şəkillərin kodlanmasını dəstəkləmirik.
  • Direct3D
    • Direct3D zənglərini Vulkan qrafika API-yə çevirən yeni renderinq mühərriki əhəmiyyətli dərəcədə təkmilləşdirilib. Əksər hallarda, Vulkan əsaslı mühərrikdə Direct3D 10 və 11 üçün dəstək səviyyəsi köhnə OpenGL əsaslı mühərriklə paritetə ​​gətirildi. Vulkan renderinq mühərrikini işə salmaq üçün Direct3D qeyd dəyişənini "renderer"i "vulkan" olaraq təyin edin.
    • Direct3D 10 və 11-in bir çox funksiyaları, o cümlədən Təxirə salınmış kontekstlər, cihaz kontekstində işləyən dövlət obyektləri, buferlərdə davamlı ofsetlər, sıradan çıxmış tekstura görünüşlərinin təmizlənməsi, tipsiz formatlarda resurslar arasında məlumatların surətinin çıxarılması (DXGI_FORMAT_BC3_TYPELESS, DXGI_FORMAT_32_TYPELESS, DXGI_FORMAT_32TYB32) və s. .
    • Direct3D proqramını tam ekran rejimində göstərmək üçün monitor seçməyə imkan verən çoxlu monitor konfiqurasiyaları üçün əlavə dəstək.
    • DXGI API ekran parlaqlığını dəyişmək üçün Direct3D 10 və 11 əsaslı proqramlar tərəfindən istifadə oluna bilən ekran qamma korreksiyasını təmin edir. Virtual çərçivə buferlərinin sayğaclarının axtarışı aktivləşdirildi (SwapChain).
    • Direct3D 12 versiyası 1.1 kök imzaları üçün dəstək əlavə edir.
    • Vulkan API vasitəsilə təqdimetmə kodunda, sistem VK_EXT_host_query_reset genişlənməsini dəstəklədikdə sorğunun işlənməsinin səmərəliliyi yaxşılaşdırılıb.
    • OpenGL və ya Vulkan, məsələn, müxtəlif proseslərdən pəncərəyə çıxış edərkən, məsələn, CEF (Chromium Embedded Framework) çərçivəsinə əsaslanan proqramlarda ekran üçün istifadə edilə bilmədikdə GDI vasitəsilə virtual çərçivə buferlərini (SwapChain) çıxarmaq imkanı əlavə edildi.
    • GLSL şeyder arxa ucundan istifadə edərkən, şeyder təlimatları üçün "dəqiq" dəyişdirici təmin edilir.
    • DirectDraw API "RGB", "MMX" və "Ramp" kimi proqram cihazlarından istifadə edərək sistem yaddaşına 3D göstərilməsi üçün dəstək əlavə edir.
    • Direct3D qrafik kartı bazasına AMD Radeon RX 5500M, AMD Radeon RX 6800/6800 XT/6900 XT, AMD Van Qoq, Intel UHD Graphics 630 və NVIDIA GT 1030 kartları əlavə edilib.
    • “UseGLSL” açarı HKEY_CURRENT_USER\Software\Wine\Direct3D reyestrindən silinib, bunun əvəzinə Wine 5.0-dan başlayaraq “shader_backend” istifadə etməlisiniz.
    • Direct3D 12-ni dəstəkləmək üçün indi sizə vkd3d kitabxanasının ən azı 1.2 versiyası lazımdır.
  • D3DX
    • D3DX 10 tətbiqi vizual effektlər çərçivəsi üçün təkmilləşdirilmiş dəstəyi və Windows Media Fotoşəkil formatı (JPEG XR) üçün əlavə dəstəyi təmin edib.
    • D3DX10CreateTextureFromMemory() kimi D3DX10-da təmin edilən faktura yaratma funksiyaları əlavə edildi.
    • ID3DX10Sprite və ID3DX10Font proqram interfeysləri qismən həyata keçirilib.
  • Səs və video
    • DirectShow və Media Foundation çərçivəsi üçün GStreamer əlavələri bir ümumi WineGStreamer backendində birləşdirilmişdir ki, bu da yeni məzmun deşifrə API-lərinin işlənməsini asanlaşdırmalıdır.
    • WineGStreamer backend əsasında Windows Media obyektləri sinxron və asinxron oxumaq üçün həyata keçirilir.
    • Media Fondu çərçivəsinin tətbiqi daha da təkmilləşdirilib, IMFPMediaPlayer funksionallığı və nümunə ayırıcısı üçün dəstək əlavə edilib və EVR və SAR göstərilməsi buferlərinə dəstək təkmilləşdirilib.
    • QuickTime formatı üçün dekoder təmin edən wineqtdecoder kitabxanası silindi (indi bütün kodeklər GStreamer-dən istifadə edir).
  • Giriş cihazları
    • HID (İnsan İnterfeys Cihazları) protokolunu dəstəkləyən daxiletmə cihazları üçün yığın HID deskriptorlarını təhlil etmək, HID mesajlarını emal etmək və mini-HID drayverlərini təmin etmək kimi imkanları təmin edən əhəmiyyətli dərəcədə təkmilləşdirilmişdir.
    • Winebus.sys drayverinin arxa tərəflərində cihaz təsvirlərinin HID mesajlarına tərcüməsi təkmilləşdirilmişdir.
    • HID protokolunu dəstəkləyən joystiklər üçün yeni DirectInput backend əlavə edildi. Joystiklərdə əks əlaqə effektlərindən istifadə etmək imkanı tətbiq edilmişdir. Təkmilləşdirilmiş joystik idarəetmə paneli. XInput uyğun cihazlarla optimallaşdırılmış qarşılıqlı əlaqə. WinMM-də joystick dəstəyi Linux-da evdev backendindən və macOS IOHID-də IOHID-dən istifadə etmək əvəzinə DInput-a köçürüldü. Köhnə joystick sürücüsü winejoystick.drv silindi.
    • DInput moduluna virtual HID cihazlarının istifadəsinə əsaslanan və fiziki cihaz tələb etməyən yeni testlər əlavə edilib.
  • Mətn və şriftlər
    • DirectWrite-ə Şrift Seti obyekti əlavə edildi.
    • RichEdit, TextHost interfeysini düzgün şəkildə həyata keçirir.
  • Kernel (Windows Kernel Interfaces)
    • Wine-da naməlum icra edilə bilən faylı (məsələn, 'şərab foo.msi') işə saldıqda, fayl növü ilə əlaqəli işləyiciləri işə salan start.exe indi çağırılır.
    • Linux-dakı ftekslərə bənzər NtAlertThreadByThreadId və NtWaitForAlertByThreadId sinxronizasiya mexanizmləri üçün əlavə dəstək.
    • Kernel funksiyalarını sazlamaq üçün istifadə edilən NT debug obyektləri üçün əlavə dəstək.
    • Performans məlumatlarını saxlamaq üçün dinamik qeyd açarları üçün əlavə dəstək.
  • C İcra müddəti
    • C iş vaxtı əsasən Musl kitabxanasından ötürülən riyazi funksiyaların tam dəstini həyata keçirir.
    • Bütün CPU platformaları üzən nöqtə funksiyaları üçün düzgün dəstək verir.
  • Şəbəkə xüsusiyyətləri
    • İndi standart olaraq HTML sənədlərinin işlənməsi üçün istifadə olunan Internet Explorer 11 (IE11) üçün təkmilləşdirilmiş uyğunluq rejimi.
    • Mshtml kitabxanası icazə ifadəsi və Xəritə obyekti kimi funksiyaları dəstəkləyən ES6 JavaScript rejimini (ECMAScript 2015) həyata keçirir.
    • Gecko mühərrikinə əlavələr ilə MSI paketlərinin Wine iş qovluğuna quraşdırılması indi Şərab yeniləməsi zamanı deyil, lazım olduqda həyata keçirilir.
    • DTLS protokolu üçün əlavə dəstək.
    • Kompüterdə marşrutlaşdırma və şəbəkə interfeysləri haqqında məlumatların saxlanılması və digər xidmətlərə ötürülməsi üçün NSI (Şəbəkə Mağazası İnterfeysi) xidməti tətbiq edilmişdir.
    • Setsockopt və getsockopt kimi WinSock API işləyiciləri Windows arxitekturasına uyğunlaşmaq üçün NTDLL və afd.sys drayverinə köçürülüb.
    • Wine-ın öz şəbəkə verilənlər bazası faylları, məsələn, /etc/protocols və /etc/networks, indi oxşar Unix verilənlər bazalarına daxil olmaq əvəzinə Wine iş kataloqunda quraşdırılır.
  • Alternativ platformalar
    • M1 ARM çiplərinə əsaslanan Apple avadanlığı üçün əlavə dəstək (Apple Silicon).
    • MacOS-da BCrypt və Secur32 funksiyalarına dəstək indi GnuTLS kitabxanasının quraşdırılmasını tələb edir.
    • ARM platformaları üçün 32-bit icra olunan proqramlar indi Windows-a bənzər Thumb-2 rejimində qurulub. Belə faylları yükləmək üçün əvvəlcədən yükləyici istifadə olunur.
    • 32 bitlik ARM platformaları üçün istisnaların açılması üçün dəstək tətbiq edilmişdir.
    • FreeBSD üçün yaddaş statusu və batareyanın doldurulma səviyyəsi kimi aşağı səviyyəli sistem məlumatı üçün dəstəklənən sorğuların sayı genişləndirilib.
  • Daxili proqramlar və inkişaf alətləri
    • Reg.exe yardım proqramı 32 və 64 bitlik reyestr baxışları üçün dəstək əlavə etdi. Qeyd dəftəri açarlarının surətini çıxarmaq üçün əlavə dəstək.
    • WineDump yardım proqramı Windows metadatasının atılması və CodeView daxiletmələri haqqında ətraflı məlumatın nümayişi üçün dəstək əlavə etdi.
    • Şərab Debugger (winedbg) 32 bitlik sazlayıcıdan 64 bitlik prosesləri sazlamaq imkanı verir.
    • PE fayllarına daxil edilmiş kitabxanaları yükləmək imkanı IDL kompilyatoruna (widl) əlavə edilib, WinRT-ə xas atributlar və konstruksiyalar üçün dəstək təmin edilib və platformaya aid kitabxana axtarışı həyata keçirilib.
  • Montaj sistemi
    • Arxitekturaya aid qovluqlarda kitabxanalar indi arxitekturanı və icra edilə bilən növü əks etdirən adlarla yadda saxlanılır, məsələn, PE formatı üçün "i386-windows" və unix kitabxanaları üçün "x86_64-unix" tək Şərabda müxtəlif arxitekturaları dəstəkləməyə imkan verir. quraşdırma və Winelib-in çarpaz tərtibini təmin edin.
    • Doğma DLL-lərdən istifadəyə keçidi idarə edən PE fayllarının başlıqlarında seçim qurmaq üçün winebuild-ə '--prefer-native option' bayrağı əlavə edildi (DllMain-də DLL_WINE_PREATTACH emalı dayandırıldı).
    • İndi Şərab kitabxanalarını qurarkən standart olaraq istifadə olunan Cırtdan debug məlumat formatının 4-cü versiyası üçün dəstək əlavə edildi.
    • İcra edilə bilən fayllarda unikal qurma identifikatorlarını saxlamaq üçün '—enable-build-id' qurma seçimi əlavə edildi.
    • MSVC uyğunluğu rejimində Clang kompilyatorundan istifadə üçün əlavə dəstək.
  • Miscellanea
    • İstifadəçi qabığında (Windows Shell) tipik kataloqların adları Windows Vista-dan başlayaraq istifadə edilən sxemə verilir, yəni. İndi "Sənədlərim" əvəzinə "Sənədlər" kataloqu yaradılır və məlumatların çoxu "AppData" qovluğunda saxlanılır.
    • OpenCL 1.2 spesifikasiyası üçün dəstək OpenCL kitabxana qatına əlavə edilmişdir.
    • WinSpool sürücüsü çap zamanı müxtəlif səhifə ölçüləri üçün dəstək əlavə etdi.
    • ODBC sürücüləri üçün Microsoft OLE DB provayderi olan MSDASQL üçün ilkin dəstək əlavə edildi.
    • .NET platformasının tətbiqi ilə Wine Mono mühərriki 7.0.0-ı buraxmaq üçün yeniləndi.
    • Unicode məlumatları Unicode 14 spesifikasiyasına yeniləndi.
    • Mənbə ağacına PE formatında tərtib edilmiş və Unix formatında versiya tələb etməyən Faudio, GSM, LCMS2, LibJPEG, LibJXR, LibMPG123, LibPng, LibTiff, LibXml2, LibXslt və Zlib kitabxanaları daxildir. Eyni zamanda, bu kitabxanalar daxili PE variantları əvəzinə xarici birləşmələrdən istifadə etmək üçün sistemdən də idxal edilə bilər.

Mənbə: opennet.ru

Добавить комментарий