科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道将Unix应用程序移植到Linux系统详解(1)

将Unix应用程序移植到Linux系统详解(1)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

开放性意味着应用程序灵活性:Linux 是真正的开放系统,这使应用程序的可移植性成为现实。在很多情况下,一次简单的重编译就能把应用程序带入 Linux。在优化您的开发和部署平台时,这种快速移植给您真正的灵活性

作者:looho 来源:赛迪网 2007年9月11日

关键字: 移植 操作系统 Linux unix

  • 评论
  • 分享微博
  • 分享邮件
 

介绍

您知道 Linux® 现在已是世界第二的服务器操作系统吗?今天,您的应用程序在 Linux 上运行吗?如果不是,那么本文将给您些提示和技巧,在您把应用程序移植到 Linux 的时候为您提供指导。本文依据的是软件工程师的经验,这些工程师来自独立软件供应商(Independent Software Vendors,ISV)和全世界的 IBM® 实验室,他们参与了许多把应用程序移植到 Linux 的项目。

首先我们描述 Linux 的特征和它在开发和管理应用程序中的具体价值。接着,我们将回顾重要问题,给出包含移植的主要步骤的移植指南。最后,我们以 IBM ~ zSeries™ 为例,为您演示从一个 Linux 平台移植到另一个平台是多么的容易。(zSeries 这个词指 S/390® 和 zSeries。)

Linux 的特征和价值

开放性意味着应用程序灵活性:Linux 是真正的开放系统,这使应用程序的可移植性成为现实。在很多情况下,一次简单的重编译就能把应用程序带入 Linux。在优化您的开发和部署平台时,这种快速移植给您真正的灵活性。

多种硬件支持意味着平台灵活性:Linux 几乎可在所有已知的处理器上运行,无论是 RISC 还是 CISC,32 位还是 64 位。它涵盖全部类型的计算机,从大型机服务器(IBM ~ zSeries)到 PowerPC®、Sun® UltraSPARC、Alpha、PA-RISC 和 Intel 处理器,往下还有个人数字助理和嵌入式系统。特别是所有的 IBM ~ 品牌服务器都支持 Linux。

源代码的可用性意味着自己动手的灵活性:与多数以二进制形式发行的商业软件不同,Linux 内核的源代码是可以获得的。您可以拿到源代码,然后修改和重编译它,以满足您的特定要求。调试和解决问题或增加新的特性不再依赖任何供应商。您可以自己作出需要的更改,只要它们符合 GNU General Public License 的规定。

严肃的设计意味着安全性:Linux 安全性是从内核上构建的,由于实现它的代码要接受成千上万的开发者的检验,所以弱点会被及早地发现。Linux 中建有许多路由和防火墙功能。

流行意味着存在技能:因为 Linux 在大学和学院中流行,所以多数新的毕业生有 Linux 经验。您几乎可以在任何城市的 Linux 用户组中找到该地区能够熟练应用 Linux 的人,而 Web 站点和因特网新闻组仍然是 Linux 使用指南信息和非正式技术咨询的一种宝贵而有效的来源。

开始前需考虑的重要问题

移植到 Linux 可能是容易的、简单的和直接的,特别是当您的 UNIX® 应用程序的编写遵循公共的开放的标准。如果您认为移植到 Linux 是有吸引力的,那么您需要分析移植中涉及的潜在花费和风险及减小它们的方法。

迁移会涉及巨额初始投资吗?

成本 ― 移植将涉及巨大的时间、人员和金钱的初期投入吗?该项目会冻结所有的其它新工作并消耗整个团队的资源吗?需要提前支付大量资金费用和再培训费用吗?这是不是冒着极大风险的提议:一旦开始,要么完成,要么完全失败?

移植到 Linux 是可管理的 ― 本文的移植指南部分讲述怎样一步一步地移植而每个中间步骤本身是稳定的。这使您能根据您的优先级管理成本、人员和项目。这意味着您可以独立完成每一步,在完成每步后重新估计您的优先级和目标。这样的结果是风险更容易被控制而给您的公司带来的影响更小。

成本有多大?需要花多少时间?

花费的时间和金钱 ― 根据和移植有关的因素,全面估计您的应用程序:

编译器的差异;

您的代码中与硬件相关的构造(例如字的长度或字节顺序的相关性);

平台运行时服务;

构建工具的相关性;

数据库、联网和消息传递中间件的可用性;

用户界面的可移植性;

测试案例和测试环境。

移植的工作量和复杂程度直接和依赖系统和环境的代码的多少成正比。如果您的应用程序只用标准的语言构造和标准的库,那么移植起来相对容易些。例如,Java® 应用程序常常属于这一类。反之,如果您的应用程序是一个 C 程序,其中用到 Solaris 上不符合 POSIX 的服务或依赖在 Linux 上没有的第三方产品,那么移植难度将大大增加。通常,系统测试、配置的测试和软件的安装是重要步骤并且是移植的主要部分。

我的应用程序还能在原来的 UNIX 平台上运行吗?

缓解 ― 即使把开发转移到 Linux 后,您仍可以保持原来的平台选择,以满足您的其它市场。移植到 Linux 通常意味着构建工具被 GNU 工具替代,平台相关的线程库被符合 POSIX 的替代。在其它 UNIX 平台上,GNU 工具和库都能用,使您能同时兼顾您原来的平台和 Linux。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章