![Ubuntu 支持 Windows 应用程序吗?](https://linux22.com/image/1054044/Ubuntu%20%E6%94%AF%E6%8C%81%20Windows%20%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E5%90%97%EF%BC%9F.png)
我想知道 Ubuntu 操作系统是否可以运行 Windows 应用程序。
例如.exe,.dll文件。
或者像《使命召唤》这样的游戏。
无需下载任何应用程序,如wine
。
我猜测不是这样,但为了确保万无一失我还是会问一下。
答案1
嗯,向 Windows 新手解释 Linux 总是很难。第一个建议:忘掉 Windows。Linux 不是 Windows,也永远不会是 Windows,就像 Windows 不是 Linux,也永远不会是 Linux 一样。它们是不同的。就这样。现在来说说整个事情:
Linux 是一个类 Unix 系统。什么?类 Unix?Unix 是一个古老的操作系统,诞生于 60 年代,当时计算机非常庞大,人类都是人,编写自己的硬件驱动程序。Unix 有一个独特的文件系统方案和一套令人惊叹的实用程序。类 Unix 系统就是遵循这些特征的系统。如今 Unix 已经灭绝,但它的灵魂保留在许多类 Unix 系统中,例如 BSD、Apple 的 Mac OSX、Minix 和 Linux。我们可以说,当今大多数现有的操作系统要么基于 Windows NT,要么类 Unix。
Windows 系统需要文件扩展名来处理文件。它们根本不知道如何处理没有扩展名的文件。这些扩展名包括 .exe(二进制文件/可执行文件)、.txt(文本)、.bat(批处理脚本)等。
大多数类 Unix 系统不需要任何文件扩展名。除了依赖文件名之外,还有一种称为“MIME”(多用途 Internet 邮件扩展)的东西。它基本上是直接写在每个文件开头的一段代码。它告诉系统如何处理它。然而,我们有时确实使用扩展名只是为了告诉用户文件是 shell 脚本 (.sh) 还是文本文件 (.txt),尽管这不是必需的。
有一种东西叫做内核。内核是一种软件,它可以将软件语言“翻译”成硬件语言,反之亦然。它对任何操作系统都至关重要:没有内核,就没有操作系统。Windows 使用 NT 内核,而 Ubuntu 使用 Linux 内核(这就是它成为 Linux 发行版的原因)。开发人员在编写程序时使用一种编程语言,并且必须先将这种语言翻译成二进制(计算机语言),然后该程序才能运行。这个过程称为“编译”。但是每个内核都有自己的将程序翻译成计算机语言的方式,因此为 NT 编译的程序无法在 Linux 上本地运行,反之亦然。
有一个非常流行的类 Unix 操作系统程序叫做“Wine”。Wine 可以创建一个兼容层因此这些操作系统可以运行 Windows 程序。Wine 的作用是将程序的请求翻译成 Linux 语言。您可以通过软件中心或使用命令行在 Ubuntu 中安装它
sudo apt-get install wine
。右键单击要运行的 .exe 文件,然后单击“使用 Wine 打开”。请注意,某些应用程序可能无法运行。最后,但并非最不重要(实际上是最重要的),有总是Linux 中 Windows 程序的免费、开源、原生替代品和解决方案。别忘了这一点!!!
附言:抱歉提供了太多“语言”和“翻译”的例子,这是我发现的最好的解释方式。
答案2
事情没那么简单。虽然为 Linux 编写的软件通常不使用.exe
扩展名,而动态加载库通常使用.so
,稳定库通常使用 之后的版本,但有些软件确实使用.exe
或.dll
扩展名,尽管它们不一定是 Windows 程序。例如,用 C# 编程语言编写的东西将具有这些文件扩展名。
您无法在 Ubuntu(或其他版本的 Linux)上直接运行 Windows 程序。有些程序可能可以通过葡萄酒可以安装和使用的转换层。然而,每天都有越来越多的应用程序可用于 Ubuntu 和 Linux。