Linux 5.11 Supports Syscall User Dispatch Which Could Allow More Windows Games With DRM To Run Under Wine In The Future
![Exec wine.svg](/images/thumb/b/be/Exec_wine.svg/32px-Exec_wine.svg.png)
Many Windows games use direct system calls in their implementation of DRM and anti-cheat features. This is a problem because Windows API re-implementations like Wine do not get to see these syscalls and the Linux kernel has no idea what to do with them. The newly released Linux 5.11 kernel has a solution.
written by 윤채경 (Yoon Chae-kyung) 2021-02-21 - last edited 2021-02-22. © CC BY
"New Kernel To Change Linux Gaming Forever". Video by Brodie Robertson, licensed under Creative Commons Atribution
Linux 5.11 has a new feature called Syscall User Dispatch that allows the Linux kernel to redirect unsupported system calls back to programs running in user-space. The feature was developed by Collabora on the behest of the Valve corporation.
Syscall User Dispatch is useful when programs meant for other operating systems do direct system calls when they are running on Linux using compatibility layers like Wine. Wine does not get to see or handle these calls since they go directly to the Linux kernel. The result is that programs fail or crash since the Linux kernel has no idea what to do with these foreign system calls. Syscall User Dispatch solves this problem by making the Linux kernel send these calls back to user-space where Wine or other compatibility software can handle them.
The Linux kernel documentation describes this new feature as:
"Syscall User Dispatch brings the filtering of the syscall dispatcher address back to userspace. The application is in control of a flip switch, indicating the current personality of the process. A multiple-personality application can then flip the switch without invoking the kernel, when crossing the compatibility layer API boundaries, to enable/disable the syscall redirection and execute syscalls directly (disabled) or send them to be emulated in userspace through a SIGSYS."
Kernel support is only one of the pieces needed to make this work. Sending system calls to Wine or Proton is pointless unless and until they know what to do with them. There is no such support as of Wine 6.2. Valve did pay Collabora an undisclosed amount to develop the kernel-side support, so it is not unreasonable to assume that they have someone (probably CodeWeavers) working on Wine/Proton support. That would open the door for running a lot more Windows games with DRM and "anti-cheat" features on Linux on future Wine versions.
Enable comment auto-refresher
Intgr
Chaekyung
Chaekyung