.com可执行文件除了Windows之外的其他操作系统上运行吗?

时间:2011-05-19 14:06:05

标签: com x86

据我所知,可执行文件.com .exe等的扩展名适用于操作系统。它与底层ISA(无论是x86还是SPARC)无关。我对么? .com可执行文件只在Windows操作系统上运行吗? .com可执行文件是遗产吗?

3 个答案:

答案 0 :(得分: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 :(得分:1)

从技术上讲,可执行文件只是一个二进制文件。只有在Windows操作系统上才需要可执行文件的文件扩展名。否则你是对的。我不确定遗留的com究竟是什么,它可能会被正式弃用,但仍然会在现代版本的Windows中运行。

答案 2 :(得分:1)

.com和.exe通常是x86代码。虽然维基百科文章http://en.wikipedia.org/wiki/COM_file提到.com扩展名是以较早的cp / m出现的。

它们不是“故意可移植的”,尽管现在DOS和Windows模拟器存在于可以运行它们的其他平台上。

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