Rilis stabil Wine 9.0

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.

Wine telah mengonfirmasi pengoperasian penuh program 5336 (setahun lalu 5266, dua tahun lalu 5156, tiga tahun lalu 5049) untuk Windows, program 4397 lainnya (setahun lalu 4370, dua tahun lalu 4312, tiga tahun lalu 4227) bekerja dengan sempurna pengaturan tambahan dan DLL eksternal. 3943 program (setahun lalu 3888, dua tahun lalu 3813, tiga tahun lalu 3703) mengalami masalah kecil dalam pengoperasiannya sehingga tidak mengganggu penggunaan fungsi utama aplikasi.

Inovasi utama dalam Wine 9.0:

  • Menambahkan driver winewayland.drv, memungkinkan Anda menggunakan Wine di lingkungan berdasarkan protokol Wayland tanpa menggunakan komponen XWayland dan X11. Pengembangan ini bertujuan untuk menyediakan lingkungan Wayland murni dengan dukungan untuk menjalankan aplikasi Windows yang tidak memerlukan instalasi paket terkait X11, yang memungkinkan kinerja dan respons game yang lebih tinggi dengan menghilangkan lapisan yang tidak diperlukan. 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 substitusi penekanan tombol palsu).

    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 Windows-on-Windows), yang memungkinkan menjalankan aplikasi Windows 32-bit pada sistem Unix 64-bit, terus berlanjut. Semua modul yang mengakses perpustakaan Unix menggunakan panggilan sistem WoW64 untuk memungkinkan modul berformat PE 32-bit mengakses perpustakaan Unix 64-bit.

    Memperbaiki mode peluncuran WoW64 baru, yang menjalankan kode 32-bit dalam proses 64-bit (dalam mode WoW64 lama, aplikasi 32-bit berjalan dalam proses Unix 32-bit). Menambahkan dukungan untuk menggunakan mode WoW64 baru di platform macOS. Karena mode WoW64 baru memiliki beberapa kekurangan, seperti kurangnya dukungan untuk mode 16-bit dan penurunan kinerja OpenGL karena kurangnya dukungan untuk ekstensi ARB_buffer_storage, mode ini belum diaktifkan secara default dan memerlukan pembangunan dengan opsi “—enable- archs=i386,x86_64 " dalam skrip konfigurasi.

  • Menambahkan kemampuan untuk menjalankan executable Windows yang ada pada sistem arsitektur ARM64. Kemampuan untuk membangun Wine untuk ARM64EC ABI (Kompatibel Emulasi ARM64) dan dukungan untuk memuat modul ARM64EC telah diterapkan, digunakan untuk menyederhanakan porting aplikasi yang awalnya ditulis untuk arsitektur x64_86 ke sistem ARM64 dengan menyediakan kemampuan untuk mengeksekusi modul individual dengan x64_86 kode di lingkungan ARM64 menggunakan emulator. Menambahkan dukungan untuk format file ARM64X PE, yang memungkinkan memuat satu file yang dapat dieksekusi dalam proses x64/Arm64EC dan ARM64. Antarmuka untuk meniru sistem x32 86-bit telah diterapkan, tetapi pustaka dengan emulator belum disertakan dalam paket Wine utama (Anda dapat menggunakan emulator FEX eksternal untuk menjalankan kode x86 di lingkungan ARM64).
  • Subsistem grafis
    • Driver PostScript telah didesain ulang untuk mendukung file spool berformat Windows yang menyimpan data tentang pekerjaan pencetakan. Panggilan langsung ke driver dari lingkungan Unix tidak termasuk.
    • 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.
    • Dukungan untuk memuat font suara (SoundFont - format sintesis berbasis sampel yang digunakan untuk memutar file MIDI) dalam format DLS1 dan DLS2, serta dalam format SF2 yang digunakan di Linux, telah diterapkan.
    • 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 decoder format WMV (Windows Media Video) telah diimplementasikan.
    • 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 yang diperluas untuk IME (Editor Metode Input). Pekerjaan telah dilakukan untuk memastikan kompatibilitas dengan implementasi IME Windows asli dan meningkatkan integrasi dengan IME Linux
    • 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)
    • Versi default Windows yang dikeluarkan adalah 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.
    • Kemampuan untuk mengekspos versi Windows yang lebih lama (pra-XP) pada platform 64-bit telah ditambahkan ke antarmuka WineCfg, 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 database WMI (Windows Management Instrumentation).
    • 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 menyediakan kemampuan untuk menampilkan konten file registri Windows (format REGF), serta menampilkan data untuk semua arsitektur (x86/ARM64) yang didukung dalam file PE hybrid.
    • 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, perpustakaan eksternal PCSClite (di macOS - PCSC) digunakan.
    • Membuat file PE pada platform non-i386 sekarang memerlukan kompiler silang dengan dukungan untuk arahan ".seh" untuk menangani pengecualian.

Sumber: opennet.ru

Tambah komentar