2011-05-21 88 views
2

我想研究和比較elf,SPARC和PA-RISC的可執行文件結構。要研究英特爾上的OpenSolaris的SPARC可執行結構

要執行研究,我想在英特爾機器(Core2Duo)上安裝OpenSolaris。 但我有一個基本的疑問,它會工作嗎?

我知道SPARC有它自己的程序集 - 如果它可以工作或者是有效的思想,就會懷疑它。

我打算寫一些程序,反彙編它們,並用一些工具的幫助研究文件結構。

我不知道如何爲HP-UX(PA-RISC)執行所有這些操作。不知道任何用於PA-RISC的免費操作系統。

回答

1

您將無法在英特爾處理器上運行 Sparc或PA-RISC可執行文件。但是,如果您只想分析這些可執行文件的結構,您所需要的只是適合的開發工具。

我還沒有檢查,但我懷疑OpenSolaris附帶開發工具,能夠分析開箱即用的Solaris/sparc可執行文件。但即使是其他工具鏈也可以做到這一點。例如,GNU binutils(特別是他們使用的BFD library)支持許多體系結構,包括Sparc和PA-RISC。 (如果你使用GNU binutils的,請確保你得到一個完整的版本,也許標記爲「交叉編譯」,例如binutils-multiarchDebianUbuntu

1

SPARC:

我從來沒有在任何安裝的OpenSolaris。你可以考慮試試NetBSD:它至少和Solaris一樣運行SPARC機器,它使用ELF格式的可執行文件。源代碼也可以免費學習。

您需要了解ELF文件格式。我不記得在我想了解ELF的日子裏有什麼特別的文件,看起來谷歌可以提供大量的網站來解釋ELF。我對ELF的建議是編寫一個程序來讀取ELF頭文件,然後將它們以可讀的文本格式轉儲出去,儘管很多這樣的程序已經存在。

您還需要一個理解ELF的SPARC反彙編程序。我很久以前寫過一篇,今天可能會有相當好的工作。 http://www.stratigery.com/elf_dis.tar.Z

您可以在這裏下載有關SPARC的PDF文件:http://www.sparc.com/specificationsDocuments.html我推薦使用SPARC V8和V9體系結構手冊。

PA-RISC:

這是一個非常奇怪的架構,在文檔的方式很少。我相信PA-RISC是Apollo計算機(R.I.P)RISC架構,然後惠普在1990年或1991年購買了Apollo。堆棧增長減少,堆積增長,其他方面幾乎所有其他方面都有增長。它也有一個段寄存器,但它的工作方式與x86分段不同。

惠普確實是唯一能找到關於PA-RISC的地方。

1

有PA-RISC架構Linux,NetBSDOpenBSD的端口。

除非您使用完整模擬器,否則無法在x86系統上運行爲Sparc或PA-RISC編譯的代碼。 Qemu可以模擬一個基於Sparc的機器,並具有足夠的精度來運行Linux操作系統(但它不會很快:Qemu必須逐個解釋所有Sparc操作碼,並且這有很高的開銷,所以一個快速的PC 2011年可能會從1996年獲得Sparc工作站的性能)。有一個正在進行的項目,用於添加PA-RISC support to Qemu,但它似乎尚未達到任何不平凡的可用性級別。