我知道可执行文件.com .exe等的扩展名适用于操作系统。它与底层ISA(无论是x86还是SPARC)无关。我对么? 没有.com可执行文件只在Windows操作系统上运行? .com可执行文件是否遗留下来?可以在Windows以外的其他操作系统上运行.com可执行文件吗?
回答
.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。
从技术上讲,可执行文件只是一个二进制文件。它只是在Windows操作系统上,你需要一个文件扩展名的可执行文件。否则你是正确的。我不确定传统com的具体情况,它可能会被官方弃用,但仍有一些运行在现代版本的windows上。
.com和.exe的通常是x86代码。尽管维基百科文章http://en.wikipedia.org/wiki/COM_file提到了.com扩展以cp/m的形式出现,但这是较旧的。
虽然现在的DOS和Windows模拟器存在于其他可以运行这些模块的平台上,但它们并不是“有意移植的”。
像.py(python)和.jar(编译的java)这样的文件类型可以在任何CPU和任何操作系统上运行,只要它们安装了“平台”(分别为Python或JRE)。
- 1. MFC应用程序可以在Windows以外的操作系统上运行吗?
- 2. Windows操作系统可以同时运行2个CLR吗?
- 3. 如何在其他系统中运行可执行文件jar?
- 4. 以可访问模式运行的Windows操作系统?
- 5. solrcloud可以在只读文件系统上运行吗?
- 6. 什么可以在新的Chrome操作系统上运行?
- 7. 我们可以从sqlite3执行操作系统命令吗
- 8. 签名的Jar可以作为可执行文件运行吗?
- 9. COM组件可以在Windows以外的平台上使用吗?
- 10. 你可以在没有操作系统的计算机上运行JVM吗?
- 11. 可以在Windows XP上运行CoreCLR吗?
- 12. Spring3,Security3:系统可以在Windows上运行,但不能在Linux上运行java.lang.IllegalArgumentException
- 13. 本地系统下运行的Windows服务可以在运行它的计算机上创建新文件吗?
- 14. 可以在没有操作系统的情况下运行java程序吗?
- 15. AIR应用程序可以找出它正在运行的操作系统吗?
- 16. 在Mac上编译简单的C可执行文件以在Windows上运行?
- 17. 如何将可执行文件作为系统服务运行?
- 18. 我可以将本机操作系统安装作为虚拟机操作系统运行吗?
- 19. Linux内核可以作为ARM TrustZone安全操作系统运行吗?
- 20. 我可以在Android上运行Numpy(或其他Python包)吗?
- 21. 在其他系统(GCC)上安装带有链接库的可执行文件
- 22. Android,是否可以在任何类型的操作系统上运行Dalvik VM以运行Android应用程序?
- 23. 以系统身份运行COM服务
- 24. 我可以在Linux上动态加载可执行文件吗?
- 25. 是否可以在托管操作系统上运行“本机”代码?
- 26. C程序可以修改其可执行文件吗?
- 27. 运行可执行文件不会执行任何操作
- 28. 是否可以在AppHarbor上运行插件系统?
- 29. 在windows中运行ubuntu文件作为可执行文件
- 30. 可以直接执行.s文件吗?