2011-05-21 52 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,但它似乎尚未达到任何不平凡的可用性级别。