AIX与Linux的联姻

本文将就AIX Affinity with Linux的发展以及在AIX操作系统下如何进行Linux的开发和如何将自由开发的Linux应用移植到AIX操作系统做介绍,目的是让更多的朋友在AIX系统平台上使用Linux, 并同时感受到AIX操作系统在整体性能上的魅力。我们期待着有更多更好的Linux应用被移植到AIX操作平台,使AIX操作系统更加丰富多彩,让我们工作得更轻松自如。

AIX Affinity with Linux 的发展情况

IBM对AIX Affinity with Linux的发展分为以下两个阶段。

第一个阶段,发布AIX Toolbox for Linux Applications, 它主要包含GNU和其他一些常用开发工具,来帮助开发人员在AIX系统上编译程序,并在两种行业内开放性最好的操作系统平台,即AIX和Linux之间,进行平滑技术移植。由于应用程序运行于AIX环境中,因此客户可以同时得到Linux的灵活性和AIX操作系统的先进性能,包括工作负载管理、先进系统管理工具以及高安全性。

第二个阶段是,在最新发布的AIX 5L Version 5.1 操作系统中提供更多的兼容Linux的API和头文件,来支持源文件的兼容性,使两个不同操作系统有更强的互操作性,从而达到更高程度的兼容。

那么我们能用AIX Affinity for Linux做什么呢?

在AIX系统上使用众多Linux上开发的自由软件,例如,运行流行的 Gnome and KDE 图形桌面,运行其他的多媒体工具,等等。

用功能强大的RedHat Package Manager包工具管理应用。

在AIX 系统上,使用GNU和Linux开发工具进行新应用的开发。

AIX Affinity 的其本原理介绍

AIX Affinity with Linux的目的并不是在系统中提供一个模拟层供Linux应用来运行,它的意义在于通过重新编译Linux应用后,得到AIX的兼容的二进制本地代码,并能使用所有系统的特性,如可靠性、扩展性、以及可用性。这就是说,我们提供了一个强大的跨平台编译器以及众多的兼容API来保证Linux应用在AIX 系统上的成功移植。

由于AIX的设计开发从网络、主机硬件系统,到操作系统完全遵守开放系统的原则,所以在目前的AIX 4.3.3 和 AIX 5L Version 5.0, 使用AIX Toolbox for Linux,只需通过简单的编译就能在AIX平台上实现Linux的很多应用。这样,我们就不用浪费许多人力、物力去重新开发很多已经很成熟的应用。我们不断地重用经典代码,就可以把我们有限的精力投入到更精彩、更需要的地方。

当使用AIX Affinity with Linux时,我们还会想到的它对性能的影响。AIX Affinity with Linux在设计阶段,就希望提供最优化的性能给应用,其中包括让Linux应用和本地应用享有同样访问资源的权利。尤其是AIX 5L Version 5.1操作系统,会提供更高级别的应用与操作系统间的兼容性。当我们考虑性能时,还应该想到我们要开发什么样的应用,前端的还是后台的。后台的大型应用还是比较适合AIX应用,但前端的人机界面用Linux则更能发挥其特长,也减少了可能的性能影响。

AIX Toolbox for Linux 最新版的获得、安装和基本使用

许多GNU开发工具已经被移植到AIX 4.3.3 和 AIX 5L Version 5.0,而界在新的AIX 5L Verison 5.1 操作系统中有更多的开发工具被成功移植。

其中包括(并非全部):

应用开发类:gcc, g++, gdb, rpm, cvs, automake, autoconf, libtool

开发库:ncurses, readline, libtiff, libpng, libjpeg, slang, fnlib, db, gtk+, qt

编程语言:guile, python, tcl/tk, rep-gtk

桌面环境类:Gnome and KDE

GNU 工具:gawk, m4, indent, sed, tar, diffutils, fileutils

系统Shell:bash2, tcsh, zsh

系统工具:emacs, vim, bzip2, gzip, git, elm, ncftp, rsync, wget, lsof, less, samba, zip, unzip, zoo

图形应用:ImageMagick, transfig, xfig, xpdf, ghostscript, gv, mpage,Gimp

这些工具为Linux开发者提供了非常棒的开发环境。值得一提的是,他们绝大多数使用了易于安装的文件格式,这就是RedHat发展的rpm包。它的主要作用就是架起了一座通畅的桥梁,把AIX和Linux两个不同的操作系统紧密地联合起来,发掘它们更大的潜力。

AIX Toolbox for Linux 的下载网址: http://www-1.ibm.com/servers/aix/products/aixos/linux/download.html 此网页上有众多大家梦寐以求的工具等大家来使用。

前面已经提到过,我们是要用RedHat Package Manager(RPM)来管理应用,所以我们必须首先要安装RedHat Package Manager。RedHat Package Manager从下面连接下载:ftp://ftp.software.ibm.com/aix/freeSoftware/aixtoolbox/INSTALLP/ppc/rpm.rte

安装时,以root用户登录,运行

installp -qacXgd rpm.rte rpm.rte

安装过程会收集共享链接库的信息,将会持续几分钟。要耐心等候,不要中断。如果发生错误没有装完,那么在下次安装之前,记得要运行installp -C去清除上回不完全安装。(我在一台F50,4.3.3上共用时10min35sec.)

RedHat Package Manager安装完后,就可以安装其他 AIX Toolbox for Linux 。基本使用和Linux上一样,详细使用及相关信息,可以到 www.rpm.org上查看。

简单参数如下,

-i: install

-e: erase

-q: query

–help help

举例:要安装gcc 2.9,那么先到 http://www-1.ibm.com/servers/aix/products/aixos/linux/download.html,下载rpm包 gcc-2.9.aix43.010216-1.aix4.3.ppc.rpm ,上传到机器后,运行

rpm -ivh gcc-2.9.aix43.010216-1.aix4.3.ppc.rpm

其中参数v是要在安装过程中显示详细信息。其中参数h是要在安装过程中显示安装进度。一分钟过后,就已经可以享受gcc 2.9的强大功能了。其余的就不用我赘述了,大家各自体会吧。

对开发的建议

由于AIX是符合POSIX标准和UNIX98认证的,但Linux却没有通过认证,所以我们要尽量在开发过程中使用标准的API,那么应用只要使用 GCC,G++等编译器重新编译就可以在AIX中使用了。非常重要的是,检查哪些API是只被Linux支持,但却不被AIX支持,这样可以避免不必要的麻烦。

由于AIX 5L是同时支持 Power系列 CPU和 Itanium CPU, 所以我们在开发程序,另外要注意的是在处理一些和硬件底层打交道的代码。在这些程序中我们需要采用通用的字节处理调用来处理,以保证应用可以很快速在不同的平台间移植,比如从Power系列的CPU平台移植到以INTEL CPU的平台,这样就可以确保应用的更强的可用性。

如果你的应用与路径有关,而在AIX系统中没有程序中指定的路径存在,那么必须修改应用的源码并指向正确的路径。所以建议你在开发是确认你的代码是否是可行的并进行相应的测试。

让我们在Affinity with Linux中尽情畅游吧。