Wine(全称“Wine Is Not an Emulator”)是一款能够在多种POSIX兼容操作系统上运行Windows应用程序的开源兼容层。它不通过模拟或虚拟化技术,而是将Windows API调用动态转换为POSIX调用,从而实现在Linux、macOS、BSD等系统上运行Windows程序。
基本信息
| 项目 | 内容 |
|---|---|
| 名称 | Wine(Wine Is Not an Emulator) |
| 开发者 | Bob Amstadt(发起人)、Alexandre Julliard(主导开发者)及Wine社区 |
| 首次发布 | 1993年7月4日 |
| 当前稳定版本 | 11.0(2026年1月13日) |
| 编程语言 | C语言 |
| 支持平台 | Linux、macOS、BSD等类Unix系统 |
| 许可协议 | GNU LGPL 2.1或更高版本 |
| 官方网站 | https://www.winehq.org |
概述
Wine项目始于1993年,由Bob Amstadt发起,最初目的是在Linux上运行Windows 3.1应用程序。此后由Alexandre Julliard主导开发,并于2008年发布首个稳定版v1.0。
“WINE”原为全大写写法,是 “Wine Is Not an Emulator” 的递归缩写。这一名称强调了Wine与其他虚拟化方案的本质区别:它不是模拟Windows内部逻辑,而是重新实现Windows API。
Wine采用黑盒测试逆向工程的方式开发,以避免版权问题。其源代码完全公开,免费发行。
核心原理
Wine通过提供一个兼容层来将Windows的系统调用转换为与POSIX标准兼容的系统调用。具体而言:
-
API转换:将Windows API调用动态翻译为POSIX调用
-
运行库替代:提供Windows系统运行库的替代品
-
系统组件替代:提供注册表、Windows Installer等系统组件的替代实现
-
DLL加载:支持加载本地系统DLL文件
由于Wine对Win32 API的实现与微软原生实现存在差异,应用程序在Wine下运行时可能会出现行为、兼容性或性能方面的问题。
主要版本分支
| 版本 | 说明 |
|---|---|
| wine(开发版) | 最新开发版本,包含最新功能和修复 |
| wine-stable(稳定版) | 经过充分测试的稳定版本 |
| wine-staging(测试版) | 包含尚未集成到开发版或稳定版的补丁和功能 |
相关工具与生态
Winetricks
Winetricks是一个跨平台的Wine辅助工具,用于解决Wine下的常见兼容性问题。它本质上是一个独立的脚本文件,主要功能包括:
-
调整Wine设置
-
下载并安装缺失的Windows DLL和字体
-
自动安装各类应用程序并套用所需的调整
-
修改Windows注册表
Winetricks由Wine开发者Austin English维护,Wine项目会接受Winetricks中特定类型的Bug反馈。它提供了命令行和图形界面两种使用方式。
Proton
Proton是Valve与CodeWeavers合作开发的兼容层,基于Wine分支构建。它以 “Steam Play” 之名集成到Steam客户端中,让Linux用户能够运行Windows游戏。
Proton集成了多个性能优化库,包括将Direct3D转换为Vulkan的DXVK和VKD3D-Proton。ProtonDB是一个非官方的社区网站,收集用户回报的Proton兼容性信息。
衍生与商业产品
-
CrossOver:CodeWeavers推出的商业版Wine
-
Cedega:专注于游戏的商业Wine衍生品
-
统信Windows应用兼容引擎:deepin团队推出的产品
-
Winlator:基于Wine和Box86/Box64的Android应用,可在安卓设备上运行Windows x86_64应用
在Galgame中的应用
Wine在视觉小说(Galgame)玩家群体中被广泛用于在非Windows系统上运行PC版游戏。
基本配置流程
-
安装Wine:通过各发行版的包管理器安装(如Ubuntu/Debian使用
sudo apt install wine) -
配置Wine:运行
winecfg打开配置界面 -
安装依赖:使用Winetricks安装缺失的Windows库和运行时组件
-
安装字体:将日文/中文字体复制到Wine容器的字体目录(
~/.wine/drive_c/windows/Fonts/) -
运行游戏:使用
wine game.exe命令启动
常见问题与解决
| 问题 | 解决方案 |
|---|---|
| 文字显示为方框或问号 | 安装CJK字体(如MS Gothic、SimSun等)到Wine容器 |
| 视频无法播放 | 安装32位GStreamer插件(如lib32-gst-plugins-ugly) |
| 游戏无法启动 | 使用Winetricks安装对应的DLL和运行时组件 |
安全注意事项
-
非隔离环境:Wine不会将自身与系统隔离。如果用户账户可以访问某个文件或资源,Wine中运行的程序同样可以访问
-
恶意软件风险:Wine可以运行Windows恶意软件,请谨慎运行来源不明的程序
-
建议:可考虑在单独的用户账户下运行Wine,或使用沙箱工具进行隔离
外部链接
-
WineHQ AppDB(应用程序兼容性数据库)
-
ProtonDB(社区兼容性报告)



评论1