我知道可執行文件.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文件嗎?