Mengikuti diskusi dari Linux Plumbers Conference tahun lalu, driver primitif sinkronisasi Windows NT telah diusulkan untuk kernel Linux. Driver ini akan mengekspos /dev/ntsync sebagai perangkat karakter baru untuk mengimplementasikan beberapa primitif sinkronisasi Windows NT langsung di dalam kernel Linux. Pada gilirannya, hal ini akan membantu kinerja beberapa game/aplikasi Windows yang berjalan di Linux melalui Wine dan dalam beberapa kasus berarti kinerja yang jauh lebih baik.
Elizabeth Figura dari CodeWeavers yang menerbitkan “permintaan komentar” (RFC) ke berbagai milis kernel Linux menjelaskan motivasi driver primitif sinkronisasi ini untuk menargetkan perilaku kernel Windows NT:
“Proyek Wine mengemulasi Windows API di ruang pengguna. Salah satu bagian tertentu dari API tersebut, yaitu primitif sinkronisasi NT, secara historis telah diimplementasikan melalui RPC ke proses” kernel “khusus. Namun, aplikasi yang lebih baru menggunakan API ini dengan lebih intensif, dan overhead RPC telah menjadi hambatan.
API sinkronisasi NT terlalu rumit untuk diterapkan di atas primitif yang sudah ada tanpa mengorbankan kebenaran. Operasi tertentu, seperti NtPulseEvent() atau mode “tunggu-untuk-semua” dari NtWaitForMultipleObjects(), memerlukan kontrol langsung atas antrean tunggu yang mendasarinya, dan penerapan antrean tunggu yang cukup kuat untuk Wine di ruang pengguna tidak mungkin dilakukan. Oleh karena itu, driver yang diusulkan ini mengimplementasikan antarmuka yang bermasalah secara langsung di kernel Linux. “Seri patch awal yang diusulkan adalah satu set yang terdiri dari 32 patch sementara 17 patch merupakan implementasi sebenarnya. Dengan patch driver kernel “NTSYNC” ini, terdapat manfaat yang berbeda-beda. Game Windows di Wine dari 21% dengan Metro 2033 menjadi 678% dengan DiRT 3! Umumnya hal ini membantu game dengan performa lebih dari 100%+ lebih baik.
Beberapa angka performa yang dibagikan Figura:
Ini bukanlah konsep yang sepenuhnya baru karena bertahun-tahun pengembang Wine telah mencari API sinkronisasi kernel Linux baru yang lebih baik daripada esync/fsync untuk menangani kebutuhan API objek sinkronisasi Windows NT. Akan sangat menarik untuk melihat di mana NT ini sinkronisasi pekerjaan driver primitif mengarah dan jika/ketika itu pada akhirnya akan diterima ke dalam kernel Linux arus utama untuk meningkatkan kinerja menjalankan game/aplikasi Windows di Linux. Meskipun seri ini diberi tanda “RFC” dan terdapat beberapa elemen desain terbuka dalam penerapannya, mungkin diperlukan beberapa revisi sebelum menentukan sesuatu yang dapat di-upstream.
Lihat seri patch ini untuk pekerjaan awal RFC. Di bawah ini juga terdapat presentasi LPC 2023 tentang topik tersebut.
Itulah berita seputar Driver Sinkronisasi Windows NT Diusulkan Untuk Kernel Linux – Kinerja Wine Lebih Baik, semoga bermanfaat. Disadur dari Phoronix.com.