Wine, Lapisan Kompatibilitas Windows, mencapai versi 5.0 di Android

Wine adalah Lapisan Kompatibilitas Windows yang memungkinkan pengguna menjalankan aplikasi Windows di OS lain. Wine untuk Android kini telah mencapai v5.0 -- coba lihat!

Ekosistem aplikasi Android terus berkembang selama bertahun-tahun keberadaan Android, didorong oleh adopsi seluler sebagai interaksi komputer utama bagi kebanyakan orang. Banyak pengguna yang tertarik pada gaya hidup mobile-only, hal ini karena aplikasi dan ekosistem aplikasi di seluler telah berhasil memenuhi kebutuhan khusus mereka. Namun jika Anda membutuhkan aplikasi desktop tanpa memiliki akses ke desktop, apa yang akan Anda lakukan? Di sinilah Wine hadir, Lapisan Kompatibilitas Windows yang memungkinkan pengguna menjalankan aplikasi Windows lengkap pada OS yang berbeda. Anggur untuk Android memiliki sekarang mencapai v5.0, mengumpulkan upaya pengembangan tim selama satu tahun.

Wine adalah Lapisan Kompatibilitas sumber terbuka dan gratis untuk Windows, yang bertujuan untuk memungkinkan program komputer yang dikembangkan untuk Windows dapat berjalan di sistem operasi lain.

Wine untuk Android menghadirkan Wine ke Android, jelas sekali. Wine bukanlah sebuah Emulator (yang sebenarnya merupakan backronim rekursif untuk namanya), sehingga hanya dapat dijalankan versi aplikasi khusus arsitektur -- Wine untuk Android versi ARM hanya akan menjalankan aplikasi ARM, dan bukan x86.

Sorotan untuk rilis stabil Wine 5.0 mencakup dukungan multi-monitor dan dukungan Vulkan 1.1. Log perubahan lengkap untuk pembaruan adalah sebagai berikut:

