DoSERV分析: 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.2 操作系统中提供更多的兼容Linux的API和头文件,来支持源文件的兼容性,使两个不同操作系统有更强的互操作性,从而达到更高程度的兼容。
  
    那么我们能用AIX Affinity for Linux做什么呢?
  1. 在AIX系统上使用众多Linux上开发的自由软件,例如,运行流行的 Gnome and KDE 图形桌面,运行其他的多媒体工具,等等。
  2. 用功能强大的RedHat Package Manager包工具来管理应用。
  3. 在AIX 系统上,使用GNU和Linux开发工具进行新应用的开发。
  
    第二部分 AIX Affinity 的其本原理介绍
  
    AIX Affinity with Linux的目的并不是在系统中提供一个模拟层供Linux应用来运行,它的意义在于通过重新编译Linux应用后,得到AIX的兼容的二进制本地代码,并能使用所有系统的特性,如可靠性、扩展性、以及可用性。这就是说,我们提供了一个强大的跨平台编译器以及众多的兼容API来保证Linux应用在AIX系统上的成功移植。
  
    由于AIX的设计开发从网络、主机硬件系统,到操作系统完全遵守开放系统的原则,所以在目前的AIX 4.3.3 和 AIX 5L Version 5.1,使用AIX Toolbox for Linux,只需通过简单的编译就能在AIX平台上实现Linux的很多应用。这样,我们就不用浪费许多人力、物力去重新开发很多已经很成熟的应用。我们不断地重用经典代码,就可以把我们有限的精力投入到更精彩、更需要的地方。 当使用AIX Affinity with Linux时,我们还会想到的它对性能的影响。AIX Affinity with Linux在设计阶段,就希望给应用提供最优化的性能,其中包括让Linux应用和AIX应用享有同样访问资源的权利。尤其是AIX 5L Version 5.2操作系统,会在应用与操作系统间提供更高级别的兼容性。当我们考虑性能时,还应该想到我们要开发什么样的应用,前端的还是后台的。后台的大型应用还是比较适合AIX应用,但前端的人机界面用Linux则更能发挥其特长,也减少了可能的性能影响。
  
    第三部分 AIX Toolbox for Linux 最新版的获得、安装和基本使用
  
  许多GNU开发工具已经被移植到AIX 4.3.3 和 AIX 5L Version 5.1,而且在新的AIX 5L Verison 5.2 操作系统中有更多的开发工具被成功移植。
  
  其中包括(并非全部):
  ? 应用开发类: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上查看。
  rpm的简单参数如下,
  
  -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的强大功能了。 其余的就不用我赘述了,大家各自体会吧。
  
    第四部分 对开发的建议
  
    1. 由于AIX是符合POSIX标准和UNIX98认证的,但Linux却没有通过认证,所以我们要尽量在开发过程中使用标准的API,那么应用只要使用GCC,G++等编译器重新编译就可以在AIX中使用了。非常重要的是,检查哪些API是只被Linux支持,但却不被AIX支持,这样可以避免不必要的麻烦。
  
    2. 由于AIX 5L是同时支持 Power系列 CPU和 Itanium CPU, 所以我们在开发程序时,另外要注意的是在处理一些和硬件底层打交道的代码。在这些程序中我们需要采用通用的字节处理调用来处理,以保证应用可以很快速在不同的平台间移植,比如从Power系列的CPU平台移植到以INTEL CPU的平台,这样就可以确保应用的更强的可用性。
  
    3. 如果你的应用与路径有关,而在AIX系统中没有程序中指定的路径存在,那么必须修改应用的源码并指向正确的路径。所以建议你在开发是确认你的代码是否是可行的并进行相应的测试。