gpt4 book ai didi

elf - 可执行格式之间有什么区别?

转载 作者:行者123 更新时间:2023-12-04 18:00:16 26 4
gpt4 key购买 nike

PE之间有什么主要区别吗? , ELFMach-O ?我的意思是,一个人有其他人没有的能力吗?一个可以携带更多的信息吗?或者它们只是相同信息的不同容器格式?
我对此不是很了解,但在我看来,它们都带有文本(代码)部分、已初始化和未初始化数据部分等,以及重定位、符号、字符串、导入和导出表。

我不是在问细微的差异,例如格式 X 可以拆分数据部分,或者格式 Y 可以在硬件中更有效地解析。
我问的是主要差异,以至于它们可能会影响对新通用操作系统的选择。或者,如果一个平台具有适用于所有 3 种格式的加载程序,那么只需“重新打包”这些部分并将表重写为新格式,就可以轻松地从一种格式转换为另一种格式。

最佳答案

Mach-O 来自 1985 年的 CMU Mach。它被 NeXT 和苹果公司采用。 PE 来自 1993 年的 Microsoft Windows NT 3.1。ELF 来自最迟 1993 年的 ATT 的 System V。这些是旧的 32b 格式,后来扩展到 64b。添加了字段并扩展了枚举,但它们的结构保持不变。它们的主要区别在于 Mach-O 是 OSX+iOS 的基础; PE 是 Windows 的基础; ELF 是 Linux、FreeBSD 的基础,.... ELF 也支持 Windows 与 Linux 的 Windows 子系统。每个都支持动态库,PIE,ASLR,...。您不会根据功能选择一个而不是另一个,而是您会选择一个目标,然后选择您的对象/可执行文件格式。 GNU ld 链接器处理所有三种格式,实际上 OSX 链接器是 ld 的 fork 版本。

关于elf - 可执行格式之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36293052/

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