Keluaran stabil Wine 7.0

Selepas setahun pembangunan dan 30 versi percubaan, keluaran stabil pelaksanaan terbuka Win32 API telah dibentangkan - Wine 7.0, yang menggabungkan lebih daripada 9100 perubahan. Pencapaian utama versi baharu termasuk terjemahan kebanyakan modul Wine ke dalam format PE, sokongan untuk tema, pengembangan tindanan untuk kayu bedik dan peranti input dengan antara muka HID, dan pelaksanaan seni bina WoW64 untuk menjalankan program 32-bit dalam Persekitaran 64-bit.

Wine telah mengesahkan operasi penuh 5156 (setahun yang lalu 5049) program untuk Windows, 4312 lagi (setahun yang lalu 4227) program berfungsi dengan sempurna dengan tetapan tambahan dan DLL luaran. 3813 program (3703 tahun yang lalu) mempunyai masalah operasi kecil yang tidak mengganggu penggunaan fungsi utama aplikasi.

Inovasi utama dalam Wine 7.0:

  • Modul dalam format PE
    • Hampir semua DLL telah ditukar untuk menggunakan format fail boleh laku PE (Portable Executable, digunakan pada Windows) dan bukannya ELF. Penggunaan PE menyelesaikan masalah dengan menyokong pelbagai skim perlindungan salinan yang mengesahkan identiti modul sistem pada cakera dan dalam memori.
    • Keupayaan untuk berinteraksi modul PE dengan perpustakaan Unix menggunakan panggilan sistem kernel NT standard telah dilaksanakan, yang membolehkan anda menyembunyikan akses kepada kod Unix daripada penyahpepijat Windows dan memantau pendaftaran benang.
    • DLL terbina dalam kini dimuatkan hanya jika terdapat fail PE yang sepadan pada cakera, tidak kira sama ada ia adalah pustaka sebenar atau stub. Perubahan ini membolehkan aplikasi sentiasa melihat pengikatan yang betul pada fail PE. Untuk melumpuhkan tingkah laku ini, anda boleh menggunakan pembolehubah persekitaran WINEBOOTSTRAPMODE.
  • Wah64
    • Seni bina WoW64 (Windows-on-Windows 64-bit) telah dilaksanakan, membolehkan anda menjalankan aplikasi Windows 32-bit dalam proses Unix 64-bit. Sokongan dilaksanakan melalui sambungan lapisan yang menterjemahkan panggilan sistem NT 32-bit kepada panggilan 64-bit kepada NTDLL.
    • Lapisan WoW64 disediakan untuk kebanyakan perpustakaan Unix dan membenarkan modul PE 32-bit mengakses perpustakaan Unix 64-bit. Sebaik sahaja semua modul telah ditukar kepada format PE, anda boleh menjalankan aplikasi Windows 32-bit tanpa memasang perpustakaan Unix 32-bit.
  • Tema
    • Sokongan tema telah dilaksanakan. Tema reka bentuk "Light", "Blue" dan "Classic Blue" disertakan, yang boleh dipilih melalui konfigurasi WineCfg.
    • Menambah keupayaan untuk menyesuaikan penampilan semua kawalan antara muka melalui tema. Kemunculan elemen dikemas kini secara automatik selepas menukar tema reka bentuk.
    • Sokongan tema telah ditambahkan pada semua aplikasi Wain terbina dalam. Aplikasi telah disesuaikan dengan skrin dengan ketumpatan piksel tinggi (DPI Tinggi).
  • Subsistem grafik
    • Pustaka Win32u baharu telah ditambah, yang merangkumi bahagian pustaka GDI32 dan USER32 yang berkaitan dengan pemprosesan grafik dan pengurusan tetingkap pada peringkat kernel. Pada masa hadapan, kerja akan bermula untuk mengalihkan komponen pemacu seperti winex32.drv dan winemac.drv ke Win11u.
    • Pemacu Vulkan menyokong spesifikasi API grafik Vulkan 1.2.201.
    • Menyediakan sokongan untuk mengeluarkan objek geometri yang ditetas melalui API Direct2D, dengan keupayaan untuk menyemak sama ada klik mencecah (ujian hit).
    • API Direct2D menyediakan sokongan awal untuk kesan visual yang digunakan menggunakan antara muka ID2D1Effect.
    • API Direct2D telah menambah sokongan untuk antara muka ID2D1MultiThread, yang digunakan untuk mengatur akses eksklusif kepada sumber dalam aplikasi berbilang benang.
    • Set perpustakaan WindowsCodecs menyediakan sokongan untuk menyahkod imej dalam format WMP (Windows Media Photo) dan pengekodan imej dalam format DDS (DirectDraw Surface). Kami tidak lagi menyokong pengekodan imej dalam format ICNS (untuk macOS), yang tidak disokong pada Windows.
  • Direct3D
    • Enjin pemaparan baharu telah dipertingkatkan dengan ketara, menterjemahkan panggilan Direct3D kepada API grafik Vulkan. Dalam kebanyakan situasi, tahap sokongan untuk Direct3D 10 dan 11 dalam enjin berasaskan Vulkan telah diselaraskan dengan enjin berasaskan OpenGL yang lebih lama. Untuk mendayakan enjin pemaparan Vulkan, tetapkan pembolehubah pendaftaran Direct3D "penyampai" kepada "vulkan".
    • Banyak ciri Direct3D 10 dan 11 dilaksanakan, termasuk Konteks Tertunda, nyatakan objek yang beroperasi dalam konteks peranti, pengimbangan berterusan dalam penimbal, mengosongkan paparan tekstur tersusun, menyalin data antara sumber dalam format tanpa jenis (DXGI_FORMAT_BC3_TYPELESS, DXGI_FORMAT_R32G32B32A32A), dsb. .
    • Menambah sokongan untuk konfigurasi berbilang monitor, membolehkan anda memilih monitor untuk memaparkan aplikasi Direct3D dalam mod skrin penuh.
    • API DXGI menyediakan pembetulan gamma skrin, yang boleh digunakan oleh aplikasi berasaskan Direct3D 10 dan 11 untuk menukar kecerahan skrin. Mendayakan pengambilan semula kaunter framebuffers maya (SwapChain).
    • Direct3D 12 menambah sokongan untuk tandatangan akar versi 1.1.
    • Dalam kod pemaparan melalui API Vulkan, kecekapan pemprosesan pertanyaan telah dipertingkatkan apabila sistem menyokong sambungan VK_EXT_host_query_reset.
    • Menambah keupayaan untuk mengeluarkan penampan kerangka maya (SwapChain) melalui GDI jika OpenGL atau Vulkan tidak boleh digunakan untuk paparan, contohnya, apabila mengeluarkan ke tetingkap daripada proses yang berbeza, contohnya, dalam program berdasarkan rangka kerja CEF (Chromium Embedded Framework).
    • Apabila menggunakan bahagian belakang shader GLSL, pengubah suai "tepat" dipastikan untuk arahan shader.
    • DirectDraw API menambah sokongan untuk pemaparan 3D ke dalam memori sistem menggunakan peranti perisian seperti "RGB", "MMX" dan "Ramp".
    • AMD Radeon RX 3M, AMD Radeon RX 5500/6800 XT/6800 XT, AMD Van Gogh, Intel UHD Graphics 6900 dan kad NVIDIA GT 630 telah ditambahkan pada pangkalan data kad grafik Direct1030D.
    • Kekunci "UseGLSL" telah dialih keluar daripada pendaftaran HKEY_CURRENT_USER\Software\Wine\Direct3D, sebaliknya, bermula dengan Wine 5.0, anda perlu menggunakan "shader_backend".
    • Untuk menyokong Direct3D 12, anda kini memerlukan sekurang-kurangnya versi 3 pustaka vkd1.2d.
  • D3DX
    • Pelaksanaan D3DX 10 telah meningkatkan sokongan untuk rangka kerja kesan visual dan menambah sokongan untuk format imej Windows Media Photo (JPEG XR)
    • Menambahkan fungsi penciptaan tekstur yang disediakan dalam D3DX10, seperti D3DX10CreateTextureFromMemory().
    • Antara muka perisian ID3DX10Sprite dan ID3DX10Font telah dilaksanakan sebahagiannya.
  • Bunyi dan video
    • Alat tambah GStreamer untuk DirectShow dan rangka kerja Media Foundation digabungkan menjadi satu bahagian belakang WineGStreamer biasa, yang sepatutnya memudahkan pembangunan API penyahkodan kandungan baharu.
    • Berdasarkan bahagian belakang WineGStreamer, objek Windows Media dilaksanakan untuk bacaan segerak dan tak segerak.
    • Pelaksanaan rangka kerja Yayasan Media telah diperhalusi lagi, sokongan untuk fungsi IMFPMediaPlayer dan pengalokasi sampel telah ditambah, dan sokongan untuk penimbal pemaparan EVR dan SAR telah dipertingkatkan.
    • Pustaka wineqtdecoder, yang menyediakan penyahkod untuk format QuickTime, telah dialih keluar (semua codec kini menggunakan GStreamer).
  • Peranti input
    • Tindanan untuk peranti input yang menyokong protokol HID (Peranti Antaramuka Manusia) telah dipertingkatkan dengan ketara, menyediakan keupayaan seperti menghuraikan deskriptor HID, memproses mesej HID dan menyediakan pemacu HID mini.
    • Di bahagian belakang pemacu winebus.sys, terjemahan perihalan peranti ke dalam mesej HID telah dipertingkatkan.
    • Menambah bahagian belakang DirectInput baharu untuk kayu bedik yang menyokong protokol HID. Keupayaan untuk menggunakan kesan maklum balas dalam kayu bedik telah dilaksanakan. Panel kawalan kayu bedik yang dipertingkatkan. Interaksi yang dioptimumkan dengan peranti serasi XInput. Dalam WinMM, sokongan kayu bedik telah dialihkan ke DInput, bukannya menggunakan bahagian belakang evdev pada Linux dan IOHID pada macOS IOHID. Pemacu kayu bedik lama winejoystick.drv telah dialih keluar.
    • Ujian baharu telah ditambahkan pada modul DInput, berdasarkan penggunaan peranti HID maya dan tidak memerlukan peranti fizikal.
  • Teks dan fon
    • Menambahkan objek Set Font pada DirectWrite.
    • RichEdit melaksanakan antara muka TextHost dengan betul.
  • Kernel (Antara Muka Kernel Windows)
    • Apabila menjalankan fail boleh laku yang tidak dikenali (seperti 'wine foo.msi') dalam Wine, start.exe kini dipanggil, yang memanggil pengendali yang dikaitkan dengan jenis fail.
    • Menambah sokongan untuk mekanisme penyegerakan NtAlertThreadByThreadId dan NtWaitForAlertByThreadId, serupa dengan futexes dalam Linux.
    • Menambah sokongan untuk objek nyahpepijat NT yang digunakan untuk menyahpepijat fungsi kernel.
    • Menambah sokongan untuk kunci pendaftaran dinamik untuk menyimpan data prestasi.
  • C Masa Jalan
    • Masa jalan C melaksanakan set lengkap fungsi matematik, yang kebanyakannya dibawa dari perpustakaan Musl.
    • Semua platform CPU menyediakan sokongan yang betul untuk fungsi titik terapung.
  • Ciri rangkaian
    • Mod keserasian yang dipertingkatkan untuk Internet Explorer 11 (IE11), yang kini digunakan secara lalai untuk memproses dokumen HTML.
    • Pustaka mshtml melaksanakan mod JavaScript ES6 (ECMAScript 2015), yang menyediakan sokongan untuk ciri seperti ungkapan let dan objek Peta.
    • Pemasangan pakej MSI dengan tambahan pada enjin Gecko ke dalam direktori kerja Wine kini dilakukan apabila perlu, dan bukan semasa kemas kini Wine.
    • Menambah sokongan untuk protokol DTLS.
    • Perkhidmatan NSI (Antara Muka Stor Rangkaian) telah dilaksanakan, menyimpan dan menghantar maklumat mengenai penghalaan dan antara muka rangkaian pada komputer ke perkhidmatan lain.
    • Pengendali API WinSock seperti setsockopt dan getsockopt telah dialihkan ke NTDLL dan pemacu afd.sys untuk mematuhi seni bina Windows.
    • Fail pangkalan data rangkaian Wine sendiri, seperti /etc/protocols dan /etc/networks, kini dipasang dalam direktori kerja Wine, bukannya mengakses pangkalan data Unix yang serupa.
  • Platform alternatif
    • Sokongan tambahan untuk peralatan Apple berdasarkan cip M1 ARM (Apple Silicon).
    • Sokongan untuk ciri BCrypt dan Secur32 pada macOS kini memerlukan pemasangan pustaka GnuTLS.
    • Boleh laku 32-bit untuk platform ARM kini dibina dalam mod Thumb-2, serupa dengan Windows. Prapemuat digunakan untuk memuatkan fail tersebut.
    • Untuk platform ARM 32-bit, sokongan untuk pengecualian pelepasan telah dilaksanakan.
    • Untuk FreeBSD, bilangan pertanyaan yang disokong untuk maklumat sistem tahap rendah, seperti status memori dan tahap pengecasan bateri, telah dikembangkan.
  • Aplikasi terbina dalam dan alat pembangunan
    • Utiliti reg.exe telah menambah sokongan untuk paparan pendaftaran 32- dan 64-bit. Menambah sokongan untuk menyalin kunci pendaftaran.
    • Utiliti WineDump telah menambah sokongan untuk membuang metadata Windows dan memaparkan maklumat terperinci tentang entri CodeView.
    • Penyahpepijat Wain (winedbg) menyediakan keupayaan untuk menyahpepijat proses 32-bit daripada penyahpepijat 64-bit.
    • Keupayaan untuk memuatkan perpustakaan terbina dalam fail PE telah ditambahkan pada pengkompil IDL (widl), sokongan untuk atribut dan binaan khusus WinRT telah disediakan, dan carian perpustakaan khusus platform telah dilaksanakan.
  • Sistem pemasangan
    • Dalam direktori khusus seni bina, perpustakaan kini disimpan dengan nama yang mencerminkan seni bina dan jenis boleh laku, seperti 'i386-windows' untuk format PE dan 'x86_64-unix' untuk perpustakaan unix, membenarkan sokongan untuk seni bina yang berbeza dalam satu Wine pemasangan dan menyediakan kompilasi silang Winelib.
    • Untuk menetapkan pilihan dalam pengepala fail PE yang mengawal peralihan kepada menggunakan DLL asli, bendera '--prefer-native option' telah ditambahkan pada winebuild (pemprosesan DLL_WINE_PREATTACH dalam DllMain telah dihentikan).
    • Menambah sokongan untuk versi 4 format data nyahpepijat Dwarf, yang kini digunakan secara lalai semasa membina perpustakaan Wain.
    • Menambahkan pilihan binaan 'β€”enable-build-id' untuk menyimpan pengecam binaan unik dalam fail boleh laku.
    • Menambah sokongan untuk menggunakan pengkompil Clang dalam mod keserasian MSVC.
  • Macam-macam
    • Nama-nama direktori biasa dalam shell pengguna (Windows Shell) diberikan kepada skema yang digunakan bermula dengan Windows Vista, i.e. Daripada 'Dokumen Saya', direktori 'Dokumen' kini dicipta dan kebanyakan data disimpan ke direktori 'AppData'.
    • Sokongan untuk spesifikasi OpenCL 1.2 telah ditambahkan pada lapisan perpustakaan OpenCL.
    • Pemacu WinSpool telah menambah sokongan untuk saiz halaman yang berbeza semasa mencetak.
    • Menambah sokongan awal untuk MSDASQL, penyedia DB OLE Microsoft untuk pemacu ODBC.
    • Enjin Wine Mono dengan pelaksanaan platform .NET telah dikemas kini untuk mengeluarkan 7.0.0.
    • Data Unicode telah dikemas kini kepada spesifikasi Unicode 14.
    • Pokok sumber termasuk perpustakaan Faudio, GSM, LCMS2, LibJPEG, LibJXR, LibMPG123, LibPng, LibTiff, LibXml2, LibXslt dan Zlib, yang disusun dalam format PE dan tidak memerlukan versi dalam format Unix. Pada masa yang sama, perpustakaan ini juga boleh diimport daripada sistem untuk menggunakan pemasangan luaran dan bukannya pilihan PE terbina dalam.

Sumber: opennet.ru

Tambah komen