我发现 Windows 中的每个可执行文件都有 .exe 扩展名。但 Mac OS X 却没有。
Windows 执行 .exe 文件。那么 Mac OS X 执行什么类型的文件?
两种操作系统执行应用程序有何区别?
我甚至发现 Windows 安装程序具有相同的扩展名 .exe,但 Mac 安装程序的扩展名是 .dmg
您能与我分享有关 Mac 和 Windows 上的 .dmg 和可执行文件的了解吗?
答案1
扩展实际上并不会改变文件的类型,尽管它们通常会提示系统如何处理特定的项目。
DMG 不是可执行文件,而是光盘映像。它们是充当光盘的文件,通常包含应用程序的可执行文件和其他文件。双击其中一个时,系统会将其挂载,然后您就可以访问其中的文件。
Windows 和 OS X 都执行二进制可执行文件,尽管它们的格式不同。用户使用 GUI 时看到的内容的最大区别在于,在 Windows 上,您通常会看到 .exe 可执行文件,该文件位于包含程序使用的其他文件和信息的文件夹中。在 OS X 上,所有其他文件以及主要可执行文件都包含在扩展名为 .app 的“包”(实际上是一个文件夹)中。双击 .app 包将执行内部可执行文件并加载您的应用程序。
除了 GUI 之外,在实际的文件结构中,Mac 和 Windows 系统确实非常相似;这些差异主要在于系统如何向用户呈现事物以便在 GUI 中进行操作的问题。
答案2
.dmg
文件是通常用于安装 Mac 应用程序的磁盘映像文件。安装后,Mac 应用程序通常具有扩展名.app
,但该扩展名通常对用户隐藏。Mac 应用程序是作为单个文件显示的软件包。这使得将应用程序移动到新文件夹或新计算机非常方便。
答案3
您还可以执行任何将其权限设置为可执行的文件,当然前提是它实际上包含一个有效的程序。
答案4
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 可执行文件可以
- 旧式 *.com 格式的原始二进制指令
- NE*.exe 格式
- PE *.exe 格式
- MZ *.exe 格式
但根据 Windows 版本的不同,某些格式可能无法执行。
Windows 10 还能够运行 Linux ELF 二进制文件,并引入适用于 Linux 的 Windows 子系统
Windows 中的安装文件通常也以 *.msi 文件的形式提供,这种格式由Windows 安装程序,尽管严格来说它不是一个可执行文件