Rilis stabil Wine 7.0

Setelah satu tahun pengembangan dan 30 versi eksperimental, rilis stabil implementasi terbuka API Win32 disajikan - Wine 7.0, yang menggabungkan lebih dari 9100 perubahan. Pencapaian utama dari versi baru ini mencakup penerjemahan sebagian besar modul Wine ke dalam format PE, dukungan untuk tema, perluasan tumpukan untuk joystick dan perangkat input dengan antarmuka HID, dan implementasi arsitektur WoW64 untuk menjalankan program 32-bit dalam a lingkungan 64-bit.

Wine telah mengonfirmasi pengoperasian penuh 5156 (setahun lalu 5049) program untuk Windows, program 4312 (setahun lalu 4227) lainnya bekerja sempurna dengan pengaturan tambahan dan DLL eksternal. 3813 program (3703 tahun lalu) memiliki masalah operasional kecil yang tidak mengganggu penggunaan fungsi utama aplikasi.

Inovasi utama dalam Wine 7.0:

  • Modul dalam format PE
    • Hampir semua DLL telah dikonversi untuk menggunakan format file PE (Portable Executable, digunakan pada Windows) dan bukan ELF. Penggunaan PE memecahkan masalah dengan mendukung berbagai skema perlindungan salinan yang memverifikasi identitas modul sistem pada disk dan memori.
    • Kemampuan untuk berinteraksi modul PE dengan perpustakaan Unix menggunakan panggilan sistem kernel NT standar telah diterapkan, yang memungkinkan Anda menyembunyikan akses ke kode Unix dari debugger Windows dan memantau registrasi thread.
    • DLL bawaan sekarang dimuat hanya jika ada file PE yang sesuai di disk, terlepas dari apakah itu perpustakaan asli atau rintisan. Perubahan ini memungkinkan aplikasi untuk selalu melihat pengikatan yang benar ke file PE. Untuk menonaktifkan perilaku ini, Anda dapat menggunakan variabel lingkungan WINEBOOTSTRAPMODE.
  • WoW64
    • Arsitektur WoW64 (64-bit Windows-on-Windows) telah diterapkan, memungkinkan Anda menjalankan aplikasi Windows 32-bit dalam proses Unix 64-bit. Dukungan diimplementasikan melalui koneksi lapisan yang menerjemahkan panggilan sistem NT 32-bit menjadi panggilan 64-bit ke NTDLL.
    • Lapisan WoW64 disiapkan untuk sebagian besar perpustakaan Unix dan memungkinkan modul PE 32-bit mengakses perpustakaan Unix 64-bit. Setelah semua modul dikonversi ke format PE, aplikasi Windows 32-bit dapat dijalankan tanpa menginstal perpustakaan Unix 32-bit.
  • Tema
    • Dukungan tema telah diterapkan. Tema desain “Terang”, “Biru” dan “Biru Klasik” disertakan, yang dapat dipilih melalui konfigurator WineCfg.
    • Menambahkan kemampuan untuk menyesuaikan tampilan semua kontrol antarmuka melalui tema. Tampilan elemen diperbarui secara otomatis setelah mengubah tema desain.
    • Dukungan tema telah ditambahkan ke semua aplikasi Wine bawaan. Aplikasi telah disesuaikan dengan layar dengan kerapatan piksel tinggi (High DPI).
  • Subsistem grafis
    • Pustaka Win32u baru telah ditambahkan, yang mencakup bagian pustaka GDI32 dan USER32 yang terkait dengan pemrosesan grafis dan manajemen jendela di tingkat kernel. Di masa depan, pekerjaan akan dimulai pada porting komponen driver seperti winex32.drv dan winemac.drv ke Win11u.
    • Driver Vulkan mendukung spesifikasi API grafis Vulkan 1.2.201.
    • Memberikan dukungan untuk mengeluarkan objek geometris yang diarsir melalui Direct2D API, dengan kemampuan untuk memeriksa apakah klik berhasil (hit-test).
    • Direct2D API menyediakan dukungan awal untuk efek visual yang diterapkan menggunakan antarmuka ID2D1Effect.
    • Direct2D API telah menambahkan dukungan untuk antarmuka ID2D1MultiThread, yang digunakan untuk mengatur akses eksklusif ke sumber daya dalam aplikasi multi-thread.
    • Kumpulan pustaka WindowsCodecs menyediakan dukungan untuk mendekode gambar dalam format WMP (Windows Media Photo) dan mengkodekan gambar dalam format DDS (DirectDraw Surface). Kami tidak lagi mendukung pengkodean gambar dalam format ICNS (untuk macOS), yang tidak didukung di Windows.
  • Direct3D
    • Mesin rendering baru telah ditingkatkan secara signifikan, menerjemahkan panggilan Direct3D ke API grafis Vulkan. Dalam sebagian besar situasi, tingkat dukungan untuk Direct3D 10 dan 11 pada mesin berbasis Vulkan telah disejajarkan dengan mesin berbasis OpenGL yang lebih lama. Untuk mengaktifkan mesin rendering Vulkan, setel variabel registri Direct3D "renderer" ke "vulkan".
    • Banyak fitur Direct3D 10 dan 11 yang diimplementasikan, termasuk Konteks yang Ditangguhkan, objek status yang beroperasi dalam konteks perangkat, offset persisten dalam buffer, menghapus tampilan tekstur yang tidak berurutan, menyalin data antar sumber daya dalam format tanpa tipe (DXGI_FORMAT_BC3_TYPELESS, DXGI_FORMAT_R32G32B32A32_TYPELESS), dll. .
    • Menambahkan dukungan untuk konfigurasi multi-monitor, memungkinkan Anda memilih monitor untuk menampilkan aplikasi Direct3D dalam mode layar penuh.
    • DXGI API menyediakan koreksi gamma layar, yang dapat digunakan oleh aplikasi berbasis Direct3D 10 dan 11 untuk mengubah kecerahan layar. Mengaktifkan pengambilan penghitung framebuffer virtual (SwapChain).
    • Direct3D 12 menambahkan dukungan untuk tanda tangan root versi 1.1.
    • Dalam kode rendering melalui Vulkan API, efisiensi pemrosesan kueri telah ditingkatkan ketika sistem mendukung ekstensi VK_EXT_host_query_reset.
    • Menambahkan kemampuan untuk mengeluarkan framebuffer virtual (SwapChain) melalui GDI jika OpenGL atau Vulkan tidak dapat digunakan untuk tampilan, misalnya, saat mengeluarkan ke jendela dari proses yang berbeda, misalnya, dalam program berdasarkan kerangka kerja CEF (Chromium Embedded Framework).
    • Saat menggunakan backend shader GLSL, pengubah "tepat" dipastikan untuk instruksi shader.
    • DirectDraw API menambahkan dukungan untuk rendering 3D ke dalam memori sistem menggunakan perangkat perangkat lunak seperti "RGB", "MMX" dan "Ramp".
    • Kartu AMD Radeon RX 3M, AMD Radeon RX 5500/6800 XT/6800 XT, AMD Van Gogh, Intel UHD Graphics 6900 dan NVIDIA GT 630 telah ditambahkan ke database kartu grafis Direct1030D.
    • Kunci "UseGLSL" telah dihapus dari registri HKEY_CURRENT_USER\Software\Wine\Direct3D, sebagai gantinya, mulai dari Wine 5.0, Anda perlu menggunakan "shader_backend".
    • Untuk mendukung Direct3D 12, Anda sekarang memerlukan setidaknya perpustakaan vkd3d versi 1.2.
  • D3DX
    • Implementasi D3DX 10 telah meningkatkan dukungan untuk kerangka efek visual dan menambahkan dukungan untuk format gambar Windows Media Photo (JPEG XR)
    • Menambahkan fungsi pembuatan tekstur yang disediakan di D3DX10, seperti D3DX10CreateTextureFromMemory().
    • Antarmuka perangkat lunak ID3DX10Sprite dan ID3DX10Font telah diimplementasikan sebagian.
  • Suara dan video
    • Add-on GStreamer untuk DirectShow dan kerangka Media Foundation digabungkan menjadi satu backend WineGStreamer umum, yang akan menyederhanakan pengembangan API decoding konten baru.
    • Berdasarkan backend WineGStreamer, objek Windows Media diimplementasikan untuk pembacaan sinkron dan asinkron.
    • Penerapan kerangka Media Foundation telah disempurnakan lebih lanjut, dukungan untuk fungsionalitas IMFPMediaPlayer dan pengalokasi sampel telah ditambahkan, dan dukungan untuk buffer rendering EVR dan SAR telah ditingkatkan.
    • Pustaka wineqtdecoder, yang menyediakan dekoder untuk format QuickTime, telah dihapus (semua codec sekarang menggunakan GStreamer).
  • Perangkat input
    • Tumpukan untuk perangkat input yang mendukung protokol HID (Perangkat Antarmuka Manusia) telah ditingkatkan secara signifikan, menyediakan kemampuan seperti penguraian deskriptor HID, memproses pesan HID, dan menyediakan driver mini-HID.
    • Di bagian belakang driver winebus.sys, terjemahan deskripsi perangkat menjadi pesan HID telah ditingkatkan.
    • Menambahkan backend DirectInput baru untuk joystick yang mendukung protokol HID. Kemampuan untuk menggunakan efek umpan balik di joystick telah diterapkan. Panel kontrol joystick yang ditingkatkan. Interaksi yang dioptimalkan dengan perangkat yang kompatibel dengan XInput. Di WinMM, dukungan joystick telah dipindahkan ke DInput, daripada menggunakan backend evdev di Linux dan IOHID di macOS IOHID. Driver joystick lama winejoystick.drv telah dihapus.
    • Tes baru telah ditambahkan ke modul DInput, berdasarkan penggunaan perangkat HID virtual dan tidak memerlukan perangkat fisik.
  • Teks dan font
    • Menambahkan objek Kumpulan Font ke DirectWrite.
    • RichEdit mengimplementasikan antarmuka TextHost dengan benar.
  • Kernel (Antarmuka Kernel Windows)
    • Saat menjalankan file eksekusi yang tidak teridentifikasi (seperti 'wine foo.msi') di Wine, start.exe sekarang dipanggil, yang memanggil penangan yang terkait dengan jenis file tersebut.
    • Menambahkan dukungan untuk mekanisme sinkronisasi NtAlertThreadByThreadId dan NtWaitForAlertByThreadId, mirip dengan futex di Linux.
    • Menambahkan dukungan untuk objek debug NT yang digunakan untuk men-debug fungsi kernel.
    • Menambahkan dukungan untuk kunci registri dinamis untuk menyimpan data kinerja.
  • C Waktu Proses
    • Runtime C mengimplementasikan serangkaian fungsi matematika lengkap, yang sebagian besar dibawa dari perpustakaan Musl.
    • Semua platform CPU memberikan dukungan yang benar untuk fungsi floating point.
  • Fitur jaringan
    • Peningkatan mode kompatibilitas untuk Internet Explorer 11 (IE11), yang sekarang digunakan secara default untuk memproses dokumen HTML.
    • Pustaka mshtml mengimplementasikan mode JavaScript ES6 (ECMAScript 2015), yang menyediakan dukungan untuk fitur seperti ekspresi let dan objek Map.
    • Instalasi paket MSI dengan tambahan mesin Gecko ke dalam direktori kerja Wine sekarang dilakukan bila diperlukan, dan bukan selama pembaruan Wine.
    • Menambahkan dukungan untuk protokol DTLS.
    • Layanan NSI (Network Store Interface) telah diimplementasikan, menyimpan dan mengirimkan informasi tentang perutean dan antarmuka jaringan di komputer ke layanan lain.
    • Penangan API WinSock seperti setockopt dan getockopt telah dipindahkan ke NTDLL dan driver afd.sys agar sesuai dengan arsitektur Windows.
    • File database jaringan milik Wine, seperti /etc/protocols dan /etc/networks, kini diinstal di direktori kerja Wine, alih-alih mengakses database Unix serupa.
  • Platform alternatif
    • Menambahkan dukungan untuk peralatan Apple berdasarkan chip M1 ARM (Apple Silicon).
    • Dukungan untuk fitur BCrypt dan Secur32 di macOS kini memerlukan instalasi perpustakaan GnuTLS.
    • Eksekusi 32-bit untuk platform ARM kini dibuat dalam mode Thumb-2, mirip dengan Windows. Preloader digunakan untuk memuat file tersebut.
    • Untuk platform ARM 32-bit, dukungan untuk pelepasan pengecualian telah diterapkan.
    • Untuk FreeBSD, jumlah permintaan yang didukung untuk informasi sistem tingkat rendah, seperti status memori dan tingkat pengisian daya baterai, telah diperluas.
  • Aplikasi bawaan dan alat pengembangan
    • Utilitas reg.exe telah menambahkan dukungan untuk tampilan registri 32 dan 64-bit. Menambahkan dukungan untuk menyalin kunci registri.
    • Utilitas WineDump telah menambahkan dukungan untuk membuang metadata Windows dan menampilkan informasi rinci tentang entri CodeView.
    • Wine Debugger (winedbg) menyediakan kemampuan untuk men-debug proses 32-bit dari debugger 64-bit.
    • Kemampuan untuk memuat perpustakaan yang dibangun ke dalam file PE telah ditambahkan ke kompiler IDL (widl), dukungan untuk atribut dan konstruksi khusus WinRT telah disediakan, dan pencarian perpustakaan khusus platform telah diterapkan.
  • Sistem perakitan
    • Dalam direktori khusus arsitektur, perpustakaan kini disimpan dengan nama yang mencerminkan arsitektur dan jenis executable, misalnya, 'i386-windows' untuk format PE dan 'x86_64-unix' untuk perpustakaan unix, sehingga memungkinkan dukungan untuk arsitektur berbeda dalam a instalasi Wine tunggal dan menyediakan kompilasi silang Winelib.
    • Untuk menyetel opsi di header file PE yang mengontrol transisi untuk menggunakan DLL asli, tanda '--prefer-native option' telah ditambahkan ke winebuild (pemrosesan DLL_WINE_PREATTACH di DllMain telah dihentikan).
    • Menambahkan dukungan untuk format data debug Dwarf versi 4, yang sekarang digunakan secara default saat membuat perpustakaan Wine.
    • Menambahkan opsi build '—enable-build-id' untuk menyimpan pengidentifikasi build unik dalam file yang dapat dieksekusi.
    • Menambahkan dukungan untuk menggunakan kompiler Clang dalam mode kompatibilitas MSVC.
  • Miscellanea
    • Nama-nama direktori tipikal di shell pengguna (Windows Shell) diberikan sesuai dengan skema yang digunakan mulai dari Windows Vista, yaitu. Alih-alih 'Dokumen Saya', direktori 'Dokumen' kini dibuat, dan sebagian besar data disimpan ke direktori 'AppData'.
    • Dukungan untuk spesifikasi OpenCL 1.2 telah ditambahkan ke lapisan perpustakaan OpenCL.
    • Driver WinSpool telah menambahkan dukungan untuk berbagai ukuran halaman saat mencetak.
    • Menambahkan dukungan awal untuk MSDASQL, penyedia Microsoft OLE DB untuk driver ODBC.
    • Mesin Wine Mono dengan implementasi platform .NET telah diperbarui ke rilis 7.0.0.
    • Data Unicode telah diperbarui ke spesifikasi Unicode 14.
    • Pohon sumber mencakup perpustakaan Faudio, GSM, LCMS2, LibJPEG, LibJXR, LibMPG123, LibPng, LibTiff, LibXml2, LibXslt dan Zlib, yang dikompilasi dalam format PE dan tidak memerlukan versi dalam format Unix. Pada saat yang sama, perpustakaan ini juga dapat diimpor dari sistem untuk menggunakan rakitan eksternal, bukan opsi PE bawaan.

Sumber: opennet.ru

Tambah komentar