从 solaris 迁移到 x86 上的 linux 指南
solaris 被认为是风格与 linux™ 最为接近的一种 unix®,但是对于程序的迁移来说,它们在诸如内存映射、线程以及对自然语言的支持等领域还是有很大区别的。这个移植指南可以为您在计划将程序移植到 linux/x86 上时提供一些建议,并且帮助您理解开发环境与体系架构之间的区别。 【相关文章:linux 管理磁盘贮存区】
转自:ibmdeveloperworks 【扩展阅读:将Linux加入到Win NT/2000】
【扩展信息:如何远程实现为Linux服务器添加新分区】内容:移植规划 开发环境 体系架构与系统特有的区别 结束语 参考资料 关于作者对本文的评价相关内容:将企业应用程序从 unix 移植到 linux用 oprofile 彻底了解性能从 solaris 向 linux on power 迁移指南迁移专题:linux订阅:developerworks 时事通讯将项目从 32/64 位 sparc 上的 solaris 迁移到 x86 上的 linux
级别: 中级
ajay sood
资深软件工程师, ibm global services, bangalore, india 2005 年 5 月 30 日solaris 被认为是风格与 linux™ 最为接近的一种 unix®,但是对于程序的迁移来说,它们在诸如内存映射、线程以及对自然语言的支持等领域还是有很大区别的。这个移植指南可以为您在计划将程序移植到 linux/x86 上时提供一些建议,并且帮助您理解开发环境与体系架构之间的区别。在各种风格的 unix 中,solaris 被认为与 linux 的风格最为接近。因此在开始将大型的基于 unix 的应用程序移植到 linux 上之前,首先要从 solaris 中挑选出那些依赖于操作系统的代码。即便如此,在那些依赖于体系架构的领域、内存映射、线程或一些特殊的领域(例如系统管理与自然语言的支持),它们之间还是有差异的。
本文对这些差异进行了讨论,并加以对比,从而能够对您从运行在 32/64 位 sparc 体系架构上的 solaris 迁移到运行在 x86 体系架构上的 linux 提供一些帮助。对于 solaris 来说,这种讨论是基于版本 8 及更新的版本的。对于 linux 来说,这种讨论着重于那些在基于 x86 处理器的服务器上可用的发行版本:suse linux enterprise server 9 与 red hat enterprise linux as v3 或 v4。
本文内容包括:
移植规划 开发环境(编译器,make 工具,等等) 依赖于体系架构或系统的区别移植规划
下面 6 个步骤为从 sparc 平台上的 solaris 成功迁移到 x86 平台上的 linux 提供了一个完整的路线图。如果您曾经将应用程序从一个操作系统移植到另外一个操作系统上,那么这些步骤可能就会听起来非常熟悉:准备 环境与 makefile 的变化 编译器修正 测试与调试 性能优化 打包并分发步骤 1. 准备
正确准备的关键是了解某些领域之间的差异,例如: 系统调用 文件系统的支持 依赖于机器的代码 线程 内存映射 系统调用 endianness在移植程序时,要确保有关的第三方包在目标平台上都是可用的。对于 32 位的应用程序来说,要考虑是否有必要迁移到 64 位的版本。还要确定在目标平台上使用哪种编译器。在基于 x86 的 linux 平台上,可以使用 gcc 作为编译器。
步骤 2. 环境与 makefile 的变化
在这个步骤中,您将设置开发环境,这包括确定环境变量,修改 makefile,并对环境进行必要的修改。在这个步骤之后,您应该准备好开始编译自己的应用程序了。在准备好进入下一个步骤之前,这个步骤可能会需要几次反复。
步骤 3. 编译
在这个步骤中,您将修正一些编译错误,链接错误,诸如此类。在能够得到一个干净的编译产品之前,这个步骤可能需要多次反复。步骤 4. 测试与调试
在应用程序成功编译之后,要对其进行测试,看看是否存在运行时错误。在测试时,有些领域可能会涉及客户机/服务器的通信、数据交换格式、数据编码的转换(例如从单字节编码转换为多字节编码)以及数据的永久保存。步骤 5. 性能优化
现在移植后的代码可以在目标平台上运行了。监视其性能,确保所移植的代码可以如我们所期望的一样工作;如果不能,就需要对性能进行优化。有两个很好的性能分析工具:performance inspector 与 oprofile。performance inspector 提供了一组工具来判断 linux 上的应用程序中的性能问题。... 下一页