2011-02-03 79 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,不知道這是否仍然是圍繞還是必要的。