基于 Linux® for IBM System z™ 的服务器整合有很多优势,但移植现有应用程序需要一些专业知识。本文针对如何组织移植项目提供了大致建议,包括关于大型机虚拟化、字节顺序以及专门针对 System z 的地址计算等一些的技术细节。本文还讨论了 System z 支持开发工具(编译器、链接器和调试器)的方式,也介绍了 IBM 的免费的 Migration Kit for Solaris OS to Linux。
基于 Linux for System z 环境的服务器整合有很多优势,但是天下没有免费的午餐。将现有的应用程序和服务器移植到 Linux for System z 环境不仅需要专业知识,还需要付出一定的努力。
本文对应用程序移植进行了概述,而不是一份详细的指南,希望进一步学习的人员也可以从本文中找到更详细的参考书目。
Migration Kit for Solaris OS to Linux 包含了几个可以帮助您移植应用程序的交互工具,以及一些技术文档(Guide to Application Porting from Solaris OS to Linux 和 IBM 红皮书® Solaris to Linux Migration: A Guide for System Administrators)。
在进行任何改动之前,先查看 Linux for System z 与您现在的操作系统和硬件平台之间的差别,获得相关信息。本文提到的所有问题(字节顺序、传递到编译器的选项等等)都有可能与移植有关。除了本文给出的参考书目外,还有一些非常好的信息来源,它们详细阐述了 Linux 与某个特定操作系统之间的差别。UNIX® to Linux Porting 这本书阐述了从专有的 UNIX 变体(比如 AIX®、Solaris 和 HP-UX)移植应用程序的常见问题。同时也详细介绍了 Linux 开发工具 (参见 参考资料 获得这篇文章或其他有用文档的链接)。
修改应用程序时不要一次性进行大量更改。在更改源代码之前要先更改构建环境。检查在 Linux 环境下需要的开发工具是否在当前平台也能用(GCC 和 GNU 提供的编译器集合列出了最重要的开发工具)。尽管可以利用各种搜索引擎进行查找,但最好的信息源可能是 GNU 和 GCC 的主页。
接下来,在当前的平台上构建应用程序,但要使用新的构建工具并运行一个完整的测试周期。这些步骤完成之后才可以将源代码移动到 Linux 并进行适当修改。其余步骤和其他软件项目一样:
- 进行大量的测试。
- 修复发现的 bug。
有几个 Linux 调试工具支持这个步骤并且能够进行性能调优。
|
幸运的是,向运行在 IBM System z 大型机上的 Linux 移植应用程序时需要考虑的问题相对较少。Linux 内核的官方接口是独立于平台的。
但有它的一个重要的不同之处就是虚拟化。个人计算机通常运行控制整个计算机系统的本机操作系统。相反, IBM System z 计算机支持虚拟化。每个操作系统都在一个虚拟环境中运行,因此可能会出现(实际上也会出现)几个不同的操作系统实例同时运行的情况。这个虚拟环境同时也产生了一些管理方面的问题。
在 IBM System z 大型机,Linux 通常在虚拟环境中运行。大 型机由逻辑分区(LPAR)构成。每个 LPAR 可以直接运行一个操作系统(比如 Linux 内核)或执行许多虚拟机(Virtual Machines,VM)映像,如图 1 所示。使用 VM 是为运行 Linux 创建虚拟环境的另一种方法。
图 1. 运行若干 LPAR 和 VM 的 System z 计算机的整体结构本文转自IBM Developerworks中国