Wine(Windows 程序加载器)如何在 Ubuntu 上工作?

Pan*_*dya 11 wine

我知道我们可以在 Wine 的帮助下运行 Windows (.exe) 程序。

我想知道 Wine 如何.exe在 Ubuntu 上工作和运行程序。因为它们是两种不同的操作系统——Windows(封闭源代码)和 Ubuntu(Linux 开源)——并且它们的工作方式不同:Ubuntu 基于包管理(例如 apt、dpkg)。

为什么 Wine 很重要,“Wine 不是模拟器”是什么意思?

据我所知,它会创建~/.wine/drive_c/windows等目录。它的工作方式是否与 Windows 类似,并在windows/system32真正的 Windows 平台中使用相同的文件?

我想知道它的工作原理和重要性,因为为什么在 Ubuntu 上运行 Windows 程序(需要什么/为什么应该允许)?然而,它并不完全支持所有 Windows 软件和图形。

什么是像“Cross-Over”和“Play on Linux”这样的并行包?

osg*_*sgx 20

正如维基百科所说:http : //en.wikipedia.org/wiki/Wine_ (software )

Wine 是一个兼容层。它通过提供 Windows 程序调用的 DLL 的替代实现[4] 和一个替代 Windows NT 内核的进程来复制 Windows 的功能。

因此,WINE 是一组内部开发的库,其中一侧(对程序可见)是 Windows API,另一侧(对 linux 内核和 linux 库,如 glibc 和 libX11 可见)是 POSIX、Linux 和 X11应用程序接口。此外,还有一个特殊的windows程序加载器,它可以读取EXE文件,将它和所有需要的DLL库加载到内存中,将所有东西与内部Wine库和系统库连接起来并运行它。WINE 中也可以有几个帮助程序。

由于有两种不同的操作系统 windows(闭源)和 Ubuntu(Linux 开源)

Wine 提供了自己的各种 Window 系统 DLL 版本。Wine 还具有加载本机 Windows DLL 的能力。不支持尝试直接调用 Windows 内核。如果您的 Windows 程序发出 Linux 可以处理的调用,那么 Wine 会将它们传递给 Linux 内核。如果程序想要做一些 Linux 不能做的事情,那么 Wine 会将调用转换为 Linux 可以首先处理的事情。

两个操作系统(Windows 和 Ubuntu)都有不同的 API(和 ABI(应用程序二进制接口))。Windows 有 WinAPI,Linux 有 POSIX API,还有一些额外的 Linux 特定的 API、图形 API(如 X11)和自己的 Linux ABI。例如,如果您使用了错误的 API,则不同的 API 不允许您打开文件并从中读取。这种差异不在于包管理,而在于程序、库和操作系统内核之间的接口。

那么为什么葡萄酒很重要,“葡萄酒不是模拟器”是什么意思?

模拟器应该加载程序指令,解析它们并模仿它们的动作。因此,ARM 模拟器可以在 x86(英特尔)上运行。例如,有一个很好的qemu(名称被解码为“Quick EMUlator”),或者一个用 C 编写的较旧的 x86 模拟器 - bochs。模拟器通常模拟整个 PC,从 BIOS、处理器和 HDD 开始,然后启动到您安装在这台虚拟 PC 上的操作系统。

WINE 不是模拟器,因为它不解释目标二进制或模拟处理器的指令。它只是将程序加载到内存中,并提供从 WinAPI 到主机的 POSIX/Linux API(以及用于图形和鼠标的 Xlib,以及用于声音等的一些其他 API)的 API 转换。

为什么计划(或需要/为什么应该允许)在 Ubuntu 上运行 Windows 程序?

WINE 早在 Ubuntu 被创建之前就被设计出来了,该项目在 Solaris 的类似项目“Wabi”之后于 1993年启动的。能够启动在另一个操作系统上运行的应用程序是很有用的,特别是如果这个其他操作系统被广泛使用,并且有很多专门为它创建的软件(和游戏)不能直接从任何其他操作系统,如 Unix、Solaris 或 Linux。

然而它并不完全支持windows 和graphics 的几个软件。

WINE 无法准确实现所有 WinAPI(其中某些部分未记录)和所有需要的库。某些 Windows 程序正在使用未实现的 API 或库,因此它们无法与 WINE 一起使用。

什么是像 cross-over、play 在 linux 上的并行包?

Crossover是 WINE 的商业变体,具有更好的支持、一些辅助 GUI 工具(以方便安装某些软件)以及经过验证的 Windows 程序和游戏的兼容性列表。通常您应该向 CrossOver 的开发者 CodeWeavers 支付一些(40 美元)的钱,以便长时间使用该软件包并获得支持。CodeWeavers(小公司)通过重新发送所有补丁并支付给几个 wine 开发人员来支持 wine 项目。根据维基百科:

CrossOver 由 CodeWeavers 开发,基于开源的 Windows 兼容层 Wine。CodeWeavers 修改 Wine 源代码,打上兼容性补丁,添加更人性化的配置工具,并提供技术支持。CodeWeavers 使用了多个 Wine 软件开发人员,并为 Wine 贡献源代码。