Wine 9.0 ning barqaror versiyasi

Bir yillik ishlab chiqish va 26 ta eksperimental versiyadan so'ng, 32 dan ortiq o'zgarishlarni o'z ichiga olgan Win9.0 API - Wine 7000 ning ochiq joriy etilishining barqaror versiyasi taqdim etildi. Yangi versiyadagi asosiy yutuqlar qatoriga 64-bitli muhitda 32-bitli dasturlarni ishga tushirish uchun WoW64 arxitekturasini joriy etish, Wayland-ni qoʻllab-quvvatlash uchun drayverlarni integratsiyalash, ARM64 arxitekturasini qoʻllab-quvvatlash, DirectMusic API-ni joriy etish va smart-kartalarni qoʻllab-quvvatlash kiradi.

Wine Windows uchun 5336 ta (bir yil oldin 5266, ikki yil oldin 5156, uch yil oldin 5049), yana 4397 (bir yil oldin 4370, ikki yil oldin 4312, uch yil oldin 4227) dasturlarning toʻliq ishlashini tasdiqladi. qo'shimcha sozlamalar va tashqi DLL. 3943 ta dasturda (bir yil oldin 3888, ikki yil oldin 3813, uch yil oldin 3703) ilovalarning asosiy funksiyalaridan foydalanishga xalaqit bermaydigan ishda kichik muammolar mavjud.

