2011-05-19 149 views

回答

4

.com,.exe扩展名告诉DOS或Windows操作系统该文件是可执行文件。文件扩展名(.com,.exe)本身并不会告诉操作系统底层指令集是什么。对于扩展名为.exe的Windows可执行文件,指令集在文件的前几个字节(PE标头)中指定。

最初的DOS .com文件只包含一组操作系统(即DOS)将加载到固定地址并从第一条指令执行的指令。这些类型的.com文件是“传统”的。如果没有仿真,它们不能在现代操作系统上运行。这种类型的.com文件可以在CP/M和更高版本的DOS上找到,但只能在它们最初设计的操作系统和指令体系结构上运行。您可以通过仿真在其他操作系统上运行它们。例如dosbox在Linux上运行DOS .com文件。 DOS的更高版本,然后是Windows查看.com文件以查看它们是否真的是LE/PE可执行文件。如果它们是执行它们,就好像它们具有.exe扩展名一样。 Visual Studio提供一些带有.com扩展名的文件。有关详情,请参阅http://blogs.msdn.com/b/oldnewthing/archive/2008/03/24/8332730.aspx

1

从技术上讲,可执行文件只是一个二进制文件。它只是在Windows操作系统上,你需要一个文件扩展名的可执行文件。否则你是正确的。我不确定传统com的具体情况,它可能会被官方弃用,但仍有一些运行在现代版本的windows上。

1

.com和.exe的通常是x86代码。尽管维基百科文章http://en.wikipedia.org/wiki/COM_file提到了.com扩展以cp/m的形式出现,但这是较旧的。

虽然现在的DOS和Windows模拟器存在于其他可以运行这些模块的平台上,但它们并不是“有意移植的”。

像.py(python)和.jar(编译的java)这样的文件类型可以在任何CPU和任何操作系统上运行,只要它们安装了“平台”(分别为Python或JRE)。

相关问题