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

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

本文简介:

  C++ 库 — Solaris Forte 6 C++ Compiler 包含三个类库:复数(-compat=4)、经典 iostream 和 Standard C++ Library(它包含标准的复数和 iostream)。GCC 只包含 Standard C++ Library。如果所移植的应用程序使用 -compat=4 复数库或经典 iostream 库,那么应用程序需改用包含在 Standard C++ Library 中的那些库的标准版本。作这种修改的额外好处是提高了应用程序的可移植性。
  
  桌面:CDE 对 GNOME/KDE
  
  图形用户界面(graphical user interface,GUI)— Solaris 的缺省桌面 Common Desktop Environment(CDE)并不包含在常见的 Linux 分发版中。对于要求 CDE 的应用程序或偏爱这种特别的 GUI 环境的用户,CDE 的 Linux 版本可从 Xi Graphics(www.xig.com)以他们的 DeXtop 产品的形式获得。在 Linux 上运行 DeXtop 使 Solaris 用户置身于熟悉的 GUI 环境从而使他们很容易地适应转移到 Linux 所带来的变化。
  
  DeXtop 要求使用也是由 Xi Graphics 提供的 Accelerated-X Linux X-Server。尽管 XFree86 Linux X-Server 可以和 DeXtop 一起运行,但是 Xi Graphics 并不正式支持在 XFree86 上运行 DeXtop。
  
  线程和进程管理
  
  线程/轻量级进程(Light Weight Process,LWP)支持 — Solaris 支持 POSIX 线程和特定于 Solaris 的线程模型。如果所移植的应用程序使用特定于 Solaris 的线程 API,那么,最好修改应用程序,使其改用 POSIX 线程。POSIX 线程的可移植性更好而且 Linux 也支持它。
  
  进程管理:/proc 文件系统 — /proc 伪文件系统提供了访问内核数据结构的方便的方法。在 Solaris 上,/proc 包括关于活动的进程和线程的信息,/proc 还提供控制这些进程和线程的接口。Solaris 上的 /proc 控制接口通常被调试器用来跟踪程序的执行。在 Linux 上,/proc 并不提供进程控制接口。在 Linux 上调试时,为了控制进程,请用 ptrace() API 而不是 /proc。
  
  运行时要考虑的因素
  
  系统管理:一般地说,管理 Linux 和管理任何其它 UNIX 操作系统非常相似。但在某些命令和任务的细节上是有差别的。IBM 和 UNIXGuide(unixguide.net/unixguide.cgi)已出版了比较图表,该图表不仅总结了 Solaris 和 Linux 之间的一些差别,还总结了 AIX 和其它版本的 UNIX 之间的差别。有经验的 Solaris 系统管理员不会遇到多大困难就能得心应手地用 Linux。
  
  其它第三方工具、实用程序和库:许多 Solaris 上常见的流行的第三方工具、实用程序和库在 Linux 上也有,例如:
  
  Rational Rose 和其它 Rational 产品在 Solaris 和 Linux 上都能用。
  Rogue Wave SourcePro C++ 库在 Forte/Solaris 上能用,在 GCC/Solaris 和 GCC/Linux 上也能用。
  Trolltech Qt C++ GUI 框架在 Solaris 和 Linux 上都能用。
  由于 Linux 越来越受到欢迎,支持 Linux 的第三方供应商的数量在不断增加。
  
  尾数格式 — Sun SPARC 和 UltraSPARC 处理器用大尾数法格式存储整数。如果您想把应用程序移植到使用小尾数法的 Linux 版本,例如 Linux/Intel,那么您必须解决应用程序中所有的尾数格式的相关性,以使应用程序能正确运行。另一种方法是把应用程序移植到 Linux/PowerPC、zSeries 上的 Linux 或 Linux/UltraSPARC(它们都是大尾数法平台)而不是 Linux/Intel。
  
  从 Linux 移植到 zSeries 上的 Linux
  
  现在移植到一个平台上(比如说 Intel)的 Linux 已完成,那么移植到其它硬件平台上的 Linux 怎样呢?简短的回答是:这很容易。
  
  由于以下两个原因,我们选择以 zSeries 为例。
  
  zSeries 是容易地从一种 Linux 移植到另一种 Linux 的好例子,因为 zSeries 体系结构和 Intel 体系结构完全不同。许多 ISV 先把他们的 UNIX 应用程序移植到 Intel 上的 Linux,这当然是自然的选择。接着再把应用程序移植到 zSeries 上的 Linux 就不需要太多的努力。
  由于 zSeries 在虚拟化领域的独特功能及其硬件可靠性和可用性,所以,对您来说,zSeries 可能是有吸引力的平台。
  为什么要移植到 zSeries 上的 Linux?
  

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

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

go top