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

Bir illik inkişafdan və 28 eksperimental versiyadan sonra təqdim etdi Win32 API-nin açıq tətbiqinin sabit buraxılışı - Şərab 5.07400-dən çox dəyişiklik daxil idi. Yeni versiyanın əsas nailiyyətlərinə PE formatında quraşdırılmış Wine modullarının çatdırılması, çox monitorlu konfiqurasiyaların dəstəklənməsi, XAudio2 audio API-nin yeni tətbiqi və Vulkan 1.1 qrafik API-nin dəstəyi daxildir.

Şərabda təsdiqləndi Windows üçün 4869 (bir il əvvəl 4737) proqramın tam işləməsi, daha 4136 (bir il əvvəl 4045) proqram əlavə parametrlər və xarici DLL-lərlə mükəmməl işləyir. 3635 proqramda əsas proqram funksiyalarının istifadəsinə mane olmayan kiçik performans problemləri var.

Açar yeniliklər Şərab 5.0:

  • PE formatında modullar
    • MinGW kompilyatoru ilə əksər Şərab modulları indi ELF əvəzinə PE (Portable Executable, Windows-da istifadə olunur) icra edilə bilən fayl formatında qurulur. 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;
    • PE icra edilə bilən faylları indi dummy DLL fayllarından istifadə etmək əvəzinə ~/.wine ($WINEPREFIX) qovluğuna kopyalanır və əlavə disk sahəsi sərf etmək hesabına materialı real Windows quraşdırmalarına daha çox bənzədir;
    • PE formatına çevrilən modullar standartdan istifadə edə bilər wchar Unicode ilə C funksiyaları və sabitləri (məsələn, L"abc");
    • Wine C iş vaxtı, DLL-lərin qurulması zamanı MinGW iş vaxtı əvəzinə defolt olaraq istifadə edilən MinGW-də qurulmuş ikili fayllarla əlaqə üçün dəstək əlavə etdi;
  • Qrafik alt sistemi
    • Parametrləri dinamik şəkildə dəyişmək imkanı da daxil olmaqla, çoxsaylı monitorlar və qrafik adapterlərlə işləmək üçün əlavə dəstək;
    • Vulkan qrafika API üçün sürücü Vulkan 1.1.126 spesifikasiyasına uyğun olaraq yeniləndi;
    • WindowsCodecs kitabxanası əlavə rastr formatlarını, o cümlədən indeksləşdirilmiş palitrası olan formatları çevirmək imkanı verir;
  • Direct3D
    • Tam ekran Direct3D proqramlarını işə saldıqda, ekran qoruyucu zəngi bloklanır;
    • DXGI (DirectX Qrafik İnfrastruktur) proqramın pəncərəsi kiçildildikdə onun məlumatlandırılması üçün dəstək əlavə etdi ki, bu da proqrama pəncərəni minimuma endirərkən resurs tutumlu əməliyyatların performansını azaltmağa imkan verir;
    • DXGI istifadə edən proqramlar üçün artıq Alt+Enter kombinasiyasından istifadə etməklə tam ekran və pəncərə rejimi arasında keçid etmək mümkündür;
    • Direct3D 12 tətbiqinin imkanları genişləndirilmişdir, məsələn, indi tam ekran və pəncərə rejimləri arasında keçid, ekran rejimlərinin dəyişdirilməsi, çıxışın miqyasının dəyişdirilməsi və göstərmə buferinin dəyişdirilməsi intervalının (mübadilə intervalı) idarə edilməsi üçün dəstək mövcuddur;
    • Şəffaflıq və dərinlik testləri üçün diapazondan kənar daxiletmə dəyərlərindən istifadə, əks olunan teksturalar və buferlərlə göstərmə və yanlış DirectDraw obyektlərindən istifadə kimi müxtəlif sərhəd vəziyyətlərinin təkmilləşdirilmiş idarə edilməsi klipper, səhv pəncərələr üçün Direct3 cihazları yaratmaq, minimum parametr dəyərləri maksimuma bərabər olan görünən ərazilərdən istifadə etmək və s.
    • Direct3D 8 və 9 daha dəqiq izləmə təmin edir "çirkli» yüklənmiş fakturaların sahələri;
    • S3TC metodu ilə sıxılmış 3D fakturaları yükləyərkən tələb olunan ünvan sahəsinin ölçüsü azaldılıb (tamamilə yükləmək əvəzinə, fakturalar parçalara yüklənir).
    • İnterfeys həyata keçirilir ID3D11Multithread çox yivli proqramlarda kritik bölmələri qorumaq;
    • Köhnə DirectDraw proqramları üçün işıqlandırma hesablamaları ilə bağlı müxtəlif təkmilləşdirmələr və düzəlişlər edilmişdir;
    • API-də şeyderlər haqqında məlumat əldə etmək üçün əlavə zənglər həyata keçirilib ShaderReflection;
    • wined3d indi dəstəkləyir blitter Sıxılmış resursların emalı üçün CPU əsaslı;
    • Direct3D-də tanınan qrafik kartların bazası genişləndirilib;
    • HKEY_CURRENT_USER\Software\Wine\Direct3D: “shader_backend” (şeyderlərlə işləmək üçün arxa uç: GLSL üçün “glsl”, ARB vertex/fragment üçün “arb” və şeyder dəstəyini söndürmək üçün “none”), “strict_shader_math” əlavə edilmiş yeni reyestr açarları 0x1 - aktivləşdirin, 0x0 - Direct3D şader çevrilməsini söndürün). "UseGLSL" açarı köhnəldi ("shader_backend" istifadə edilməlidir);
  • D3DX
    • 3D faktura sıxılma mexanizmi S3TC (S3 Texture Compression) üçün dəstək həyata keçirilib;
    • Tekstura doldurma və xəritəyə alınmayan səthlər kimi əməliyyatların düzgün icrası əlavə edildi;
    • Yaratma çərçivəsinə müxtəlif təkmilləşdirmələr və düzəlişlər edilmişdir vizual effektlər;
  • Kernel (Windows Kernel Interfaces)
    • Kernel32-də istifadə edilən funksiyaların əksəriyyəti köçürüldü
      KernelBase, Windows arxitekturasındakı dəyişikliklərdən sonra;

    • Yükləmək üçün istifadə olunan qovluqlarda 32 və 64 bitlik DLL-ləri qarışdırmaq imkanı. Cari bit dərinliyinə uyğun gəlməyən kitabxanaların nəzərə alınmamasını təmin edir (32/64), yol boyu daha da cari bit dərinliyinə uyğun kitabxana tapmaq mümkün olarsa;
    • Cihaz drayverləri üçün nüvə obyektlərinin emulyasiyası təkmilləşdirilmişdir;
    • Nüvə səviyyəsində işləyən sinxronizasiya obyektləri, məsələn, spin kilidləri, sürətli mutekslər və resursa əlavə edilmiş dəyişənlər;
    • Tətbiqlərin batareyanın vəziyyəti haqqında düzgün məlumatlandırılmasını təmin edir;
  • İstifadəçi interfeysi və masa üstü inteqrasiyası
    • İndi kiçildilmiş pəncərələr Windows 3.1 üslub ikonasından çox başlıq çubuğundan istifadə etməklə göstərilir;
    • Yeni düymə üslubları əlavə edildi Ayırma düyməsi (hərəkətlərin açılan siyahısı olan düymə) və Komanda Linkləri (növbəti mərhələyə keçmək üçün istifadə olunan dialoq qutularındakı keçidlər);
    • Unix sistemlərində müvafiq qovluqları göstərən "Yükləmələr" və "Şablonlar" qovluqları üçün simvolik keçidlər yaradılmışdır;
  • Giriş cihazları
    • Başlanğıcda lazımi Plug & Play cihaz drayverləri quraşdırılır və yüklənir;
    • Mini-joystick (papaq açarı), sükan, qaz və əyləc pedalları daxil olmaqla oyun nəzarətçiləri üçün təkmilləşdirilmiş dəstək.
    • 2.2 versiyasından əvvəl Linux nüvələrində istifadə edilən köhnə Linux joystick API-yə dəstək dayandırıldı;
  • . NET
    • Mono mühərriki 4.9.4 versiyasını buraxmaq üçün yeniləndi və indi Windows Təqdimat Fondu (WPF) çərçivəsinin hissələrini ehtiva edir;
    • Faylları yeni prefikslərə köçürmək əvəzinə /usr/share/wine iyerarxiyasına yerləşdirərək, Mono və Gecko ilə əlavələri bir ümumi kataloqda quraşdırmaq imkanı əlavə edildi;
  • Şəbəkə xüsusiyyətləri
    • MSHTML kitabxanasında istifadə edilən Wine Gecko brauzer mühərriki 2.47.1-i buraxmaq üçün yeniləndi. Yeni HTML API-lərinə dəstək həyata keçirilib;
    • MSHTML indi SVG elementlərini dəstəkləyir;
    • Bir çox yeni VBScript funksiyaları əlavə edildi (məsələn, xəta və istisna işləyiciləri, Saat, Gün, Ay, String, LBound, RegExp.Replace, РScriptTypeInfo_* və ScriptTypeComp_Bind* funksiyaları və s.);
    • VBScript və JScript-də kod vəziyyətinin qorunması təmin edilir (skript davamlılığı);
    • HTTP protokolundan istifadə edərək sorğu göndərən və qəbul edən müştəri və server proqramları üçün HTTP xidmətinin (WinHTTP) və əlaqəli API (HTTPAPI) ilkin tətbiqi əlavə edildi;
    • DHCP vasitəsilə HTTP proxy parametrlərini əldə etmək imkanı həyata keçirilib;
    • Microsoft Passport xidməti vasitəsilə autentifikasiya sorğularının yönləndirilməsi üçün əlavə dəstək;
  • Kriptoqrafiya
    • GnuTLS istifadə edərkən elliptik əyri kriptoqrafik açarlar (ECC) üçün həyata keçirilən dəstək;
    • PFX formatında fayllardan açar və sertifikatları idxal etmək imkanı əlavə edildi;
    • PBKDF2 paroluna əsaslanan açar generasiya sxemi üçün əlavə dəstək;
  • Mətn və şriftlər
    • DirectWrite API tətbiqi ilə əlaqəli OpenType xüsusiyyətləri üçün əlavə dəstək var qlif yerləşdirmə, onlar Latın üslubu üçün standart olaraq aktivləşdirilmişdir, o cümlədən kerning;
    • İstifadə etməzdən əvvəl müxtəlif məlumat cədvəllərinin düzgünlüyünü yoxlamaq yolu ilə şrift məlumatlarının işlənməsi üçün təkmilləşdirilmiş təhlükəsizlik;
    • DirectWrite interfeysləri ən son SDK-ya uyğunlaşdırılıb;
  • Səs və video
    • Səs API-nin yeni tətbiqi təklif edilmişdir XAudio2, layihə əsasında tikilmişdir FAudio. Şərabda FAudio-dan istifadə oyunlarda daha yüksək səs keyfiyyətinə nail olmağa və səsin qarışdırılması və təkmil səs effektləri kimi funksiyalardan istifadə etməyə imkan verir;
    • Media Foundation çərçivəsinin tətbiqinə çoxlu sayda yeni zənglər, o cümlədən daxili və xüsusi asinxron növbələrə dəstək, Mənbə Reader API, Media Sessiya və s. əlavə edilmişdir.
    • Video çəkiliş filtri dəstəklənən kameraların diapazonunu genişləndirən v4l2 API əvəzinə v4l1 API istifadəsinə keçib;
    • Quraşdırılmış AVI, MPEG-I və WAVE dekoderləri çıxarılıb, onların yerinə indi sistem GStreamer və ya QuickTime istifadə olunur;
    • VMR7 konfiqurasiya API-lərinin alt dəsti əlavə edildi;
    • Fərdi kanalların səsini səs sürücülərinə uyğunlaşdırmaq üçün əlavə dəstək;
  • İnternasiya
    • Unicode cədvəlləri 12.1.0 versiyasına yeniləndi;
    • Unicode normallaşdırılması üçün həyata keçirilən dəstək;
    • Cari lokalizə əsasən coğrafi regionun avtomatik quraşdırılması (HKEY_CURRENT_USER\İdarəetmə Paneli\International\Geo) təmin edilmişdir;
  • RPC/COM
    • Typelib-ə mürəkkəb strukturlar və massivlər üçün əlavə dəstək;
    • Windows Script iş vaxtı kitabxanasının ilkin tətbiqi əlavə edildi;
    • ADO (Microsoft ActiveX Data Objects) kitabxanasının ilkin tətbiqi əlavə edildi;
  • Quraşdırıcılar
    • MSI quraşdırıcısı üçün yamaqların çatdırılması üçün dəstək (Patch Files) həyata keçirilib;
    • WUSA (Windows Update Standalone Installer) yardım proqramı indi .MSU formatında yeniləmələri quraşdırmaq imkanına malikdir;
  • ARM platforması
    • ARM64 arxitekturası üçün ntdll-ə yığının açılması üçün dəstək əlavə edildi. Xarici libunwind kitabxanalarını birləşdirmək üçün əlavə dəstək;
    • ARM64 arxitekturası üçün obyekt interfeysləri üçün qüsursuz proksilərə dəstək tətbiq edilmişdir;
  • İnkişaf Alətləri / Winelib
    • Wine-da işləyən proqramları uzaqdan sazlamaq üçün Visual Studio-dan sazlayıcıdan istifadə etmək imkanı əlavə edildi;
    • DBGENG (Debug Engine) kitabxanası qismən həyata keçirilib;
    • Windows üçün tərtib edilmiş binaries artıq libwine-dən asılı deyil, əlavə asılılıqlar olmadan Windows-da işləməyə imkan verir;
    • Başlıq faylları üçün yolu müəyyən etmək üçün Resurs Kompilyatoruna və IDL Kompilyatoruna '--sysroot' seçimi əlavə edildi;
    • Winegcc-ə '—target', '—wine-objdir' seçimləri əlavə edildi
      çarpaz kompilyasiya üçün mühitin qurulmasını sadələşdirən '—winebuild' və '-fuse-ld';

  • Daxili Tətbiqlər
    • Konsol kodlamasını konfiqurasiya etmək üçün CHCP yardım proqramını həyata keçirdi;
    • MSI formatında verilənlər bazalarının manipulyasiyası üçün MSIDB utiliti tətbiq edilmişdir;
  • Performansı optimallaşdırmaq
    • Yüksək performanslı sistem taymer funksiyalarından istifadə etmək üçün müxtəlif zamanlama funksiyaları köçürülüb və bir çox oyunun render dövrəsində yükü azaldıb;
    • FS-də Ext4-dən istifadə etmək imkanı əlavə edildi rejim hərf həssaslığı olmadan işləmək;
    • LBS_NODATA rejimində işləyən siyahı göstərmə dialoqlarında çoxlu sayda elementlərin işlənməsi performansı optimallaşdırılıb;
    • Futex-ə tərcümə edilmiş Linux üçün SRW kilidlərinin (Slim Reader/Writer) daha sürətli tətbiqi əlavə edildi;
  • Xarici asılılıqlar
    • Modulları PE formatında yığmaq üçün MinGW-w64 çarpaz tərtibçisi istifadə olunur;
    • XAudio2-nin tətbiqi FAudio kitabxanasını tələb edir;
    • BSD sistemlərində fayl dəyişikliklərini izləmək üçün
      Inotify kitabxanasından istifadə olunur;

    • ARM64 platformasında istisnaları idarə etmək üçün Unwind kitabxanası tələb olunur;
    • Video4Linux1 əvəzinə indi Video4Linux2 kitabxanası tələb olunur.

Mənbə: opennet.ru

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