Catatan Perubahan Anggur 5.0:

  • Modul PE:
    • Sebagian besar modul dibuat dalam format PE (Portable Executable, format biner Windows) dan bukan ELF ketika kompiler MinGW tersedia. Hal ini membantu berbagai skema perlindungan salinan yang memeriksa apakah isi modul sistem pada disk dan dalam memori adalah identik.
    • Biner PE yang sebenarnya disalin ke awalan Wine, bukan file DLL palsu. Hal ini membuat awalan terlihat lebih seperti instalasi Windows sebenarnya, dengan mengorbankan beberapa ruang disk tambahan.
    • Modul yang telah dikonversi ke PE dapat menggunakan fungsi C karakter lebar standar, serta konstanta karakter karakter lebar seperti L"abc". Ini membuat kode lebih mudah dibaca.
    • Belum semua modul dikonversi ke PE; ini adalah proses berkelanjutan yang akan berlanjut selama seri pengembangan Wine 5.x.
    • Runtime Wine C diperbarui untuk mendukung penautan ke binari yang dikompilasi MinGW; ini digunakan secara default, bukan runtime MinGW saat membuat DLL.
  • Grafik:
    • Beberapa adaptor tampilan dan monitor didukung dengan baik, termasuk perubahan konfigurasi dinamis.
    • Driver Vulkan mendukung spesifikasi Vulkan hingga versi 1.1.126.
    • Pustaka WindowsCodecs mampu mengonversi lebih banyak format bitmap, termasuk format yang diindeks palet.
  • Langsung3D:
    • Aplikasi Direct3D layar penuh menghambat screensaver.
    • Swapchain DXGI menyajikan informasi kepada aplikasi ketika jendela terkait diminimalkan. Hal ini biasanya memungkinkan aplikasi untuk mengurangi penggunaan CPU sambil diminimalkan, dan dalam beberapa kasus diperlukan agar jendela aplikasi dapat dipulihkan kembali.
    • Peralihan antara mode layar penuh dan berjendela menggunakan kombinasi Alt+Enter standar diterapkan untuk aplikasi DXGI.
    • Fitur-fitur berikut diimplementasikan untuk aplikasi Direct3D 12:
      • Beralih antara layar penuh dan berjendela.
      • Mengubah mode tampilan.
      • Hadiah berskala.
      • Interval pertukaran. Fitur-fitur ini sebelumnya telah diterapkan untuk versi Direct3D API yang lebih lama.
    • Penanganan berbagai kasus edge ditingkatkan. Diantara yang lain:
      • Nilai referensi di luar rentang untuk pengujian alfa dan stensil.
      • Mengambil sampel sumber daya 2D dengan sampler 3D dan sebaliknya.
      • Menggambar dengan tekstur dan buffer yang dipetakan.
      • Penggunaan objek clipper DirectDraw yang tidak valid.
      • Membuat perangkat Direct3D di Windows yang tidak valid, seperti jendela desktop.
      • Area pandang dengan Z minimum lebih besar atau sama dengan Z maksimum.
      • Sumber daya terikat melalui tampilan sumber daya shader dan tampilan target render atau stensil kedalaman secara bersamaan.
      • Blits antara format dengan dan tanpa komponen alfa. Karena aplikasi yang berperilaku baik tidak bergantung pada kasus edge ini, aplikasi tersebut biasanya hanya memengaruhi satu atau dua aplikasi masing-masing. Padahal jumlahnya cukup banyak.
    • Daerah tekstur kotor dilacak lebih akurat untuk unggahan tekstur Direct3D 8 dan 9.
    • Pengunggahan tekstur 3D terkompresi S3TC memerlukan lebih sedikit ruang alamat. Karena tekstur 3D berpotensi berukuran besar, dan kehabisan ruang alamat merupakan kekhawatiran pada aplikasi 32-bit, tekstur 3D terkompresi S3TC diunggah per irisan, bukan dalam satu unggahan.
    • Antarmuka ID3D11Multithread diimplementasikan.
    • Berbagai perbaikan dan peningkatan penghitungan pencahayaan untuk aplikasi DirectDraw lama telah dilakukan.
    • Dukungan terbatas untuk blits di seluruh swapchain diterapkan.
    • Lebih banyak API refleksi shader diterapkan.
    • Blitter CPU wined3d dapat menangani sumber daya sumber terkompresi. Dukungan untuk sumber daya tujuan terkompresi telah diterapkan pada rilis sebelumnya.
    • Basis data kartu grafis Direct3D mengenali lebih banyak kartu grafis.
    • Kunci registri HKEY_CURRENT_USER\Software\Wine\Direct3D baru:
      • "shader_backend" (REG_SZ) Backend shader yang akan digunakan. Nilai yang mungkin adalah "glsl" (default) untuk GLSL, "arb" untuk program vertex/fragmen ARB dan "none" untuk menonaktifkan dukungan shader.
      • "strict_shader_math" (REG_DWORD) Mengaktifkan (0x1) atau menonaktifkan (0x0, default) terjemahan shader Direct3D yang lebih ketat, yang berpotensi menimbulkan dampak buruk pada kinerja. Saat ini, hal ini hanya membuat perbedaan dengan backend shader GLSL default yang dikombinasikan dengan driver NVIDIA.
    • Kunci registri HKEY_CURRENT_USER\Software\Wine\Direct3D tidak digunakan lagi:
      • "UseGLSL" Ini telah digantikan oleh pengaturan "shader_backend" di atas.
  • D3DX :
    • Dukungan untuk mengompresi tekstur menggunakan kompresi S3TC diterapkan.
    • Berbagai operasi, seperti mis. isian tekstur, pada permukaan yang tidak dapat dipetakan diterapkan dengan lebih benar. Sebelumnya implementasinya bergantung pada implementasi Direct3D yang mendasarinya dan tidak menerapkan pembatasan pemetaan.
    • Berbagai perbaikan dan perbaikan telah dilakukan pada kerangka efek.
  • Inti:
    • Sebagian besar fungsi yang dulu ada di Kernel32 dipindahkan ke KernelBase, mengikuti arsitektur versi Windows terkini.
    • Perpustakaan dengan bitness 32/64 yang salah akan diabaikan ketika ditemukan di jalur pencarian, untuk memungkinkan memuat perpustakaan yang benar jika ditemukan lebih jauh di jalur tersebut.
    • Objek kernel lebih baik ditiru untuk driver perangkat yang berharap dapat memanipulasi objek dari sisi kernel.
    • Objek sinkronisasi tingkat kernel seperti spin lock, fast mutex, delete lock, dan variabel sumber daya diimplementasikan.
    • Status baterai sistem dilaporkan dengan benar ke aplikasi.
  • Antarmuka pengguna:
    • Jendela yang diperkecil ditampilkan menggunakan bilah judul, bukan ikon gaya Windows 3.1 yang lama.
    • Gaya tombol baru Tombol Pisah dan Tautan Perintah diterapkan.
    • Kontrol Edit juga mengatur margin dengan benar untuk font CJK.
  • Integrasi desktop:
    • Tautan simbolis ke direktori Unix terkait dibuat untuk folder 'Unduhan' dan 'Templat'.
  • Perangkat masukan:
    • Driver perangkat Plug & Play dapat diinstal dan dimuat saat startup.
    • Pengontrol permainan didukung lebih baik, termasuk dukungan yang tepat untuk kontrol sakelar topi, roda, gas, dan rem.
    • API joystick lama versi Linux sebelum 2.2 tidak lagi didukung.
  • .BERSIH:
    • Mesin Mono diperbarui ke versi 4.9.4, termasuk bagian dari kerangka Windows Presentation Foundation (WPF).
    • Add-on Gecko dan Mono mendukung instalasi bersama, di mana file digunakan langsung dari lokasi global di bawah /usr/share/wine alih-alih disalin ke setiap awalan baru.
  • Internet dan jaringan:
    • Mesin Gecko diperbarui untuk mendukung rantai alat terbaru.
    • Sejumlah API HTML baru diimplementasikan.
    • MSHTML mendukung beberapa elemen SVG.
    • Objek kesalahan dan propagasi pengecualian didukung di VBScript.
    • Sejumlah fungsi bawaan VBScript diimplementasikan.
    • Mode yang sesuai dengan JScript EcmaScript diperluas untuk mendukung lebih banyak fitur.
    • Objek skrip JScript dan VBScript mengekspos antarmuka info tipe.
    • Konfigurasi proxy HTTP dapat diambil melalui DHCP.
    • Pengalihan HTTP paspor didukung.
    • Layanan HTTP dan perpustakaan sisi klien terkait (HTTPAPI) diimplementasikan sebagian.
  • Kriptografi:
    • Kunci ECC (kurva elips) didukung saat menggunakan GnuTLS.
    • Mengimpor kunci dan sertifikat dari blob PFX diterapkan.
    • Algoritma derivasi kunci PBKDF2 didukung.
  • Teks dan font:
    • Fitur pemosisian OpenType didukung di DirectWrite, dan diaktifkan untuk skrip Latin secara default, termasuk kerning.
    • Akses data font menjadi lebih aman dengan memvalidasi berbagai tabel data sebelum menggunakannya.
    • Antarmuka DirectWrite diperbarui ke SDK terbaru, menerapkan beberapa tambahan API terbaru.
  • Audio / Video:
    • Pustaka XAudio2 diimplementasikan ulang untuk menggunakan pustaka FAudio eksternal, untuk kompatibilitas yang lebih baik.
    • Perpustakaan Media Foundation telah disempurnakan, termasuk:
      • Dukungan untuk antrian kerja asinkron bawaan dan pengguna.
      • Kemampuan untuk mengirimkan panggilan balik berkala, item pekerjaan menunggu, terjadwal, dan reguler, dengan dukungan untuk prioritas item.
      • Dukungan untuk antrian acara media.
      • Berbagai API inti untuk menangani objek tipe media, deskriptor aliran dan presentasi, atribut objek, objek aliran byte, sampel dan buffer.
      • Implementasi Penyelesai Sumber Awal.
      • Implementasi awal API Pembaca Sumber.
      • Implementasi untuk objek Sample Grabber.
      • Dukungan inti untuk membangun objek topologi.
      • Implementasi jam presentasi bawaan, mulai mengimplementasikan fungsionalitas Sesi Media.
    • Filter pengambilan video telah di-porting untuk menggunakan v4l2 dan bukan API v4l1 yang tidak digunakan lagi, sehingga memungkinkan penggunaan beberapa kamera yang tidak mendukung v4l1.
    • Dukungan untuk terjemahan dan pembacaan YUV ke RGB dari perangkat v4l2 menggunakan mmap() telah dihapus; kita sekarang bergantung pada libv4l2 untuk kedua hal ini.
    • Dekoder AVI, MPEG-I, dan WAVE bawaan telah dihapus; kami sekarang bergantung pada GStreamer atau Mac QuickTime Toolkit untuk memecahkan kode file media tersebut.
    • Beberapa API konfigurasi VMR7 lainnya diimplementasikan.
    • Driver suara mendukung penyesuaian volume per saluran.
  • Penginternasionalan:
    • Tabel karakter Unicode didasarkan pada Standar Unicode versi 12.1.0.
    • Normalisasi Unicode diterapkan.
    • Id wilayah geografis secara otomatis diatur dalam registri berdasarkan lokal saat ini. Ini dapat dimodifikasi jika perlu di HKEY_CURRENT_USER\Control Panel\International\Geo.
    • Lokal Sinhala dan Asturian didukung.
    • Codepage 28601 (Latin/Thailand) didukung.
  • RPC/COM:
    • Marshaller typelib mendukung struct dan array yang kompleks.
    • Ada implementasi awal perpustakaan runtime Windows Script.
    • Ada implementasi awal perpustakaan Microsoft ActiveX Data Objects (ADO).
  • Pemasang:
    • File Patch Penginstal Microsoft (MSI) didukung.
    • Alat WUSA (Penginstal Mandiri Pembaruan Windows) mendukung penginstalan file pembaruan .MSU.
  • Platform lengan:
    • Pelepasan pengecualian diterapkan untuk ARM64, menggunakan perpustakaan libunwind.
    • Proksi stubless OLE didukung di ARM64.
  • Alat pengembangan / Winelib:
    • Debugger jarak jauh Visual Studio dapat digunakan untuk men-debug aplikasi yang berjalan di bawah Wine.
    • Pustaka Mesin Debug (DBGENG) diimplementasikan sebagian.
    • Biner yang dibuat untuk target Windows tidak lagi bergantung pada perpustakaan libwine, untuk memungkinkannya berjalan di Windows tanpa ketergantungan tambahan. Perpustakaan libwine sama sekali tidak lagi dibuat untuk Windows.
    • Resource Compiler dan IDL Compiler mendukung opsi '--sysroot' untuk memungkinkan penempatan file header di lingkungan kompilasi silang.
    • Winegcc mendukung opsi '--target', '--wine-objdir', '--winebuild' dan '-fuse-ld' yang membuatnya lebih mudah digunakan sebagai kompiler silang, atau dengan rantai alat khusus.
    • Header wine/unicode.h tidak lagi tersedia untuk aplikasi, karena fungsi tersebut pada akhirnya akan dihapus dan digantikan oleh fungsi karakter lebar waktu proses C standar.
  • Membangun infrastruktur:
    • Biner pengujian dibuat dalam format PE jika MinGW tersedia, sehingga biner pengujian yang sama dapat dijalankan di Wine dan Windows. Target pembuatan 'crosstest' tidak lagi diperlukan atau didukung.
    • Konvensi panggilan 'fastcall' didukung dalam file spesifikasi. Ia menggunakan nama mangling yang benar untuk build Windows.
    • Tanda titik masuk '-import' didukung dalam file spesifikasi, untuk menandai fungsi yang memerlukan awalan kode hotpatch untuk dibuat untuk proses impornya.
    • Winebuild mendukung opsi '--builtin' untuk menambahkan tanda tangan khusus ke binari PE untuk menandainya sebagai bawaan Wine.
  • Aplikasi bawaan:
    • Alat CHCP diimplementasikan. Ini memungkinkan pengaturan halaman kode konsol.
    • Alat MSIDB diimplementasikan. Ini memungkinkan manipulasi database MSI.
  • Peningkatan kinerja:
    • Berbagai fungsi waktu menggunakan jam sistem berkinerja lebih tinggi jika tersedia, untuk mengurangi overhead dalam loop rendering di banyak game.
    • Pencarian file memanfaatkan dukungan pelipatan kasus sistem file ext4 jika diaktifkan pada direktori yang sedang dicari.
    • Kotak daftar gaya tanpa data (LBS_NODATA) memiliki kinerja yang lebih baik untuk item dalam jumlah besar.
    • Kunci Slim Reader/Writer, peristiwa yang dikunci, dan variabel kondisi menggunakan futex di Linux untuk menghindari perjalanan bolak-balik wineserver.
  • Ketergantungan eksternal baru:
    • Kompiler silang MinGW-w64 digunakan untuk membuat modul dalam format PE.
    • Perpustakaan FAudio digunakan untuk mengimplementasikan XAudio2.
    • Library Inotify digunakan untuk notifikasi perubahan file pada platform BSD.
    • Pustaka Unwind digunakan untuk penanganan pengecualian pada ARM64.
    • Pustaka Video4Linux versi 2 digunakan sebagai pengganti versi 1.

Baca selengkapnya


Sumber: Markas Besar Anggur

Cerita Melalui: Polisi Android