把UNIX应用程序移植到Linux[3]

[入库:2005年9月19日] [更新:2007年3月24日]

本文简介:

  复制并重新构建应用程序 — 把您的源代码树和 makefile 复制到新的 Linux 机器上并重新构建应用程序。如果您没完成第 3 步,那么您可能需要修改应用程序,以适应 Solaris 和 Linux 之间运行时 API 的区别。最后,如果您的应用程序包含任何特定于 UltraSPARC 的代码,那么,请作出所需的修改,以解决那部分代码的问题。
  
  修改安装例程,以适应目标 Linux 平台。各种 Linux 平台(分发版)的配置和启动文件的位置稍有不同。
  
  测试 — 在结束移植前,对移植的应用程序运行彻底的验证测试套件。另外,在目标 Linux 平台上测试配置和安装。
  
  警告!许可证和版权条款 — 当您移植到 Linux 并把您的应用程序和开放源代码的库链接时,请注意和这些库有关的许可证和版权。至少来说,您新移植的 C/C++ 应用程序将被链接到 GNU C/C++ 运行时库。这些库受 GNU Lesser General Public License 的保护。如果您移植的软件是专利性质的并且您想在用 GNU 工具构建该软件后出售它,那么谨慎的作法是完全理解 GNU General Public License 和 GNU Lesser General Public License(www.gnu.org/licenses/licenses.html)中列出的条款和条件。如果您的软件和受 GNU 许可证保护的库链接,那么 GNU 许可证中的某些条款和条件将对您的软件也适用。
  
  Java 应用程序的移植指南
  
  第 1 步 — 下载所需的开发工具。
  第 2 步 — 在目标 Linux 平台上使用应用程序
  第 1 步:下载
  
  把用 Java 写的应用程序的开发从 Solaris 移到 Linux 是很简单的。您移植任务所需的工具有:
  
  Java 2 Developer Kit 的 Linux 版包括重建的 Java 虚拟机(Java Virtual Machine,JVM),该 JVM 有改进的即时(just-in-time)编译功能 ibm.com/developerworks/java/jdk/linux130/
  GCC 工具套件包含一个 Java 编译器(GCJ)gnu.org/software/gcc/java/
  第 2 步:在目标 Linux 平台上使用应用程序
  
  无论 JVM 运行在什么操作系统上,JVM 接受同样的字节码,所以您可以选择在某个操作系统中编译 Java 源文件,然后在另一操作系统中运行生成的类文件。例如,如果 Linux 是您的主要开发平台,那么您在 Linux 上创建的 Java 类文件能同样好地运行在 Solaris 或其它有兼容 JVM 的平台上。
  
  运行时接口
  
  尽管 Linux 和 Solaris 的绝大部分运行时接口是相同的,但有些地方还是有区别的。在您的应用程序中,每处用到 Linux 上没有或不完全相同的 Solaris 接口的地方都需要被修改,否则您的应用程序无法被正确地构建。以下列出的是有区别的地方。
  
  系统调用、C 库和 C++ 库
  
  API 差别 — Solaris 内核提供逻辑卷支持、文件的访问控制表(access control list,ACL)的管理和系统审计日志功能。Linux API 中的这些功能(如果有的话)与 Solaris 上的并不相同。还有,在缺省情况下,Linux 不支持 STREAMS。在网络中用到 STREAMS 的应用程序需要改用 POSIX 套接字。另外,不少 Linux 上也有的 Solaris API 使用不同的返回和参数类型,或在不同的头文件中声明。但是,这些差别往往不大,通常不需要在应用程序中修改代码。
  

本文关键:把UNIX应用程序移植到Linux
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top