按照惯例,我将对所有 Git 子系统分支的”-next “新代码进行扫描,这些代码将在下一个 Linux 内核合并窗口中引入,其中一个非常值得注意的新增代码刚刚排好队……Linux 6.10 将合并 NTSYNC 驱动程序,以便在内核中模拟 Microsoft Windows NT 同步原语,从而在 Linux 上更好地运行 Valve 的 Steam Play (Proton) 和 Wine 的 Windows 游戏和其他应用程序。
在过去的几个月里,我们在 NTSYNC 内核驱动程序上做了大量工作,以提高 Wine(Windows)游戏/应用程序在 Linux 上的性能。代码已经过多次修订,并取得了非常可喜的成果:
Wine 目前在用户空间模拟 Windows API,但在用户空间正确模拟 NT 同步原语一直很麻烦,而且会产生很大的性能开销。但现在有了 NTSYNC 驱动程序,情况大为改观。NTSYNC 模块为仿真 WIndows NT 同步原语提供了内核支持,并被内核公开为一个 misc 字符设备。
“ntsync 使用 misc 设备作为最简单、侵入性最小的 uAPI 接口。
该设备上的每个文件描述都代表一个独立的 NT 实例,旨在与单个 NT 虚拟机相对应”。
该驱动程序目前提供 NTSYNC_IOC_CREATE_SEM,用于匹配 Windows NT 系统调用 NtCreateSemaphore(),以及 NTSYNC_IOC_SEM_POST,用于匹配 Windows 上的 NtReleaseSemaphore() 行为。CodeWeavers 的 Elizabeth Figura 一直在领导这项工作,CodeWeavers 还与 Valve 和其他利益相关者进行了合作。
今天早上,我们非常高兴地看到 Greg Kroah-Hartman 将 NTSYNC 补丁编入了 char/misc 的 char-misc-next 分支。现在,这些补丁程序将提交给五月份开放的 Linux 6.10 合并窗口,然后在今年夏天作为稳定版亮相,除非最后一分钟出现任何问题或遭到 Linus Torvalds 的反对。
对于 Linux 玩家来说,今年是非常激动人心的一年,因为 NTSYNC 将成为主线,围绕 HDR 和其他显示改进的工作将持续进行,Wayland 也将取得进展,此外还有 Linux 硬件支持方面的常规进展,以及 2024 年的其他常见内核里程碑。
转自 Linux 6.10 To Merge NTSYNC Driver For Emulating Windows NT Synchronization Primitives – Phoronix