2011-02-03 76 views
3

问题是如何在Linux系统上执行aout格式的二进制文件(我的意思是旧格式,例如在FreeBSD迁移到ELF之前使用它)。没有额外的编码是否有可能这样做(是否有一些现有的解决方案)?可能它应该是Linux内核的内核模块或补丁形式。另一种解决方案可能是用户空间启动器(甚至可能是运行时链接器)。我搜索了类似的东西,但无法找到某种东西。我还没有检查系统调用接口的差异,如果您对此有一些评论,欢迎您提供。如何在Linux上运行aout?

P.S.我知道为静态二进制编写用户空间启动器相当简单,但问题在于某些现有的解决方案。

+0

当我编译自己的内核时,我记得有一个内核选项来在内核中启用`aout`二进制格式支持。不过,我不知道这段时间是否被删除。 – 2011-02-03 08:52:53

回答

5

检查内核配置中的CONFIG_BINFMT_AOUT。

如果你的内核了/proc/config.gz:

zgrep CONFIG_BINFMT_AOUT /proc/config.gz 

在Ubuntu和其他:

grep CONFIG_BINFMT_AOUT /boot/config-$(uname -r) 
2

内核选项是CONFIG_BINFMT_AOUT,不知道这是否仍然是围绕还是必要的。