当前位置:Linux教程 - Linux - AIX与Linux的联姻

AIX与Linux的联姻



        
    内容:

    AIX Affinity with Linux 的发展情况
    AIX Affinity 的其本原理介绍
    AIX Toolbox for Linux 最新版的获得、安装、包含工具和基本使用
    对开发的建议
    作者简介




    AIX Affinity with Linux
    钱力 ([email protected])
    软件工程师
    2001 年 8 月

    RS/6000 和 eServer pSeries 是IBM服务器家族的旗舰产品,广泛应用于金融、电信、交通、旅游、制造等行业以及政府部门,它的操作系统AIX是业界第一个提供同时管理UNIX和Linux应用能力的操作系统,使Linux和UNIX完美地结合到了一起。这是一个令人振奋的消息,它必将再一次掀起自由软件的风暴。
    本文将就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中尽情畅游吧。

    作者简介
    钱力,软件工程师。您可以通过电子邮件 [email protected] 跟他联系。
    发布人:yfy001 来自:ibm