Wine 9.0 dagi asosiy yangiliklar:

  • Wine-dan XWayland va X11 komponentlaridan foydalanmasdan Wayland protokoli asosidagi muhitlarda foydalanish imkonini beruvchi winewayland.drv drayveri qo‘shildi. Ishlanma X11 bilan bog'liq paketlarni o'rnatishni talab qilmaydigan Windows ilovalarini ishga tushirishni qo'llab-quvvatlaydigan sof Wayland muhitini ta'minlashga qaratilgan bo'lib, bu keraksiz qatlamlarni yo'q qilish orqali o'yinlarning yuqori ishlashi va sezgirligini ta'minlaydi. Wine uchun sof Wayland muhitidan foydalanish, shuningdek, X11-ga xos bo'lgan xavfsizlik muammolarini ham yo'q qiladi (masalan, ishonchsiz X11 o'yinlari boshqa ilovalarga josuslik qilishi mumkin, chunki X11 protokoli barcha kiritish hodisalariga va soxta tugmachalarni almashtirishga ruxsat beradi).

    Drayv eksperimental va ishlab chiqilayotgan deb belgilangan, ammo shunga qaramay, u allaqachon oynalarni boshqarish, bir nechta monitorlar bilan ishlash, yuqori pikselli zichlikdagi (yuqori DPI) ekranlarda chiqish masshtabini qo'llab-quvvatlash kabi ko'plab funktsiyalarni qo'llab-quvvatlaydi. sichqoncha harakatini kuzatish va Vulkan grafik API-ni qo'llab-quvvatlashda nisbiy koordinatalar. Odatiy bo'lib, drayver faol emas va uni yoqish uchun siz "HKCU\Software\Wine\Drivers" ro'yxatga olish kitobi parametriga "wayland" ni qo'shishingiz va DISPLAY muhit o'zgaruvchisi o'rnatilmaganligiga ishonch hosil qilishingiz kerak: wine reg.exe add HKCU\ \Software\\Wine\\Drivers /v Graphics /d x11,wayland

  • Barcha modullar PE va Unix qatlamlari o'rtasida to'g'ridan-to'g'ri qo'ng'iroqlarni amalga oshirish o'rniga NT tizimi qo'ng'iroq interfeysiga aylantirildi, bu esa barcha DLL-larni PE (Portable Executable) bajariladigan fayl formatidan foydalanishga aylantirish bo'yicha ko'p yillik ishlarning tugallanganligini anglatadi.
  • 64-bitli Unix tizimlarida 64-bitli Windows ilovalarini ishga tushirish imkonini beruvchi WoW32 (64-bitli Windows-on-Windows) qatlamini ishlab chiqish davom etdi. Unix kutubxonalariga kiradigan barcha modullar 64-bitli PE-formatlangan modullarga 32-bitli Unix kutubxonalariga kirishga ruxsat berish uchun WoW64 tizim chaqiruvlaridan foydalanadi.

    64-bitli jarayonda 32-bitli kodni ishlatadigan yangi WoW64 ishga tushirish rejimi yaxshilandi (eski WoW64 rejimida 32-bitli ilovalar 32-bitli Unix jarayonlarida ishlagan). MacOS platformasida yangi WoW64 rejimidan foydalanish uchun qoʻshimcha yordam. Yangi WoW64 rejimida 16-bitli rejimni qoʻllab-quvvatlamaslik va ARB_buffer_storage kengaytmasini qoʻllab-quvvatlamaslik tufayli OpenGL unumdorligini pasaytirish kabi kamchiliklar mavjud boʻlgani uchun u hali sukut boʻyicha yoqilmagan va “-enable-” opsiyasi bilan qurishni talab qiladi. archs=i386,x86_64” " konfiguratsiya skriptida.

  • ARM64 arxitektura tizimlarida mavjud Windows bajariladigan fayllarni ishga tushirish imkoniyati qo'shildi. ARM64EC ABI (ARM64 Emulation Compatible) uchun Wine yaratish va ARM64EC modullarini yuklashni qo'llab-quvvatlash amalga oshirildi, x64_86 bilan individual modullarni bajarish qobiliyatini ta'minlash orqali dastlab x64_64 arxitekturasi uchun yozilgan ilovalarni ARM86 tizimlariga ko'chirishni soddalashtirish uchun foydalanildi. emulyator yordamida ARM64 muhitida kod. X64/Arm64EC va ARM64 jarayonlarida bitta bajariladigan faylni yuklash imkonini beruvchi ARM64X PE fayl formati uchun qoʻshimcha qoʻllab-quvvatlash. 32-bitli x86 tizimlarini emulyatsiya qilish interfeysi amalga oshirildi, ammo emulyatorli kutubxona hali asosiy Wine to'plamiga kiritilmagan (siz ARM86 muhitida x64 kodini ishlatish uchun tashqi FEX emulyatoridan foydalanishingiz mumkin).
  • Grafik quyi tizimi
    • PostScript drayveri chop etish ishlari haqidagi ma'lumotlarni saqlaydigan Windows formatidagi spool fayllarni qo'llab-quvvatlash uchun qayta ishlab chiqilgan. Unix muhitidan haydovchiga to'g'ridan-to'g'ri qo'ng'iroqlar bundan mustasno.
    • WinRT mavzulariga qorong'u rejim qo'llab-quvvatlandi. Qorong'i interfeys dizaynini yoqish uchun WineCfg-ga sozlama qo'shildi.
    • Vulkan grafik API uchun drayveri Vulkan 1.3.272 spetsifikatsiyasini qo'llab-quvvatladi (8.0 Wine 1.3.237 da qo'llab-quvvatlandi).
    • GdiPlus kutubxonasining funksiyalari optimallashtirildi, bu esa grafik unumdorligini oshirish imkonini beradi.
  • Direct3D
    • Ko'p tarmoqli buyruqlar oqimini tahlil qilish, ishlov berish buyruqlari mavjud bo'lmaganda to'xtatiladi, bu butun buyruqlar oqimining o'tkazish qobiliyatini egallamaydigan dasturlarni bajarishda energiya sarfini bir ipli ishlov berish darajasiga kamaytirish imkonini beradi.
    • Direct3D 10 qo'shimcha effektlarni qo'llab-quvvatlashni o'z ichiga oladi.
    • Vulkan grafik API yordamida WineD3D kodi va backend uchun ish faoliyatini optimallashtirish amalga oshirildi.
    • Vulkan API-ga asoslangan renderlash kodi endi qurilma qanday imkoniyatlarni qo'llab-quvvatlashini tekshiradi va dasturga Direct3D funksiyasining qaysi darajasi mavjudligini aytadi.
    • D3DXFillTextureTX va D3DXFillCubeTextureTX funksiyalari amalga oshirildi.
    • Klassik OpenGL ARB shader backend ARB_fragment_program_shadow kengaytmasi yordamida soyalarni aniqlash uchun qo'shimcha yordamga ega.
    • D3DXLoadMeshHierarchyFromX va shunga o'xshash funksiyalar ID3DXLoadUserData interfeysi yordamida foydalanuvchi ma'lumotlarini yuklash uchun qo'shimcha yordamga ega.
  • Ovoz va video
    • DirectMusic API ning dastlabki tatbiq etilishi taklif qilindi. SoundFont formatidagi to'plamlar, asboblar va ovoz namunalari uchun qo'shimcha yordam. Doppler effekti uchun qo'shimcha yordam. Dmime sequencer va dmsynth MIDI sintezatorini ishlatishda to'g'ri bajarilishini tekshirish uchun testlar o'tkazildi.
    • FluidSynth kutubxonasi foydalanish uchun DirectMusic API ichiga o'rnatilgan.
    • DLS1 va DLS2 formatlarida, shuningdek, Linuxda qo'llaniladigan SF2 formatida tovush shriftlarini (SoundFont - MIDI fayllarini ijro etish uchun ishlatiladigan namunaga asoslangan sintez formatlari) yuklashni qo'llab-quvvatlash amalga oshirildi.
    • FluidSynth dasturiy ta'minot sintezatori va audio chiqishi uchun DirectSound API yordamida dmsynth kutubxonasi yordamida MIDI kontentini o'ynash imkoniyati qo'shildi.
    • Indeo IV50 video kodek formatidagi video uchun dekoder qo'shildi.
  • Directshow
    • WMV (Windows Media Video) formati dekoderiga ega DMO (DirectX Media Object) komponenti amalga oshirildi.
    • Audio yozib olish filtri qo'shildi (DirectShow Audio Capture Filter).
    • Audio oqimlardan tashqari, MPEG‑1 Stream Splitter (DirectShow MPEG‑1 Stream Splitter) endi video oqimlari va xizmat oqimlarini qo‘llab-quvvatlaydi.
    • MPEG‑1 formatidagi videoni dekodlash uchun filtr (DirectShow MPEG‑1 Video Dekoderi) joriy etildi.
  • Kirish moslamalari
    • DirectInput harakat xaritasini qo'llab-quvvatlaydi, bu sizga o'yin boshqaruvchisidagi tugmalarni o'yinlardagi muayyan harakatlarga bog'lash imkonini beradi.
  • Ish stoli integratsiyasi
    • Bog'lanishlar asosiy foydalanuvchi muhitiga eksport qilindi, bu esa Wine ostida ishlaydigan ilovalarni URL-manzilni ochishda protokol ishlovchilari sifatida chaqirish imkonini beradi (masalan, “spotify:user:spotify:playlist:848218482355482821” kabi havolalarni ochishda spotify.exe faylini ishga tushiradi).
    • Qurilmaning nomi va modeli kabi ulangan monitorning parametrlari haqidagi ma'lumotlarga ega EDID (kengaytirilgan displey identifikatsiya ma'lumotlari) ma'lumotlarini chiqarish amalga oshirildi.
    • "Ishga tushirish" menyusidagi "Ish stolidan chiqish" tugmasi yordamida to'liq ekran rejimida o'rnatilgan ish stoli oynasini yopish mumkin.
  • Xalqarolashtirish
    • IME (Input Method Editors) uchun kengaytirilgan yordam. Mahalliy Windows IME ilovalari bilan muvofiqlikni ta'minlash va Linux IME bilan integratsiyani yaxshilash bo'yicha ishlar amalga oshirildi
    • Unicode CLDR (Unicode Common Locale Data Repository) 44-versiyasi maʼlumotlar bazasidan locale.nls formatida mahalliy maʼlumotlar bazalarini yaratish taʼminlandi. Bew-ID, blo-BJ, csw-CA, ie-EE, mic-CA kabi qoʻshimcha mahalliy tillarni qoʻllab-quvvatlash taʼminlandi. , prg-PL qo'shildi , skr-PK, tyv-RU, vmw-MZ, xnr-IN va za-CN.
    • Interfeys gruzin tiliga tarjima qilingan. To'liq tarjimalar 16 tilga, qisman tarjimalar esa 31 tilga taqdim etiladi.
    • Unicode belgilar jadvallari standart 15.1.0 versiyasiga yangilandi. Vaqt mintaqasi ma'lumotlar bazasi yangilandi.
  • Yadro (Windows yadro interfeyslari)
    • Chiqarilgan Windowsning standart versiyasi Windows 10 hisoblanadi.
    • PE formatidagi bajariladigan fayllar uchun manzil maydonini randomizatsiyalash (ASLR) qo'llab-quvvatlanadi, ammo kodni xotiraga yuklash manzillari hali to'liq tasodifiylashtirilmagan.
    • Kuchsiz parchalangan uyum (LFH, Low Fragmentation Heap) uchun qo'llab-quvvatlash amalga oshirildi, bu xotirani ajratish operatsiyalari samaradorligini oshirdi.
    • Virtual xotirani ajratish mexanizmiga xotira zahirasini qo'llab-quvvatlash (to'ldiruvchi) qo'shildi, bu dasturga kelajakda foydalanish uchun virtual xotiraning ma'lum bir maydonini zaxiralash imkonini beradi.
    • Bajariladigan fayllar va kutubxonalarning 64-bitli yuklagichlari (yuklovchi va oldindan yuklovchi) 32-bitli manzil maydonining bir qismini boʻshatish uchun PIE (Position-Independent Executables) formatida tuzilgan.
    • NT tizimi qo'ng'iroqlari va foydalanuvchining qayta qo'ng'iroqlari uchun to'g'ri stekni ochish ta'minlanadi.
  • Tarmoq imkoniyatlari
    • MSHTML dvigateli "Cycle Collection" axlat yig'ish mexanizmini qo'llab-quvvatlaydi.
    • MSHTML XMLHttpRequest so'rovlarini sinxron qayta ishlash uchun qo'shimcha qo'llab-quvvatladi.
    • jscript.dll kalit/qiymat juftlari to'plami bilan ishlash uchun WeakMap ob'ektini qo'llab-quvvatlaydi, bunda kalit ixtiyoriy qiymatga ega bo'lishi mumkin bo'lgan ob'ekt hisoblanadi. WeakMap.get(), WeakMap.delete(), WeakMap.clear() va WeakMap.has() usullari amalga oshirildi.
    • Gecko brauzer mexanizmi 2.47.4 versiyasiga yangilandi.
    • Tarmoq interfeysi holatidagi o'zgarishlar haqida bildirishnomalarni qo'llab-quvvatlash amalga oshirildi.
  • Kriptografiya va xavfsizlik
    • PCSClite tizim kutubxonasi orqali amalga oshirilgan Winscard.dll kutubxonasiga smart-kartalarni qo'llab-quvvatlash qo'shildi.
    • BCrypt Diffie-Hellman kalit almashinuvi protokolini qo'llab-quvvatladi.
    • Muzokaralar paketi amalga oshirildi, bu SSP (Xavfsizlik Yordam Provayderi) provayderlariga kirish uchun SSPI (Security Support Provider Interface) interfeysidan foydalanish uchun qatlamni taqdim etadi.
  • O'rnatilgan ilovalar
    • Wine Debugger (winedbg) X86 mashinasi ko'rsatmalarini qismlarga ajratish uchun Zydis kutubxonasidan foydalanadi.
    • 64-bitli platformalarda Windowsning eski versiyalarini (XPdan oldingi) ochish imkoniyati WineCfg interfeysiga qo'shildi, bu sizga WoW64 rejimidan foydalangan holda eski ilovalarni ishga tushirish imkonini beradi.
    • Barcha o'rnatilgan grafik ilovalar endi xato ma'lumotlarini konsolda ko'rsatish o'rniga alohida dialog oynasida ko'rsatadi.
    • Systeminfo dasturi WMI (Windows Management Instrumentation) ma'lumotlar bazasidan ma'lumotlarni ko'rsatishni ta'minlaydi.
    • Kerberos chiptalarini ko'rsatish uchun klist ilovasi qo'shildi.
    • Taskkill ilovasi bolalar jarayonlarini majburan tugatish qobiliyatini amalga oshiradi.
    • X86 va ARM-ni qo'llab-quvvatlaydigan gibrid bajariladigan fayllarni ishga tushirishda ishlatiladigan arxitekturani tanlash uchun ishga tushirish yordam dasturiga "/mashina" opsiyasi qo'shildi.
    • Vazifalar ro'yxati dasturining ko'p funksiyalari amalga oshirildi.
    • Findstr ilovasining asosiy ilovasi qo'shildi.
  • Rivojlanish vositalari
    • WineDump yordam dasturi Windows ro'yxatga olish fayllari (REGF formati) tarkibini ko'rsatish, shuningdek, gibrid PE fayllarida qo'llab-quvvatlanadigan barcha arxitekturalar (x86/ARM64) uchun ma'lumotlarni ko'rsatish imkoniyatini beradi.
    • IDL kompilyatori "kompozitsiya", "default_overload", "eskirgan" va "himoyalangan" atributlarni qo'llab-quvvatladi.
    • Wine 6.0 da eskirgan va uzoq vaqtdan beri Wine-da ishlatilmaydigan libwine.so olib tashlandi. libwine.so bilan Wine ning eski versiyalarida (5.0 va undan yuqori) oʻrnatilgan ELF formatidagi dasturlar Wine 9.0 da ishlash uchun qayta qurishni talab qiladi.
  • O'rnatilgan kutubxonalar va tashqi bog'liqliklar
    • FluidSynth 2.3.3, Musl 1.2.3 (faqat matematik funktsiyalar) va Zydis 4.0.0 kutubxonalari tuzilishga birlashtirilgan.
    • Vkd3d 1.10, Faudio 23.12, OpenLDAP 2.5.16, LCMS2 2.15, LibMPG123 1.32.2, LibPng 1.6.40, LibTiff 4.6.0, LibXml2 2.11.5, LibXml1.1.38 1.3. va LibXslib8.1.0 uchun yangilangan komponentlar yangilangan. s. .NET platformasini amalga oshirish bilan Wine Mono dvigateli XNUMX versiyasini chiqarish uchun yangilandi.
    • Winewayland.drv drayveri tashqi bog'liqliklar sifatida Wayland mijozlar kutubxonasidan, shuningdek, xkbcommon va xkbregistry kutubxonalaridan foydalanadi.
    • Smart kartalarni qo'llab-quvvatlash uchun tashqi kutubxona PCSClite (macOS-da - PCSC) ishlatiladi.
    • PE fayllarini i386 bo'lmagan platformalarda yaratish endi istisnolarni hal qilish uchun ".seh" direktivalarini qo'llab-quvvatlaydigan o'zaro kompilyatorni talab qiladi.

Manba: opennet.ru

a Izoh qo'shish