首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有任何其他操作系统使用PE文件,或至少有机会在未来使用它?

是否有任何其他操作系统使用PE文件,或至少有机会在未来使用它?
EN

Stack Overflow用户
提问于 2012-02-23 07:49:37
回答 2查看 261关注 0票数 2

不管您使用哪个编译器编译.NET语言,结果都是一个托管模块。托管模块是要求CLR执行的标准Windows可移植可执行(PE)文件。“在将来,其他操作系统也可能使用PE文件格式”

是否有其他人开始支持PE文件的使用,或者将来至少有机会支持它?除了.NET之外,还有其他框架(J2EE等)会产生PE吗?体育的对应方是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-23 08:13:59

Notes

如果您真的想知道除了Windows支持.NET/托管可执行文件之外的其他哪些平台,那么在询问PE格式时,您的问题有点过于宽泛或有点误导。

PE文件格式基本上就是,一种文件格式。目前,它正被用于两个主要目的:

  1. 在Windows 32位和64位平台上(本机)可执行文件使用的文件格式。
  2. .NET (托管)可执行文件使用的文件格式。

下面的列表包括这两种用法的示例。更具体地说,只有Mono像上面第二种情况那样使用它(而不是在第一种情况下)。所有其他人都在上述第一种情况下使用它(而不是在第二种情况下)。

为什么微软为.NET选择PE文件格式?可能是因为他们拥有所有的基础设施(装载等)例如,使用.NET (在.NET上),不需要使用某种加载程序命令来启动应用程序,比如java.exe -jar ...python.exe ...,但是可以启动和启动它,因为它是一个本地可执行文件。

经过过度简化,.NET PE文件只包含对mscoree.dll的一个引用,该引用将作为托管应用程序加载和执行包含的mscoree.dll代码。

使用

ReactOS还应该使用PE格式(而不仅仅是.NET程序集的容器),因为它应该是与Microsoft (NT)兼容的二进制文件。

更新

实际上,当你谷歌"pe文件格式“时,出现的第一个链接是这篇关于PE格式的维基百科文章。它有一个关于文件格式的用法的部分,其中基本上包含以下内容:

  • ReactOS
  • BeOS R3和SkyOS (从历史上看,他们已经搬到ELF了)
  • MacOS X 10.5 (但与Windows不兼容二进制)

并不是真正意义上的真正的操作系统,但是:

  • 莫诺。在这里,应该注意到与其他用途的一两个不同之处,
    1. Mono (默认情况下,在Linux上可以将其注册为非本机二进制文件。)要求使用mono命令启动应用程序。因此,您可能会争辩说,在这种情况下,支持PE格式的并不是真正的OS (就像它不支持PHP脚本之类的东西一样)。但这确实是一个有争议的、可能是不相干的观点。
    2. 它只能处理“用于.NET”的PE文件。

  • 仿真器:葡萄酒,HX DOS扩展器

请注意,OS/2 (2.x及更高版本)不使用PE,尽管历史上它可能使用PE(考虑到它和NT的共同历史)。它使用线性可执行文件格式

票数 3
EN

Stack Overflow用户

发布于 2012-02-23 08:26:06

微软的.NET是关于Windows的,而不是跨平台的。Mono是CLR标准的跨平台实现,它可以在它支持的操作系统(Windows、OS等)上执行.NET程序集( PE格式)。

Mono编译器(C#/VB.NET)也会发出PE格式的程序集,以便与微软的.NET兼容。

体育同行太多了。Java使用JAR。Android使用APK。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9409023

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档