作为在Linux及其他平台上运行Windows应用和游戏的关键兼容层,本次更新最引人注目的变化是引入了对Linux系统调用用户分发的支持,解决了多个热门游戏长期存在的兼容性崩溃问题。

Wine的NTDLL实现合并了通过SyscallUserDispatch在Linux上进行系统调用模拟的功能。
SyscallUserDispatch是Linux5.11及以上内核版本的一项特性,允许将特定的非原生系统调用重定向回用户空间,由Wine等兼容层处理。通过这一机制实现系统调用模拟,相比替代方案可获得更好的性能和更简洁的设计。
实际上,Linux5.11内核早在2021年就已发布,目前支持该特性的内核已相当普及。这项特性最初就考虑到了Wine/Proton的使用场景,不过至今才被Wine主线收入。
这一特性的引入对终端用户的意义在于,它解决了因游戏或应用程序直接使用x86_64SYSCALL指令而导致的崩溃问题。
根据Wine的Bug追踪系统,受影响的知名游戏包括《底特律:变人》《荒野大镖客2》以及《明日方舟:终末地》等。IT之家注意到,相关的Bug反馈自2019年就已提交,直到今天的Wine11.5发布才正式关闭。
除了系统调用用户分发功能外,Wine11.5还在构建系统中新增了对C++的支持,打包了ICU库,并对VBScript进行了多项兼容性修复。过去两周内,共有22个已知Bug得到修复。
Wine11.5主要更新内容:
构建系统新增C++支持
打包ICU库
支持Linux系统调用用户分发
多项VBScript兼容性修复
各类Bug修复(共计22项)
部分Bug修复:
修复了因直接使用x86_64SYSCALL指令导致的多款游戏崩溃问题
修复了时间/本地时间函数的性能回归问题
修复了文件对话框在.NET应用中的崩溃
修复了VOCALOID6启动时因未实现wminet_utils存根而崩溃的问题
修复了CertCreateCertificateChainEngine在rustls-platform-verifier中的参数无效问题
修复了《ClipStudioPaint》中延时导出功能失败的问题
修复了《Stratego》(1997)启动时“CreateScalableFontResource”失败的错误
修复了多个MSXML3相关问题
本文内容由互联网用户自发贡献,该文观点仅代表作者本人。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 203304862@qq.com
本文链接:https://www.jinnalai.com/jiaodian/817429.html
