Setelah satu tahun pengembangan dan 26 versi eksperimental, rilis stabil implementasi terbuka API Win32 - Wine 9.0, yang menggabungkan lebih dari 7000 perubahan, telah disajikan. Pencapaian utama dalam versi baru ini mencakup implementasi arsitektur WoW64 untuk menjalankan program 32-bit di lingkungan 64-bit, integrasi driver untuk mendukung Wayland, dukungan untuk arsitektur ARM64, implementasi DirectMusic API dan dukungan untuk kartu pintar.
Sebanyak 5336 (5266 setahun yang lalu, 5156 dua tahun yang lalu, 5049 tiga tahun yang lalu) program telah dikonfirmasi berfungsi dengan baik di Wine. WindowsSebanyak 4397 program lainnya (4370 setahun yang lalu, 4312 dua tahun yang lalu, 4227 tiga tahun yang lalu) berfungsi dengan baik dengan pengaturan tambahan dan DLL eksternal. 3943 program (3888 setahun yang lalu, 3813 dua tahun yang lalu, 3703 tiga tahun yang lalu) memiliki masalah kecil yang tidak mengganggu fungsi dasar aplikasi.
Inovasi utama dalam Wine 9.0:
- Driver winewayland.drv telah ditambahkan, memungkinkan Wine untuk digunakan di lingkungan berbasis Wayland tanpa menggunakan komponen XWayland atau X11. Pengembangan ini bertujuan untuk menyediakan lingkungan Wayland murni dengan dukungan peluncuran. Windows- Aplikasi yang tidak memerlukan instalasi paket terkait X11, yang memungkinkan kinerja dan responsivitas yang lebih tinggi dalam game dengan menghilangkan lapisan yang tidak perlu. Menggunakan lingkungan Wayland murni untuk Wine juga menghilangkan masalah keamanan yang melekat pada X11 (misalnya, game X11 yang tidak tepercaya dapat memata-matai aplikasi lain karena protokol X11 memungkinkan akses ke semua peristiwa input dan melakukan substitusi penekanan tombol).
Driver ditandai sebagai eksperimental dan dalam pengembangan, namun, bagaimanapun, driver tersebut sudah memiliki dukungan untuk banyak fitur, seperti manajemen jendela, bekerja dengan banyak monitor, dukungan untuk menskalakan output pada layar dengan kepadatan piksel tinggi (DPI tinggi), bekerja dengan koordinat relatif saat melacak pergerakan mouse dan dukungan untuk API grafis Vulkan. Secara default, driver tidak aktif dan untuk mengaktifkannya Anda harus menambahkan “wayland” ke parameter registri “HKCU\Software\Wine\Drivers” dan pastikan bahwa variabel lingkungan DISPLAY tidak disetel: wine reg.exe tambahkan HKCU\ \Software\\Wine\\Drivers /v Grafik /d x11,wayland
- Semua modul telah dikonversi ke antarmuka panggilan sistem NT, daripada membuat panggilan langsung antara lapisan PE dan Unix, menandai selesainya pekerjaan bertahun-tahun untuk mengkonversi semua DLL untuk menggunakan format file PE (Portable Executable) yang dapat dieksekusi.
- Pengembangan lapisan WoW64 (64-bit) terus berlanjut. Windows-di-Windows), yang memungkinkan Anda menjalankan sistem 32-bit. Windows- aplikasi pada sistem Unix 64-bit. Semua modul yang mengakses pustaka Unix menggunakan penerjemah panggilan sistem WoW64 (thunk), memungkinkan modul 32-bit dalam format PE untuk mengakses pustaka Unix 64-bit.
Mode peluncuran WoW64 yang baru telah ditingkatkan, memungkinkan kode 32-bit berjalan dalam proses 64-bit (dalam mode WoW64 lama, aplikasi 32-bit berjalan dalam proses Unix 32-bit). Dukungan untuk menggunakan mode WoW64 yang baru pada platform ini telah ditambahkan. macOSKarena mode WoW64 yang baru memiliki beberapa bug kecil, seperti kurangnya dukungan 16-bit dan penurunan kinerja OpenGL karena kurangnya dukungan untuk ekstensi ARB_buffer_storage, mode ini belum diaktifkan secara default dan memerlukan pembuatan dengan opsi "--enable-archs=i386,x86_64" dalam skrip konfigurasi.
- Menambahkan kemampuan untuk menjalankan file yang sudah ada yang dapat dieksekusi. Windows Pada sistem dengan arsitektur ARM64, Wine kini dapat dibangun untuk ABI ARM64EC (ARM64 Emulation Compatible), dan modul ARM64EC dapat dimuat. Modul-modul ini digunakan untuk menyederhanakan porting aplikasi yang awalnya ditulis untuk arsitektur x86_64 ke sistem ARM64 dengan memungkinkan eksekusi modul kode x86_64 individual di lingkungan ARM64 menggunakan emulator. Dukungan telah ditambahkan untuk format file ARM64X PE, yang memungkinkan satu file executable dimuat baik dalam proses x64/Arm64EC maupun ARM64. Antarmuka untuk mengemulasi sistem x86 32-bit telah diimplementasikan, tetapi pustaka emulator belum disertakan dalam distribusi Wine utama (emulator FEX eksternal dapat digunakan untuk menjalankan kode x86 di lingkungan ARM64).
- Subsistem grafis
- Driver PostScript telah didesain ulang untuk mendukung file spool dalam format tersebut. Windowsyang menyimpan data tentang pekerjaan pencetakan. Panggilan langsung ke driver dari lingkungan Unix dikecualikan.
- Dukungan mode gelap telah ditambahkan ke tema WinRT. Pengaturan telah ditambahkan ke WineCfg untuk mengaktifkan desain antarmuka gelap.
- Driver untuk API grafis Vulkan telah menambahkan dukungan untuk spesifikasi Vulkan 1.3.272 (8.0 didukung di Wine 1.3.237).
- Fungsi perpustakaan GdiPlus telah dioptimalkan, memungkinkan peningkatan kinerja grafis.
- Direct3D
- Penguraian aliran perintah multi-utas ditangguhkan ketika tidak ada perintah rendering yang sedang diproses, yang memungkinkan pengurangan konsumsi energi ke tingkat pemrosesan utas tunggal saat menjalankan program yang tidak menggunakan seluruh bandwidth aliran perintah.
- Direct3D 10 menyertakan dukungan untuk efek tambahan.
- Melakukan optimalisasi kinerja pada kode WineD3D dan backend menggunakan API grafis Vulkan.
- Kode rendering berbasis API Vulkan sekarang memeriksa kemampuan apa yang didukung perangkat dan memberi tahu aplikasi tingkat fungsionalitas Direct3D yang tersedia.
- Fungsi D3DXFillTextureTX dan D3DXFillCubeTextureTX telah diterapkan.
- Backend shader OpenGL ARB klasik telah menambahkan dukungan untuk mendefinisikan bayangan menggunakan ekstensi ARB_fragment_program_shadow.
- D3DXLoadMeshHierarchyFromX dan fungsi serupa telah menambahkan dukungan untuk memuat data pengguna menggunakan antarmuka ID3DXLoadUserData.
- Suara dan video
- Implementasi awal DirectMusic API telah diusulkan. Menambahkan dukungan untuk koleksi, instrumen, dan sampel suara dalam format SoundFont. Menambahkan dukungan untuk efek Doppler. Pengujian telah diterapkan untuk memverifikasi implementasi yang benar saat mengoperasikan sequencer dmime dan synthesizer MIDI dmsynth.
- Pustaka FluidSynth dibangun ke dalam DirectMusic API untuk digunakan.
- Mengimplementasikan dukungan untuk memuat font suara (SoundFont - format untuk sintesis berbasis sampel yang digunakan untuk memutar file MIDI) dalam format DLS1 dan DLS2, serta dalam format SF2 yang digunakan dalam Linux.
- Menambahkan kemampuan untuk memutar konten MIDI menggunakan perpustakaan dmsynth, menggunakan synthesizer perangkat lunak FluidSynth dan DirectSound API untuk output audio.
- Menambahkan decoder untuk video dalam format codec video Indeo IV50.
- Directshow
- Komponen DMO (DirectX Media Object) dengan dekoder format WMV telah diimplementasikan (Windows Media Video).
- Menambahkan filter pengambilan audio (DirectShow Audio Capture Filter).
- Selain streaming audio, MPEG‑1 Stream Splitter (DirectShow MPEG‑1 Stream Splitter) kini mendukung streaming video dan streaming layanan.
- Filter untuk mendekode video dalam format MPEG‑1 (DirectShow MPEG‑1 Video Decoder) telah diterapkan.
- Perangkat input
- DirectInput mendukung pemetaan tindakan, yang memungkinkan Anda mengikat tombol pada pengontrol game ke tindakan tertentu dalam game.
- Integrasi desktop
- Binding telah diekspor ke lingkungan pengguna utama, memungkinkan aplikasi yang berjalan di bawah Wine dipanggil sebagai penangan protokol saat membuka URL (misalnya, meluncurkan spotify.exe saat membuka tautan seperti “spotify:user:spotify:playlist:848218482355482821”).
- Ekstraksi data EDID (Extracted Display Identification Data) telah diterapkan dengan informasi tentang parameter monitor yang terhubung, seperti nama dan model perangkat.
- Anda dapat menutup jendela desktop yang digunakan dalam mode layar penuh menggunakan tombol “Keluar dari desktop” di menu “Start”.
- Penginternasionalan
- Dukungan untuk IME (Input Method Editor) telah diperluas. Upaya telah dilakukan untuk memastikan kompatibilitas dengan fitur bawaan. Windows Implementasi IME dan peningkatan integrasi dengan Linux EMI
- Pembuatan database lokal dalam format locale.nls dari database Unicode CLDR (Unicode Common Locale Data Repository) versi 44 telah disediakan. Dukungan untuk lokal tambahan di bawah-ID, blo-BJ, csw-CA, ie-EE, mic-CA , prg-PL telah ditambahkan, skr-PK, tyv-RU, vmw-MZ, xnr-IN dan za-CN.
- Antarmuka telah diterjemahkan ke dalam bahasa Georgia. Terjemahan lengkap disediakan untuk 16 bahasa, dan terjemahan sebagian untuk 31 bahasa.
- Tabel karakter Unicode telah diperbarui ke versi standar 15.1.0. Basis data zona waktu telah diperbarui.
- Kernel (antarmuka kernel) Windows)
- Sesuai versi yang diterbitkan Windows ditentukan secara default Windows 10.
- Untuk file yang dapat dieksekusi dalam format PE, dukungan untuk pengacakan ruang alamat (ASLR) diterapkan, tetapi alamat untuk memuat kode ke dalam memori belum sepenuhnya diacak.
- Dukungan untuk heap yang terfragmentasi lemah (LFH, Low Fragmentation Heap) telah diterapkan, yang telah meningkatkan kinerja operasi alokasi memori.
- Dukungan untuk reservasi memori (placeholder) telah ditambahkan ke mekanisme alokasi memori virtual, memungkinkan aplikasi untuk mencadangkan area memori virtual tertentu untuk penggunaan di masa mendatang.
- Loader 64-bit (loader dan preloader) dari file dan pustaka yang dapat dieksekusi dikompilasi dalam format PIE (Position-Independent Executables) untuk mengosongkan sebagian ruang alamat 32-bit.
- Pelepasan tumpukan yang benar disediakan untuk panggilan sistem NT dan panggilan balik pengguna.
- Fitur jaringan
- Mesin MSHTML mendukung mekanisme pengumpulan sampah “Cycle Collection”.
- MSHTML telah menambahkan dukungan untuk pemrosesan permintaan XMLHttpRequest yang sinkron.
- jscript.dll menambahkan dukungan untuk objek WeakMap agar berfungsi dengan kumpulan pasangan kunci/nilai yang kuncinya adalah objek yang dapat memiliki nilai arbitrer yang melekat padanya. Menerapkan metode WeakMap.get(), WeakMap.delete(), WeakMap.clear() dan WeakMap.has().
- Mesin browser Gecko telah diperbarui ke versi 2.47.4.
- Dukungan untuk pemberitahuan tentang perubahan status antarmuka jaringan telah diterapkan.
- Kriptografi dan Keamanan
- Dukungan untuk kartu pintar telah ditambahkan ke perpustakaan Winscard.dll, diimplementasikan melalui perpustakaan sistem PCClite.
- BCrypt telah menambahkan dukungan untuk protokol pertukaran kunci Diffie-Hellman.
- Paket Negosiasi telah diimplementasikan, menyediakan lapisan untuk menggunakan antarmuka SSPI (Security Support Provider Interface) untuk mengakses penyedia SSP (Security Support Provider).
- Aplikasi Tertanam
- Wine Debugger (winedbg) menggunakan perpustakaan Zydis untuk membongkar instruksi mesin X86.
- Antarmuka WineCfg telah diperbarui untuk mendukung versi lama pada platform 64-bit. Windows (sebelum XP), yang memungkinkan Anda menjalankan aplikasi lama menggunakan mode WoW64.
- Semua aplikasi grafis bawaan sekarang menampilkan informasi kesalahan dalam dialog terpisah, alih-alih menampilkannya di konsol.
- Program systeminfo menyediakan tampilan informasi dari basis data WMI (Windows Instrumen Manajemen).
- Menambahkan aplikasi klist untuk menampilkan tiket Kerberos.
- Aplikasi taskkill mengimplementasikan kemampuan untuk menghentikan proses anak secara paksa.
- Menambahkan opsi "/machine" ke utilitas awal untuk memilih arsitektur yang digunakan saat menjalankan executable hybrid yang mendukung x86 dan ARM.
- Sebagian besar fungsi program daftar tugas telah diterapkan.
- Menambahkan implementasi dasar aplikasi findtr.
- Alat Pengembangan
- Utilitas WineDump memiliki kemampuan untuk menampilkan isi file registri. Windows (format REGF), serta menampilkan data untuk semua arsitektur (x86/ARM64) yang didukung dalam file PE hibrida.
- Kompiler IDL telah menambahkan dukungan untuk atribut "composable", "default_overload", "deprecated" dan "protected".
- Menghapus libwine.so, yang tidak digunakan lagi di Wine 6.0 dan sudah lama tidak digunakan lagi di Wine. Program dalam format ELF yang dibuat di Wine versi lama (5.0 dan lebih lama) dengan libwine.so memerlukan pembangunan kembali agar dapat dijalankan di Wine 9.0.
- Perpustakaan bawaan dan ketergantungan eksternal
- Pustaka FluidSynth 2.3.3, Musl 1.2.3 (hanya fungsi matematika) dan Zydis 4.0.0 diintegrasikan ke dalam paket.
- Komponen 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, LibXslt 1.1.38 dan Zlib 1.3 telah diperbarui ke versi baru. Mesin Wine Mono dengan implementasi platform .NET telah diperbarui ke rilis 8.1.0.
- Driver winewayland.drv menggunakan perpustakaan klien Wayland sebagai dependensi eksternal, serta perpustakaan xkbcommon dan xkbregistry.
- Untuk mendukung kartu pintar, pustaka PCSClite eksternal digunakan (dalam macOS — PCSC).
- Membuat file PE pada platform non-i386 sekarang memerlukan kompiler silang dengan dukungan untuk arahan ".seh" untuk menangani pengecualian.
Sumber: opennet.ru
