为什么 wine“不是一个模拟器”?

为什么 wine“不是一个模拟器”?

Windows 应用程序和 Linux 应用程序之间的区别不就是应用程序运行时所请求的库吗?(见上一个问题) 那么,如何才能通过“非模拟器”的软件让 Windows 应用程序在 Linux 系统上运行呢?

答案1

从这里(存档版本,因为该 Wiki 页面目前缺失)

Wine 不是那种模拟器

当用户想到模拟器时,他们会想到 Dosbox 或 zsnes 之类的程序。这些应用程序以虚拟机的形式运行,速度很慢,必须模拟每个处理器指令。Wine 不进行任何 CPU 模拟 - 因此得名“Wine 不是模拟器”。

有些人认为 Wine 在系统之上引入了额外的层,因此 Windows 应用程序运行起来会很慢。虽然从技术上讲 Wine 确实如此,但在这方面 Wine 与任何其他软件库并无不同;即使是较新版本的 Windows 也必须加载额外的资源来支持较旧的应用程序。

重要的是,Wine 和 Unix 的组合有时比 Windows 本身更快。当系统具有良好的驱动程序并且应用程序没有暴露任何与性能相关的错误时,情况尤其如此。

答案2

模拟器的作用与其他东西完全不同。这些应用程序通常包含原始应用程序或平台的所有内容。

然而,Wine 充当了翻译器的角色,它只实现 Windows 所需的功能,并将其翻译成 X-Windows 可以理解的指令。

一个更实际的例子是虚拟机。当使用虚拟机在 Linux 上运行 Windows 时,虚拟机会模拟 Windows,因为会加载完整的操作系统,并且不会与主机直接交互。

然而,如果需要的话,Wine 会直接与 X-Windows 对话以获取某些指令,这就是为什么应用程序需要一段时间才能在 Wine 中运行。

更多内容请见维基百科这里

答案3

Wine 并不模拟 Windows,而是非 Windows 操作系统的 win32 API(或其包装器)。

答案4

Wine 可在 Linux 上运行。(Linux 上为 exe + dll)Cygwin、Mingw、MSYS2 或 WSL1/2 可在 Windows 上运行(./configure、sh ld 等)Darling 可在 Linux 上运行(Linux 上为 app + dylib)

Karton 可在 macOS 上运行(sh,无需在 macOS 上安装应用程序扩展等)

CoLinux 不能运行,只是 Windows 的模拟器,如 Qemu 或 VMWare Player

Parallel Desktop 是类似 Qemu 的 macOS 模拟器。

相关内容