Mac OS X和Windows中的可执行文件


11

我已经看到Windows中的每个可执行文件都具有.exe扩展名。但是Mac OS X没有相同的功能。

Windows执行.exe文件。那Mac OS X执行哪种文件呢?

两种操作系统的应用程序执行之间有什么区别?

甚至我发现Windows安装程序都具有相同的扩展名.exe,但在Mac上安装程序具有扩展名.dmg

您能否与我分享有关Macs和Windows上的.dmg和可执行文件的知识?

Answers:


18

扩展名实际上不会更改文件的类型,尽管扩展名通常会向系统提示对特定项目的处理方式。

DMG不是可执行文件,它们是光盘映像。它们是充当光盘的文件,通常包含可执行文件和应用程序的其他文件。当您双击一个文件时,系统会挂载它,然后您就可以访问其中的文件。

Windows和OS X都执行二进制可执行文件,尽管它们的格式不同。用户在使用GUI时所看到的最大区别在于,在Windows上通常会看到.exe可执行文件,该文件位于包含其他文件和程序使用信息的文件夹中。在OS X上,所有其他文件以及主要可执行文件都包含在扩展名为.app的“捆绑包”(实际上是一个文件夹)中。双击.app捆绑包将执行内部可执行文件并加载您的应用程序。

在GUI之外,在实际的文件结构中,Mac和Windows系统确实非常相似。这些差异主要是关于系统如何向用户呈现事物以在GUI中进行操作的问题。


Mac还执行.pkg(程序包)文件
Joshkunz

2
.pkg文件是包含可执行文件和其他安装程序数据的压缩文件束,类似于旨在用于安装的完全包含的压缩.app。
phoebus

3
实际上,.pkg文件是Installer.app的文件。如果它们实际上作为单独的程序运行,则它们不是真实的.pkgs。
Chealion

没错,在这一点上,我本可以更清楚一些。
phoebus

@phoebus-很明显,.pkg是文件,例如我可以为用户提供从我的网站下载的文件,而不是文件夹,例如我不能为用户提供从我的网站下载的文件?
ArtOfWarfare


4

.dmg文件是通常用于安装Mac应用程序的磁盘映像文件。安装后,Mac应用程序通常具有扩展名.app,但是该扩展名通常对用户隐藏。Mac应用程序是程序包,对用户显示为单个文件。这使将应用程序移动到新文件夹或新计算机非常方便。


0

Windows中的每个可执行文件均具有.exe扩展名

这是不正确的。在DOS中,有2个可执行文件扩展名:*.COM*.EXE。Windows继承了这些,因此它也支持* .com和* .exe。请注意,*。exe只是包含各种可执行文件格式的“容器”

如果运行不带扩展名的命令,Windows将在%pathext%环境变量中附加扩展名并进行搜索,直到找到具有该名称的第一个文件。变量的默认值是这样的

>echo %pathext%
.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC

如您所见,Windows将运行其他可执行文件类型(无扩展名),但是其中大多数是脚本而不是二进制可执行文件

但是,Windows 实际上并没有使用文件扩展名来确定文件格式。MZ(MZ格式的签名)开头的所有文件都将被视为可执行文件

通过引入 Windows 10还具有运行Linux ELF二进制文件的能力

Windows中的安装文件通常也以* .msi文件的形式提供,该文件是Windows Installer读取的格式,尽管严格来说,它不是可执行文件。


1
MSI和JS文件是可执行文件,但不是可执行文件。MSI是一个安装程序包:双击它,msiexec.exe启动并打开它,就像可以使用Paint打开JPEG一样-它不会使它们成为可执行文件。因此,使用JS WScript.exe来打开它们(请检查注册表中的HKCU分支)。BAT和CMD介于两者之间,有人可能会争辩说它们是否可执行-Explorer本身支持它们,但仍必须对其进行解释。
gronostaj

这样,.NET exe文件也不是“可执行文件”,因为它们只能在.NET框架下运行,而不能直接由CPU运行
phuclv 2013年

1
这取决于您如何定义“可执行性”。我相信MSI毫无疑问是不可执行的,因为它们只是针对安装程序进行了优化的存档,但是在这种情况下并不重要。它们比ZIP更具可执行性。任何类型的脚本都在“可执行性”的边缘,因为它们需要解释器。我不知道有关如何执行.NET EXE的详细信息,但我想说它们与CLASS相同-它们包含某种机器代码(需要翻译/解释,但仍然需要)。
gronostaj
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.