Wine 7.0 ning barqaror versiyasi

Bir yillik ishlab chiqish va 30 ta eksperimental versiyadan so'ng, Win32 API-ning ochiq amalga oshirilishining barqaror versiyasi taqdim etildi - 7.0 dan ortiq o'zgarishlarni o'z ichiga olgan Wine 9100. Yangi versiyaning asosiy yutuqlari orasida ko'pgina Wine modullarini PE formatiga tarjima qilish, mavzularni qo'llab-quvvatlash, joystiklar va HID interfeysi bilan kiritish qurilmalari uchun stekni kengaytirish va 64 bitli dasturlarni ishga tushirish uchun WoW32 arxitekturasini joriy etish kiradi. 64 bitli muhit.

Wine Windows uchun 5156 (bir yil oldin 5049) dasturning to'liq ishlashini tasdiqladi, yana 4312 (bir yil oldin 4227) dastur qo'shimcha sozlamalar va tashqi DLL-lar bilan mukammal ishlaydi. 3813 ta dasturda (3703 yil oldin) ilovalarning asosiy funksiyalaridan foydalanishga xalaqit bermaydigan kichik operatsion muammolar mavjud.

Wine 7.0 dagi asosiy yangiliklar:

  • PE formatidagi modullar
    • Deyarli barcha DLL-lar ELF o'rniga PE (Portable Executable, Windows-da ishlatiladigan) bajariladigan fayl formatidan foydalanishga aylantirilgan. PE dan foydalanish diskdagi va xotiradagi tizim modullarining identifikatorini tekshiradigan turli xil nusxa ko'chirishdan himoya qilish sxemalarini qo'llab-quvvatlash bilan bog'liq muammolarni hal qiladi.
    • Standart NT yadro tizimi chaqiruvidan foydalangan holda PE modullarini Unix kutubxonalari bilan o'zaro aloqada bo'lish imkoniyati amalga oshirildi, bu sizga Windows tuzatuvchilaridan Unix kodiga kirishni yashirish va ipni ro'yxatga olishni kuzatish imkonini beradi.
    • O'rnatilgan DLL-lar endi diskda tegishli PE fayli mavjud bo'lsa, u haqiqiy kutubxona yoki stub bo'lishidan qat'i nazar, yuklanadi. Ushbu o'zgarish ilovaga har doim PE fayllariga to'g'ri ulanishni ko'rish imkonini beradi. Ushbu xatti-harakatni o'chirish uchun siz WINEBOOTSTRAPMODE muhit o'zgaruvchisidan foydalanishingiz mumkin.
  • WoW64
    • WoW64 arxitekturasi (64-bitli Windows-on-Windows) amalga oshirildi, bu sizga 32-bitli Unix jarayonlarida 64-bitli Windows ilovalarini ishga tushirish imkonini beradi. Qo'llab-quvvatlash 32-bitli NT tizimi qo'ng'iroqlarini NTDLL-ga 64-bitli qo'ng'iroqlarga aylantiruvchi qatlamni ulash orqali amalga oshiriladi.
    • WoW64 qatlamlari ko'pchilik Unix kutubxonalari uchun tayyorlangan va 32-bitli PE modullariga 64-bitli Unix kutubxonalariga kirish imkonini beradi. Barcha modullar PE formatiga aylantirilgandan so'ng, 32 bitli Unix kutubxonalarini o'rnatmasdan 32 bitli Windows ilovalarini ishga tushirish mumkin bo'ladi.
  • Mavzular
    • Mavzuni qo'llab-quvvatlash amalga oshirildi. "Yorug'lik", "Ko'k" va "Klassik ko'k" dizayn mavzulari kiritilgan bo'lib, ularni WineCfg konfiguratori orqali tanlash mumkin.
    • Mavzular orqali barcha interfeys boshqaruvlarining ko'rinishini sozlash imkoniyati qo'shildi. Dizayn mavzusini o'zgartirgandan so'ng elementlarning ko'rinishi avtomatik ravishda yangilanadi.
    • Mavzuni qo'llab-quvvatlash barcha o'rnatilgan Wine ilovalariga qo'shildi. Ilovalar yuqori pikselli zichlikka ega (High DPI) ekranlarga moslashtirilgan.
  • Grafik quyi tizimi
    • Yangi Win32u kutubxonasi qo'shildi, u GDI32 va USER32 kutubxonalarining grafiklarni qayta ishlash va yadro darajasida oynalarni boshqarish bilan bog'liq qismlarini o'z ichiga oladi. Kelajakda winex32.drv va winemac.drv kabi drayver komponentlarini Win11u-ga ko'chirish ishlari boshlanadi.
    • Vulkan drayveri 1.2.201 Vulkan grafik API spetsifikatsiyasini qo'llab-quvvatlaydi.
    • Chizilgan geometrik ob'ektlarni Direct2D API orqali chiqarishni qo'llab-quvvatladi, bunda bosish bosganligini tekshirish imkoniyati mavjud (hit-test).
    • Direct2D API ID2D1Effect interfeysi yordamida qo'llaniladigan vizual effektlarni dastlabki qo'llab-quvvatlaydi.
    • Direct2D API ko'p tarmoqli ilovalarda resurslarga eksklyuziv kirishni tashkil qilish uchun foydalaniladigan ID2D1MultiThread interfeysini qo'llab-quvvatladi.
    • WindowsCodecs kutubxonalar to'plami WMP (Windows Media Photo) formatidagi tasvirlarni dekodlashni va DDS (DirectDraw Surface) formatidagi tasvirlarni kodlashni qo'llab-quvvatlaydi. Biz endi Windows-da qo'llab-quvvatlanmaydigan ICNS formatidagi (macOS uchun) tasvirlarni kodlashni qo'llab-quvvatlamaymiz.
  • Direct3D
    • Direct3D qo'ng'iroqlarini Vulkan grafik API-ga tarjima qilgan yangi renderlash mexanizmi sezilarli darajada yaxshilandi. Ko'pgina hollarda, Vulkan-ga asoslangan dvigatelda Direct3D 10 va 11-ni qo'llab-quvvatlash darajasi eski OpenGL-ga asoslangan dvigatel bilan tenglashtirildi. Vulkan renderlash mexanizmini yoqish uchun Direct3D registridagi "renderer" o'zgaruvchisini "vulkan" ga o'rnating.
    • Direct3D 10 va 11 ning ko'plab xususiyatlari, jumladan, kechiktirilgan kontekstlar, qurilma kontekstida ishlaydigan holat ob'ektlari, buferlardagi doimiy ofsetlar, tartibsiz tekstura ko'rinishlarini tozalash, manbalar o'rtasida tursiz formatlarda ma'lumotlarni nusxalash (DXGI_FORMAT_BC3_TYPELESS, DXGI_FORMAT_32AASS32) va hokazo. .
    • Ko'p monitorli konfiguratsiyalar uchun qo'shimcha qo'llab-quvvatlash, Direct3D ilovasini to'liq ekran rejimida ko'rsatish uchun monitor tanlash imkonini beradi.
    • DXGI API ekran yorqinligini o'zgartirish uchun Direct3D 10 va 11-ga asoslangan ilovalar tomonidan ishlatilishi mumkin bo'lgan ekran gamma tuzatishni ta'minlaydi. Virtual freymbufer hisoblagichlarini qidirish yoqilgan (SwapChain).
    • Direct3D 12 1.1 versiyasi ildiz imzolarini qo'llab-quvvatlaydi.
    • Vulkan API orqali renderlash kodida tizim VK_EXT_host_query_reset kengaytmasini qo'llab-quvvatlasa, so'rovlarni qayta ishlash samaradorligi yaxshilandi.
    • Agar OpenGL yoki Vulkan displey uchun ishlatilmasa, masalan, turli jarayonlardan oynaga chiqishda, masalan, CEF (Chromium Embedded Framework) ramkasiga asoslangan dasturlarda GDI orqali virtual ramka buferlarini (SwapChain) chiqarish imkoniyati qo'shildi.
    • GLSL shader backendidan foydalanganda shader ko'rsatmalari uchun "aniq" modifikator ta'minlanadi.
    • DirectDraw API "RGB", "MMX" va "Ramp" kabi dasturiy qurilmalar yordamida tizim xotirasiga 3D renderlashni qo'llab-quvvatlaydi.
    • Direct3D grafik kartalari bazasiga AMD Radeon RX 5500M, AMD Radeon RX 6800/6800 XT/6900 XT, AMD Van Gogh, Intel UHD Graphics 630 va NVIDIA GT 1030 kartalari qoʻshildi.
    • "UseGLSL" kaliti HKEY_CURRENT_USER\Software\Wine\Direct3D registridan olib tashlandi, uning o'rniga Wine 5.0 dan boshlab "shader_backend" dan foydalanishingiz kerak.
    • Direct3D 12-ni qo'llab-quvvatlash uchun endi sizga vkd3d kutubxonasining kamida 1.2 versiyasi kerak bo'ladi.
  • D3DX
    • D3DX 10 ilovasi vizual effektlar tizimini qo'llab-quvvatlashni yaxshiladi va Windows Media Photo tasvir formatini (JPEG XR) qo'llab-quvvatladi.
    • D3DX10CreateTextureFromMemory() kabi D3DX10 da taqdim etilgan tekstura yaratish funksiyalari qo‘shildi.
    • ID3DX10Sprite va ID3DX10Font dasturiy interfeyslari qisman amalga oshirildi.
  • Ovoz va video
    • DirectShow uchun GStreamer qo'shimchalari va Media Foundation asoslari bitta umumiy WineGStreamer backendiga birlashtirilgan, bu esa yangi kontentni dekodlash API-larini ishlab chiqishni soddalashtirishi kerak.
    • WineGStreamer backend asosida Windows Media ob'ektlari sinxron va asinxron o'qish uchun amalga oshiriladi.
    • Media Foundation asosini tatbiq qilish yanada takomillashtirildi, IMFPMediaPlayer funksiyasi va namunalarni taqsimlovchi qo‘llab-quvvatlash qo‘shildi, EVR va SAR renderlash buferlarini qo‘llab-quvvatlash yaxshilandi.
    • QuickTime formati uchun dekoderni ta'minlovchi wineqtdecoder kutubxonasi o'chirildi (barcha kodeklar endi GStreamerdan foydalanadi).
  • Kirish moslamalari
    • HID (Inson interfeysi qurilmalari) protokolini qo'llab-quvvatlaydigan kiritish qurilmalari uchun stek sezilarli darajada yaxshilandi, bu HID deskriptorlarini tahlil qilish, HID xabarlarini qayta ishlash va mini-HID drayverlarini taqdim etish kabi imkoniyatlarni taqdim etdi.
    • Winebus.sys drayverining orqa qismlarida qurilma tavsiflarini HID xabarlariga tarjima qilish yaxshilandi.
    • HID protokolini qo'llab-quvvatlaydigan joystiklar uchun yangi DirectInput backend qo'shildi. Joystiklarda teskari aloqa effektlaridan foydalanish imkoniyati amalga oshirildi. Yaxshilangan joystik boshqaruv paneli. XInput mos keluvchi qurilmalar bilan optimallashtirilgan shovqin. WinMM-da joystikni qo'llab-quvvatlash Linuxda evdev backend va macOS IOHID-da IOHID-dan foydalanish o'rniga DInput-ga o'tkazildi. Qadimgi joystick drayveri winejoystick.drv olib tashlandi.
    • DInput moduliga virtual HID qurilmalaridan foydalanishga asoslangan va jismoniy qurilmani talab qilmaydigan yangi testlar qo'shildi.
  • Matn va shriftlar
    • DirectWrite-ga Shrift o'rnatish ob'ekti qo'shildi.
    • RichEdit TextHost interfeysini to'g'ri amalga oshiradi.
  • Yadro (Windows yadro interfeyslari)
    • Wine-da noma'lum bajariladigan faylni (masalan, "wine foo.msi") ishga tushirganda, start.exe fayl turi bilan bog'langan ishlovchilarni chaqiradi.
    • Linuxdagi ftekslarga o'xshash NtAlertThreadByThreadId va NtWaitForAlertByThreadId sinxronizatsiya mexanizmlarini qo'llab-quvvatlash qo'shildi.
    • Yadro funksiyalarini disk raskadrovka qilish uchun foydalaniladigan NT disk raskadrovka ob'ektlari uchun qo'shimcha yordam.
    • Ishlash ma'lumotlarini saqlash uchun dinamik ro'yxatga olish kitobi kalitlarini qo'llab-quvvatlash qo'shildi.
  • C Ish vaqti
    • C ish vaqti asosan Musl kutubxonasidan olingan matematik funktsiyalarning to'liq to'plamini amalga oshiradi.
    • Barcha CPU platformalari suzuvchi nuqta funktsiyalarini to'g'ri qo'llab-quvvatlaydi.
  • Tarmoq imkoniyatlari
    • Internet Explorer 11 (IE11) uchun yaxshilangan muvofiqlik rejimi, hozirda HTML hujjatlarini qayta ishlash uchun sukut bo'yicha foydalaniladi.
    • Mshtml kutubxonasi ES6 JavaScript rejimini (ECMAScript 2015) amalga oshiradi, bu ruxsat ifodasi va Map ob'ekti kabi xususiyatlarni qo'llab-quvvatlaydi.
    • Gecko dvigateliga qo'shimchalar bilan MSI paketlarini Wine ishchi katalogiga o'rnatish endi Wine yangilanishi paytida emas, balki kerak bo'lganda amalga oshiriladi.
    • DTLS protokoli uchun qo'shimcha qo'llab-quvvatlash.
    • Kompyuterdagi marshrutlash va tarmoq interfeyslari haqidagi ma'lumotlarni saqlash va boshqa xizmatlarga uzatish uchun NSI (Network Store Interface) xizmati joriy etildi.
    • Setsockopt va getsockopt kabi WinSock API ishlov beruvchilari Windows arxitekturasiga mos kelish uchun NTDLL va afd.sys drayveriga ko'chirildi.
    • Wine-ning o'ziga xos tarmoq ma'lumotlar bazasi fayllari, masalan, /etc/protocols va /etc/networks, shunga o'xshash Unix ma'lumotlar bazalariga kirish o'rniga Wine ishchi katalogiga o'rnatiladi.
  • Muqobil platformalar
    • M1 ARM chiplari (Apple Silicon) asosidagi Apple uskunalarini qo'llab-quvvatlash qo'shildi.
    • MacOS’da BCrypt va Secur32 funksiyalarini qo‘llab-quvvatlash endi GnuTLS kutubxonasini o‘rnatishni talab qiladi.
    • ARM platformalari uchun 32-bitli bajariladigan fayllar endi Windows-ga o'xshash Thumb-2 rejimida qurilgan. Bunday fayllarni yuklash uchun oldindan yuklovchi ishlatiladi.
    • 32-bitli ARM platformalari uchun istisnolarni bekor qilishni qo'llab-quvvatlash amalga oshirildi.
    • FreeBSD uchun xotira holati va batareya zaryadi darajasi kabi past darajadagi tizim ma'lumotlari uchun qo'llab-quvvatlanadigan so'rovlar soni kengaytirildi.
  • O'rnatilgan ilovalar va ishlab chiqish vositalari
    • Reg.exe yordam dasturi 32 va 64 bitli registr ko'rinishlarini qo'llab-quvvatladi. Ro'yxatga olish kitobi kalitlarini nusxalash uchun qo'shimcha yordam.
    • WineDump yordam dasturi Windows metama'lumotlarini o'chirish va CodeView yozuvlari haqida batafsil ma'lumotni ko'rsatish uchun qo'shimcha yordamni qo'shdi.
    • Wine Debugger (winedbg) 32 bitli tuzatuvchidan 64 bitli jarayonlarni disk raskadrovka qilish imkoniyatini beradi.
    • PE fayllariga o'rnatilgan kutubxonalarni yuklash imkoniyati IDL kompilyatoriga (widl) qo'shildi, WinRT-ga xos atributlar va konstruksiyalar qo'llab-quvvatlandi va platformaga xos kutubxona qidiruvi amalga oshirildi.
  • Yig'ish tizimi
    • Arxitekturaga oid kataloglarda kutubxonalar endi arxitektura va bajariladigan turni aks ettiruvchi nomlar bilan saqlanadi, masalan, PE formati uchun "i386-windows" va unix kutubxonalari uchun "x86_64-unix" bitta sharobda turli arxitekturalarni qoʻllab-quvvatlash imkonini beradi. o'rnatish va Winelibning o'zaro kompilyatsiyasini ta'minlash.
    • Mahalliy DLL-lardan foydalanishga o'tishni boshqaruvchi PE fayllari sarlavhalarida opsiyani o'rnatish uchun winebuild-ga "--prefer-native option" bayrog'i qo'shildi (DllMain-da DLL_WINE_PREATTACH ishlovi to'xtatildi).
    • Endi Wine kutubxonalarini yaratishda sukut bo'yicha foydalaniladigan Dwarf disk raskadrovka ma'lumotlar formatining 4-versiyasi uchun qo'shimcha yordam qo'shildi.
    • Noyob tuzilish identifikatorlarini bajariladigan fayllarda saqlash uchun “—enable-build-id” qurish opsiyasi qo‘shildi.
    • MSVC muvofiqligi rejimida Clang kompilyatoridan foydalanish uchun qo'shimcha yordam.
  • Разное
    • Foydalanuvchi qobig'idagi (Windows Shell) odatiy kataloglarning nomlari Windows Vista'dan boshlab ishlatiladigan sxemaga beriladi, ya'ni. "Mening hujjatlarim" o'rniga endi "Hujjatlar" katalogi yaratildi va ma'lumotlarning aksariyati "AppData" katalogiga saqlanadi.
    • OpenCL kutubxonasi qatlamiga OpenCL 1.2 spetsifikatsiyasini qo'llab-quvvatlash qo'shildi.
    • WinSpool drayveri chop etishda turli xil sahifa o'lchamlarini qo'llab-quvvatladi.
    • ODBC drayverlari uchun Microsoft OLE DB provayderi MSDASQL uchun dastlabki yordam qo'shildi.
    • .NET platformasini amalga oshirishga ega Wine Mono dvigateli 7.0.0 versiyasini chiqarish uchun yangilandi.
    • Unicode ma'lumotlari Unicode 14 spetsifikatsiyasiga yangilandi.
    • Manba daraxti Faudio, GSM, LCMS2, LibJPEG, LibJXR, LibMPG123, LibPng, LibTiff, LibXml2, LibXslt va Zlib kutubxonalarini o'z ichiga oladi, ular PE formatida tuzilgan va Unix formatidagi versiyani talab qilmaydi. Shu bilan birga, ushbu kutubxonalar tizimdan o'rnatilgan PE variantlari o'rniga tashqi yig'ilishlardan foydalanish uchun ham import qilinishi mumkin.

Manba: opennet.ru

a Izoh qo'shish