Wine 5.0 ning barqaror versiyasi

Bir yillik rivojlanish va 28 ta eksperimental versiyadan so'ng taqdim etildi Win32 API-ning ochiq amalga oshirilishining barqaror chiqarilishi - Sharob 5.0, bu 7400 dan ortiq o'zgarishlarni o'z ichiga olgan. Yangi versiyaning asosiy yutuqlari orasida PE formatida o'rnatilgan Wine modullarini yetkazib berish, ko'p monitorli konfiguratsiyalarni qo'llab-quvvatlash, XAudio2 audio API-ning yangi tatbiq etilishi va Vulkan 1.1 grafik API-ni qo'llab-quvvatlash kiradi.

Sharobda tasdiqlangan Windows uchun 4869 (bir yil oldin 4737) dasturning to'liq ishlashi, yana 4136 (bir yil oldin 4045) dastur qo'shimcha sozlamalar va tashqi DLL-lar bilan mukammal ishlaydi. 3635 ta dasturda unumdorlik bilan bogʻliq kichik muammolar mavjud boʻlib, ular asosiy ilova funksiyalaridan foydalanishga xalaqit bermaydi.

Kalit yangiliklar Sharob 5.0:

  • PE formatidagi modullar
    • MinGW kompilyatori yordamida ko'pchilik Wine modullari endi ELF o'rniga PE (Portable Executable, Windowsda ishlatiladi) bajariladigan fayl formatida qurilgan. PE dan foydalanish diskdagi va xotiradagi tizim modullarining identifikatsiyasini tasdiqlovchi turli xil nusxa ko'chirishdan himoya qilish sxemalarini qo'llab-quvvatlash bilan bog'liq muammolarni hal qiladi;
    • PE bajariladigan fayllar endi DLL fayllaridan foydalanish o'rniga ~/.wine ($WINEPREFIX) katalogiga ko'chiriladi, bu esa qo'shimcha disk maydonini iste'mol qilish evaziga ma'lumotlarni haqiqiy Windows o'rnatishlariga o'xshash qiladi;
    • PE formatiga aylantirilgan modullar standartdan foydalanishi mumkin wchar Unicode bilan C funktsiyalari va konstantalari (masalan, L"abc");
    • Wine C ish vaqti MinGW-da qurilgan ikkilik fayllar bilan bog'lanish uchun qo'shimcha qo'llab-quvvatladi, bu DLL-larni yaratishda MinGW ish vaqti o'rniga sukut bo'yicha ishlatiladi;
  • Grafik quyi tizimi
    • Bir nechta monitorlar va grafik adapterlar bilan ishlash uchun qo'shimcha qo'llab-quvvatlash, jumladan sozlamalarni dinamik ravishda o'zgartirish imkoniyati;
    • Vulkan grafik API drayveri Vulkan 1.1.126 spetsifikatsiyasiga muvofiq yangilandi;
    • WindowsCodecs kutubxonasi qo'shimcha rastr formatlarini, shu jumladan indekslangan palitraga ega formatlarni o'zgartirish imkoniyatini beradi;
  • Direct3D
    • To'liq ekranli Direct3D ilovalarini ishga tushirganda, ekran pardasi qo'ng'irog'i bloklanadi;
    • DXGI (DirectX Graphics Infrastructure) ilova oynasi kichraytirilganda uni xabardor qilish uchun qo'shimcha qo'llab-quvvatladi, bu dasturga oynani minimallashtirishda resursni ko'p talab qiladigan operatsiyalar unumdorligini kamaytirish imkonini beradi;
    • DXGI dan foydalanadigan ilovalar uchun endi Alt+Enter kombinatsiyasi yordamida toʻliq ekranli va oynali rejimga oʻtish mumkin;
    • Direct3D 12-ni amalga oshirish imkoniyatlari kengaytirildi, masalan, endi to'liq ekranli va oynali rejimlar o'rtasida almashish, ekran rejimlarini o'zgartirish, chiqishni masshtablash va renderlash buferini almashtirish oralig'ini boshqarish (almashtirish oralig'i);
    • Shaffoflik va chuqurlik sinovlari uchun diapazondan tashqari kirish qiymatlaridan foydalanish, aks ettirilgan teksturalar va buferlar bilan ko'rsatish va noto'g'ri DirectDraw ob'ektlaridan foydalanish kabi turli chegaraviy vaziyatlarni boshqarish yaxshilandi. qaychi, noto'g'ri oynalar uchun Direct3 qurilmalarini yaratish, minimal parametr qiymatlari maksimalga teng bo'lgan ko'rinadigan joylardan foydalanish va hokazo.
    • Direct3D 8 va 9 aniqroq kuzatuvni ta'minlaydi "iflos» yuklangan teksturalar joylari;
    • S3TC usuli yordamida siqilgan 3D teksturalarni yuklashda talab qilinadigan manzil maydoni hajmi qisqartirildi (toʻliq yuklash oʻrniga teksturalar boʻlaklarga boʻlinadi).
    • Interfeys amalga oshirildi ID3D11 Ko'p tarmoqli ko'p tarmoqli ilovalarda muhim bo'limlarni himoya qilish;
    • Eski DirectDraw ilovalari uchun yoritish hisoblari bilan bog'liq turli yaxshilanishlar va tuzatishlar amalga oshirildi;
    • APIda shaderlar haqida ma'lumot olish uchun qo'shimcha qo'ng'iroqlar amalga oshirildi ShaderReflection;
    • wined3d endi qo'llab-quvvatlaydi blitter Siqilgan resurslarni qayta ishlash uchun protsessorga asoslangan;
    • Direct3D-da tan olingan grafik kartalar bazasi kengaytirildi;
    • Yangi roʻyxatga olish kitobi kalitlari qoʻshildi HKEY_CURRENT_USER\Software\Wine\Direct3D: “shader_backend” (shaderlar bilan ishlash uchun backend: GLSL uchun “glsl”, ARB vertex/fragment uchun “arb” va shaderni qoʻllab-quvvatlashni oʻchirish uchun “none”), “strict_shader_math” 0x1 - yoqish, 0x0 - Direct3D shader konvertatsiyasini o'chirish). "UseGLSL" kaliti eskirgan ("shader_backend" dan foydalanish kerak);
  • D3DX
    • S3TC (S3 Texture Compression) 3D teksturani siqish mexanizmini qo'llab-quvvatlash amalga oshirildi;
    • To'qimalarni to'ldirish va xaritada bo'lmaydigan sirtlar kabi operatsiyalarning to'g'ri bajarilishi qo'shildi;
    • Yaratish tizimiga turli xil yaxshilanishlar va tuzatishlar kiritildi vizual effektlar;
  • Yadro (Windows yadro interfeyslari)
    • Kernel32 da qo'llaniladigan funktsiyalarning aksariyati ko'chirildi
      KernelBase, Windows arxitekturasidagi o'zgarishlardan keyin;

    • Yuklash uchun ishlatiladigan kataloglarda 32 va 64 bitli DLL-larni aralashtirish imkoniyati. Joriy bit chuqurligiga mos kelmaydigan kutubxonalar e'tiborga olinmasligini ta'minlaydi (32/64), agar yo'l bo'ylab joriy bit chuqurligiga to'g'ri keladigan kutubxonani topish mumkin bo'lsa;
    • Qurilma drayverlari uchun yadro obyektlarining emulyatsiyasi yaxshilandi;
    • Yadro darajasida ishlaydigan sinxronlash ob'ektlari, masalan, aylanish bloklari, tezkor mutekslar va manbaga biriktirilgan o'zgaruvchilar;
    • Ilovalarga batareya holati to'g'risida to'g'ri ma'lumot berilishini ta'minlaydi;
  • Foydalanuvchi interfeysi va ish stoli integratsiyasi
    • Endi minimallashtirilgan oynalar Windows 3.1 uslubi belgisidan ko'ra sarlavha satri yordamida ko'rsatiladi;
    • Yangi tugma uslublari qo'shildi Ajratish tugmasi (harakatlarning ochiladigan ro'yxati bilan tugma) va Buyruq havolalari (muloqot oynalaridagi havolalar keyingi bosqichga o'tish uchun ishlatiladi);
    • Unix tizimlarida tegishli kataloglarni ko'rsatuvchi "Yuklashlar" va "Shablonlar" papkalari uchun ramziy havolalar yaratilgan;
  • Kirish moslamalari
    • Ishga tushganda kerakli Plug & Play qurilma drayverlari o'rnatiladi va yuklanadi;
    • Mini-joystik (shlyapa kaliti), rul, gaz va tormoz pedallarini o'z ichiga olgan o'yin kontrollerlarini qo'llab-quvvatlash yaxshilandi.
    • 2.2 versiyasidan oldin Linux yadrolarida ishlatiladigan eski Linux joystick API-ni qo'llab-quvvatlash to'xtatildi;
  • .NET
    • Mono dvigateli 4.9.4 versiyasini chiqarish uchun yangilandi va endi Windows Presentation Foundation (WPF) ramkasining qismlarini o'z ichiga oladi;
    • Mono va Gecko bilan qo'shimchalarni bitta umumiy katalogga o'rnatish, fayllarni yangi prefikslarga nusxalash o'rniga /usr/share/wine ierarxiyasiga joylashtirish imkoniyati qo'shildi;
  • Tarmoq imkoniyatlari
    • MSHTML kutubxonasida foydalaniladigan Wine Gecko brauzer mexanizmi 2.47.1 versiyasiga yangilandi. Yangi HTML API-larni qo'llab-quvvatlash amalga oshirildi;
    • MSHTML endi SVG elementlarini qo'llab-quvvatlaydi;
    • Ko'pgina yangi VBScript funktsiyalari qo'shildi (masalan, xato va istisnolarni qayta ishlash, Hour, Day, Month, String, LBound, RegExp.Replace, RScriptTypeInfo_* va ScriptTypeComp_Bind* funktsiyalari va boshqalar);
    • VBScript va JScript-da kod holatining saqlanishi ta'minlangan (skriptning doimiyligi);
    • HTTP protokoli yordamida so'rovlarni yuboruvchi va qabul qiluvchi mijoz va server ilovalari uchun HTTP xizmati (WinHTTP) va tegishli API (HTTPAPI) ning dastlabki joriy etilishi qo'shildi;
    • DHCP orqali HTTP proksi-server sozlamalarini olish imkoniyati amalga oshirildi;
    • Microsoft Passport xizmati orqali autentifikatsiya so'rovlarini qayta yo'naltirish uchun qo'shilgan yordam;
  • Kriptografiya
    • GnuTLS dan foydalanganda elliptik egri kriptografik kalitlarni (ECC) qo'llab-quvvatlash amalga oshirildi;
    • PFX formatidagi fayllardan kalitlar va sertifikatlarni import qilish imkoniyati qo'shildi;
    • PBKDF2 paroliga asoslangan kalitlarni yaratish sxemasi uchun qo'shimcha qo'llab-quvvatlash;
  • Matn va shriftlar
    • DirectWrite API ilovasi bilan bog'liq OpenType xususiyatlarini qo'llab-quvvatladi glif joylashuvi, lotin uslubi uchun sukut bo'yicha yoqilgan, shu jumladan kerning;
    • Har xil ma'lumotlar jadvallarini ishlatishdan oldin ularning to'g'riligini tekshirish orqali shrift ma'lumotlarini qayta ishlash xavfsizligi yaxshilandi;
    • DirectWrite interfeyslari so'nggi SDK bilan moslashtirildi;
  • Ovoz va video
    • Ovozli API ning yangi ilovasi taklif qilindi XAudio2, loyiha asosida qurilgan FAudio. Wine-da FAudio-dan foydalanish o'yinlarda yuqori ovoz sifatiga erishish va ovoz balandligini aralashtirish va kengaytirilgan ovoz effektlari kabi xususiyatlardan foydalanish imkonini beradi;
    • Media Foundation asosini amalga oshirishga ko'plab yangi qo'ng'iroqlar qo'shildi, jumladan, o'rnatilgan va moslashtirilgan asinxron navbatlar, Source Reader API, Media Session va boshqalarni qo'llab-quvvatlash.
    • Videoga olish filtri v4l2 API o‘rniga v4l1 API’dan foydalanishga o‘tkazildi, bu esa qo‘llab-quvvatlanadigan kameralar doirasini kengaytirdi;
    • O'rnatilgan AVI, MPEG-I va WAVE dekoderlari olib tashlandi, ularning o'rniga endi tizim GStreamer yoki QuickTime ishlatiladi;
    • VMR7 konfiguratsiya APIlarining kichik toʻplami qoʻshildi;
    • Ovoz drayverlariga individual kanallar ovozini sozlash uchun qo'shimcha yordam;
  • Xalqarolashtirish
    • Unicode jadvallari 12.1.0 versiyasiga yangilandi;
    • Unicode normalizatsiyasini qo'llab-quvvatlash amalga oshirildi;
    • Joriy lokalizatsiya asosida geografik mintaqaning avtomatik o'rnatilishi (HKEY_CURRENT_USER\Boshqaruv paneli\International\Geo) taqdim etildi;
  • RPC/COM
    • Typelib-ga murakkab tuzilmalar va massivlarni qo'llab-quvvatlash qo'shildi;
    • Windows Script ish vaqti kutubxonasining dastlabki tatbiqi qo'shildi;
    • ADO (Microsoft ActiveX Data Objects) kutubxonasining dastlabki amalga oshirilishi qo'shildi;
  • O'rnatuvchilar
    • MSI o'rnatuvchisi uchun yamoqlarni (Patch Files) yetkazib berishni qo'llab-quvvatlash amalga oshirildi;
    • WUSA (Windows Update Standalone Installer) yordam dasturi endi yangilanishlarni .MSU formatida o'rnatish imkoniyatiga ega;
  • ARM platformasi
    • ARM64 arxitekturasi uchun ntdll-ga stekni ochishni qo'llab-quvvatlash qo'shildi. Tashqi libunwind kutubxonalarini ulash uchun qo'shimcha yordam;
    • ARM64 arxitekturasi uchun ob'ekt interfeyslari uchun uzluksiz proksi-serverlarni qo'llab-quvvatlash amalga oshirildi;
  • Rivojlanish vositalari / Winelib
    • Wine-da ishlaydigan ilovalarni masofadan disk raskadrovka qilish uchun Visual Studio-dan tuzatuvchidan foydalanish imkoniyati qo'shildi;
    • DBGENG (Debug Engine) kutubxonasi qisman amalga oshirildi;
    • Windows uchun kompilyatsiya qilingan ikkilik fayllar endi libwine-ga bog'liq emas, bu ularni Windows-da qo'shimcha bog'liqliklarsiz ishlashga imkon beradi;
    • Sarlavha fayllari uchun yo'lni aniqlash uchun Resurs kompilyatori va IDL kompilyatoriga "--sysroot" opsiyasi qo'shildi;
    • Winegcc-ga ‘—target’, ‘—wine-objdir’, ‘—wine-objdir’ variantlari qo‘shildi.
      ‘—winebuild’ va ‘-fuse-ld’, ular o‘zaro kompilyatsiya uchun muhitni sozlashni soddalashtiradi;

  • O'rnatilgan ilovalar
    • Konsol kodlashni sozlash uchun CHCP yordam dasturini joriy qildi;
    • MSI formatidagi ma'lumotlar bazalarini manipulyatsiya qilish uchun MSIDB yordam dasturi joriy etildi;
  • Ishlashni optimallashtirish
    • Tizimning yuqori samarali taymer funksiyalaridan foydalanish uchun turli vaqt funksiyalari koʻchirildi, bu koʻplab oʻyinlarning koʻrsatish siklida qoʻshimcha xarajatlarni kamaytiradi;
    • FS-da Ext4-dan foydalanish imkoniyati qo'shildi tartib harf sezgirligisiz ishlash;
    • LBS_NODATA rejimida ishlaydigan ro'yxatni ko'rsatish dialog oynalarida ko'p sonli elementlarni qayta ishlash unumdorligi optimallashtirildi;
    • Futex tiliga tarjima qilingan Linux uchun SRW qulflarining (Slim Reader/Writer) tezroq amalga oshirilishi qo'shildi;
  • Tashqi bog'liqliklar
    • PE formatidagi modullarni yig'ish uchun MinGW-w64 o'zaro faoliyat kompilyator ishlatiladi;
    • XAudio2 ni amalga oshirish FAudio kutubxonasini talab qiladi;
    • BSD tizimlarida fayl o'zgarishlarini kuzatish uchun
      Inotify kutubxonasidan foydalaniladi;

    • ARM64 platformasida istisnolarni hal qilish uchun Unwind kutubxonasi talab qilinadi;
    • Video4Linux1 o'rniga endi Video4Linux2 kutubxonasi talab qilinadi.

Manba: opennet.ru

a Izoh qo'shish