ELF标准化现状咨询及OS开发适配ELF规范的选择疑问
ELF格式标准化状态与实现指南
一、ELF的标准化背景
早年的86open项目曾试图为Unix及类Unix系统确立通用二进制格式共识,最终选定ELF作为标准,成员在SCO推动ELF在非原生系统落地后项目解散,当时明确“Linux ELF为业界选定格式”。但这并不意味着Linux成为ELF的官方标准化主体。
二、谁负责ELF的标准化?
目前ELF没有单一的官方标准化机构:
- 核心基础规范源自SCO SystemV gABI(Generic Application Binary Interface),其2012年的开发快照是目前可获取的最新官方基础规范,包含64位系统相关的更新。
- 1995年的TIS ELF规范因未涵盖64位变更,已基本过时,不再作为主流参考。
- Linux在SystemV gABI的基础上,添加了不少专属扩展,这些内容记录在Linux的
elf(5)手册页中,属于Linux生态下的实践补充,并非通用标准,但因Linux的市场占比,这些扩展被广泛使用。
三、操作系统开发时该遵循哪个规范?
如果你的目标是兼容主流Linux生态:
- 必须以SCO SystemV gABI为核心基础,确保与通用ELF格式兼容;
- 同时需要参考Linux
elf(5)手册中的扩展内容,否则无法正确运行Linux特有的ELF二进制(比如某些特殊段、标记或ABI细节)。
如果你的目标是打造通用Unix-like系统:
- 优先严格遵循SystemV gABI,保证与传统Unix系系统的ELF二进制兼容;
- 若需要适配Linux生态的软件,再选择性添加
elf(5)中的必要扩展。
内容的提问来源于stack exchange,提问作者rgz
相关产品推荐
相关产品推荐

