已经无法忍受 Microsoft 不断警告你 Windows 7 不安全,催促你升级到 Windows 10 吗?如果你真的只为了单单一两个特定 Windows 应用程序而非得使用 Windows,最新发布的 Wine 2.0 可能是你更好的选择。

Wine 是一套以 LGPL 授权发布的开源项目,名称来源是 Wine Is Not an Emulator 的递回幽默式缩写,功能是在 X86 / X86-64 的硬件平台上,让 Unix / Linux 的操作系统也可以执行 Windows 的应用程序。Wine 跟模拟器最大的不同,就是如同名称来源,它真的不是模拟器,而是在泛 Unix 系统上,以函式库的方式实作 Windows API,将 Windows API 转译成 POSIX 。这意味着你不用安装 Windows 系统,也能在 macOS、GNU / Linux 桌面和 BSD Unix 系统上高效能执行 Windows 应用程序。毕竟模拟器是“模拟一个硬件”的运作行为,例如把个人电脑(8086 系列的 CPU )模拟成 68000 CPU 系的游乐器,透过模拟器要跑 Windows 程序,你还是要在模拟器下安装真正的 Windows,而透过模拟硬件来执行效能也很差,何苦要在 80X86 的 Mac 上模拟 80X86 的 Windows 呢?

既然是同样的硬件,GNU / Linux 跟 Mac 要执行 Windows 程序,只要在软件层面转译 API,效能自然会好得多。

注 1:“递回”是指“Wine”Is Not an Emulator 里面的 Wine 还可以不断展开,例如:{[(Wine Is Not an Emulator) Is Not an Emulator] Is Not an Emulator}Is Not an Emulator……注 2:POSIX 可移植操作系统界面:所有 Unix-like 操作系统 API 实作的共通标准,而 MS Windows 则只有实作一部分。

当然事情做起来不会那么简单。相较 POSIX 的开放规格,Windows 的 api 可是不透明的黑箱,只有 Microsoft 公司的职员才知道其内部实际运作,要合法做到跟 Windows 高度相容,外人只能用大量猜测与反覆 try and error 来加以实作。Wine 项目到今年为止,已经有 24 年的历史,笔者自离开 Windows 平台到现在,也已经使用 Wine 十多年了,一路走来,从刚开始很早期的 0.XX beta 版本只能正确运作少数 Windows 程序,到今日 Wine 2.0 了,对 Windows 的兼容性终于达到一个里程碑,甚至对早期 Windows 95 时代程序的兼容性,可能比现代的 Windows 还要更好(Wine 可针对软件,微调模拟不同时代 Windows 操作系统的行为),今昔不可同日而语,这都要向 20 多年来许许多多投入的志愿者致敬(笔者其实也是回报志愿者之一,是 Vocaloid2 软件的维护人,不过跟他人比起来,贡献微不足道就是了)。

Wine 2.0 的进化细节

这次 2.0 版是大规模更新的版本,包括 15 大项的改进和新功能,还有修正超过 6,600 个错误。最重要的亮点是支持 Microsoft Office 2013、支持 64 位的 macOS、DirectX 支持的大提升以及 CJK 字形处理更完善,也就是对中文游戏支持性更好了。

更详细的改良摘录如下:

更多 DirectWrite 功能被实作:如下划线、字体回退支持、改进字体指标分辨率、PDF 文件中的字体嵌入、Unicode 9.0.0 支持、支持 EUDC 造字档。

图像方面:macOS 上可以驱动 Retina 渲染模式、描绘效能提升。

Direct3D:更多 Direct3D 10 与 11 的机能实作、支持更多显卡、支持 Direct3D 11 的特色功能、对 D3DX(Direct3D 扩展)9 效果框架的全面支持、Shader Model5 更多指令实作完成。

音讯、视频:支持 GStreamer 1.0 多媒体框架、让 DirectSound 支持 5.1 / 4.0 声道降混音到双声道立体声。

使用者界面:剪贴簿重新实作机能改善(包含复制 html 文字)现在有更好的兼容性、Drag & Drop 机能变更流畅、支持第四版 System Tray、比较少见的桌面分辨率如 640×400 或 1,280×960 也可支持了。

网络:Gecko 引擎更新为 Firefox 47、支持 Web Service API、支持 IDN 名称解析、可正确处理长 URL、Javascript 效能改善。

64 位支持:支持 macOS 64 系统、Mono 引擎(开源 .net)也支持 64 位系统。

人机界面:实作了新的驱动架构,让更多的人机界面设备(包含 USB 设备)也可以透过 wine 正确的操作 Windows 应用程序、摇杆按钮对应调整与力回馈效果改善。

版号:从 2.0 开始,正式版的版号会是 2.0.1、2.0.2、2.0.3……开发版的版号则会是 2.1、2.2、2.3,去掉中间那个 0,而下一世代的大更新则是 3.0。

目前已经有 Ubuntu、Debian、Fedora、Mageia and macOS等二进位档可以下载,也可以下载源代码,如果你不想卷袖子辛苦调整 Wine 的设定来执行特定程序,也可以找客制化的 Wine:PlayOnLinux(专注游戏的) 与更商业化的CodeWeavers CrossOver(很多 Wine 开发者参与,更新快速)。

Categories: 软件癖

Leave a Reply