gpt4 book ai didi

c - 不同二进制格式之间的差异

转载 作者:行者123 更新时间:2023-11-30 20:25:26 26 4
gpt4 key购买 nike

COFF、ELF、a.out 等二进制格式之间有什么区别,为什么存在这么多不同的格式?

它们必须是一系列指令及其参数(由 ISA 指定)。因此,只要处理器相同,就可以在计算机之间使用相同的二进制文件(目前需要兼容 ABI)。

最佳答案

简短回答:历史和发展。请参阅feature comparison在维基百科。

更好的答案:您的假设是错误的。它绝对不仅仅是代码和初始化变量;需要更广泛的功能。不存在通用的可执行格式,也没有最佳的可执行格式,因为不同情况下所需的功能有所不同。通常,我们也希望保持向后支持;如果不需要的话,为什么要从已知的工作解决方案切换到新的解决方案呢?因为新的“通用”是愚蠢的(实际上是愚蠢的,如果你考虑到单一文化在现实、不断变化的世界中表现得多么糟糕)。

目前,ELF格式是我们所拥有的最接近“通用”格式,并且被许多当前操作系统所使用——尽管 Windows 和 Mac OS 基本上由于历史原因而使用自己的格式。 (Windows保留了向后可移植性,后来改用了基于COFF的“可移植可执行文件”格式,COFF本身并不那么可移植;Mac OS X使用Mach-O格式,与其内核直接相关。)

关于c - 不同二进制格式之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29022682/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com