有人对以下问题有答案吗?
- 是否可以合理地期望支持 Solaris Sparc 的应用程序在 Solaris x86 上运行?
- 是否可以合理地期望支持 Solaris 10 的应用程序在 OpenSolaris 上运行?
- (这是重要的) Solaris Sparc 支持的应用程序是否可以合理地在 OpenSolaris x86 上运行?
一些背景:
我正在我的 x86 开发盒上设置一些新的虚拟机,并且正在查看我将使用的应用程序的系统要求。它表示该应用程序支持 Sparc 上的 Solaris 10。
它也受多种 Linux 风格的支持,所以我有一个后备方案,但这似乎是一个接触 Solaris(特别是 OpenSolaris)的机会。
我知道我不会得到支持,但就我现在正在做的事情而言,这并不是一个特别大的问题。
另外,我知道我的里程可能会有所不同,但我担心的是它是否值得一开始尝试。
如果它是为 SPARC 编译的仅二进制应用程序,它将无法在 x86 上运行。据我所知,OpenSolaris 和 Solaris 10 是跨架构的源代码兼容的,所以如果你有源代码,那么为 x86 构建它应该没有任何问题。
1. Solaris Sparc 支持的应用程序是否可以合理地在 Solaris x86 上运行?
如果它是与平台无关的格式(perl/python/shell/etc. 中的脚本或 Java 应用程序),那么很可能是的。如果它是编译后的代码,那么如果你有源代码并且可以为 x86 指令集重新编译,那么很可能是的。总是有例外和极端情况,但 Solaris 被设计为跨平台兼容源代码。Solaris 不包括任何类型的 ISA 二进制转换/仿真层,尽管用于编译的二进制文件。(Transitive 制造了 Apple 用于 x86 上的 PowerPC ISA 仿真的 Rosetta 软件,他确实出售了一段时间的 Solaris SPARC-to-x86 转换器,但后来 IBM 购买了它们。)
2. 是否可以合理预期支持 Solaris 10 的应用程序可以在 OpenSolaris 上运行?
除非它使用被声明为过时和删除的接口/库,或者那些被声明为未提交/不稳定并且碰巧改变不兼容性的接口/库,否则是的。OpenSolaris 旨在与 Solaris 10 和以前的 Solaris 版本二进制兼容。
3.(这是重要的) Solaris Sparc 支持的应用程序是否可以合理地预期在 OpenSolaris x86 上运行?
这几乎可以追溯到问题#1,它是什么类型的应用程序以及是否需要重新编译它。