用户管理  |   用户注册                                                                                    首 页软件下载教程中心办公指南flash动画文档下载办公公文

www.4oa.com - 中科软件园

投递文章 用户管理 投稿指南 资讯通告 :
站内搜索: 您的位置中科软件园 > 教程中心 > 操作系统 > Linux > 编程开发 > 教程内容

提升 Linux 开发者的能力

2005-5-24 15:19:18  来源:本站整理  作者:不详 【 投递文章
内容提要:在基于POWER的系统中开始使用企业版Linux级别:中级64位POWER体系结构是公认的高性能、可靠而且有用的企业平台,它为UNIX和Linux应用程序开发者提供了新的选择。不管是谁,只要有在其他平...


在基于 POWER 的系统中开始使用企业版 Linux
级别:中级

64 位 POWER 体系结构是公认的高性能、可靠而且有用的企业平台,它为 UNIX 和 Linux 应用程序开发者提供了新的选择。不管是谁,只要有在其他平台上使用 AIX 或者 Linux 的经验,就可以受益于与世界顶尖的 IBM 硬件 POWER 相结合的开放源代码社区强有力的基础。

从价格适中的 2- 路服务器到垂直扩展的超级计算机再到世界顶级的 JS20 BladeCenter,基于 POWER 的机器具备所有的大小和等级,始终领先于人们对企业级硬件的预期。与动态逻辑分区(Dynamic Logical Partitioning)等创新配置一道,Linux 或 AIX 的可用为应用程序开发和部署提供了一个独特的依赖于 POWER 体系结构性能的平台。本文将为您提供构造大部分代码和 POWER 平台所需要的工具和知识。

Linux 发行版本
可选范围广是 Linux 社区为人们所津津乐道的一个强大之处。POWER 版 Linux 主要由 Red Hat Linux 和 SUSE Linux 这两家企业 Linux 厂商提供。这两种 Linux 发行版本各成体系,各有所长,都提供了 Linux 开发者所期望的完整的工具链、库以及开发工具。本文分别进行了评论。

注意,TurboLinux 也得到了支持。TurboLinux Enterprise Server8 使用的是来自 SUSE Linux 的许可代码,所以在下面的论述中,那些适用于 SUSE 的特性同样适用于 TurboLinux。

Red Hat Enterprise Linux 3 (RHEL3)
Red Hat 成功地充当了开放源代码社区的领导者和先驱者。2003 年 Red Hat Linux 发布了可用于 POWER 体系结构的企业版,并带来了先进的 Linux 技术。

内核
RHEL3 的 2.4.21 Linux 内核为 POWER 体系结构进行了优化。甚至在 Linux 2.6 发布之前,Red Hat 已经在他们的 Linux 2.4 内核中移植(backport)了一些 2.6 的特性。

其中,最引人注目的是 Native Posix Threads for Linux(NPTL)库。先前的线程模型,即 Linux Thread,是传统的 1:1 线程模型,与 Linux 2.4 调度器配合使用,一段时间以来这个模型就是被革新的目标。在 RHEL3 中,Red Hat 将新的线程模型从 2.5 的开发树中移植到了 2.4 内核,从而使得可扩展性更好,多线程更快,最明显的是从根本上提高了 Java 性能。

不同于一些商用 UNIX 操作系统中所用的 m:n 线程,NPTL 仍是 1:1 模型,但是现在没有人怀疑它的性能。新的线程模型在陈旧的 450 Mhz Intel 处理器上有能力在两秒钟内生成和销毁 100,000 个线程,因而可以提供企业级 Linux 等所需的性能。Java 应用程序的执行速度通常会比使用旧的 Linux 线程模型时快八倍。

前沿开发的结合并不仅限于内核线程模型。RHEL3 中还包括一个新的改进的 glibc,版本为 2.3.1。出于 NPTL 线程性能方面的需要,glibc 2.3.1 还为 Linux 应用程序引入了效率更高的库。

SUSE SLES8
SUSE SLES8 是两种企业版 Linux 中资格较老的一个,已经到了它的生命周期的末期。SLES 8 的特色是定期更新的 2.4 内核(SUSE 已经为 SLES8 用户发布了三个服务包,以确保可以使用补充更新的系统安全和性能),它提供所有类别的选项。有三种带日志的文件系统可供选择。默认情况下,在 SLES8 中可以使用所有常见的数据库、Web 服务器和邮件服务器应用程序以及最新发布的 KDE 和 Gnome 桌面环境。SLES8 中当前可用的 2.4.21 内核为实时地执行 32 位和 64 位的应用程序提供了一个 64 位的基础。

即将发布的 SLES9 现在还在测试中,SUSE 的最后一项任务是融合新的 GCC、glibc 和 Linux 2.6 内核。发布后,SLES 9 将提供第一个可用于 IBM eServer? iSeries? 和 pSeries? 服务器的 Linux 2.6 内核。

使用哪个发行版本?
由于 RHEL 3 和 SLES8 所提供的线程模型不同,所以当然不能认为会有完全的二进制兼容性。好消息是,开发者几乎总会发现,不同的 Linux 发行版本中代码编译是一致的,POWER 版 Linux 也不例外。

不过,在部署时,一些应用程序对具体的发行版本更为敏感。例如,SLES8 上默认使用的 Reiser 文件系统以高性能地处理小文件而闻名。主要对小于 1 KB 的文件进行读写访问的应用程序适合使用这种文件系统,这样的程序最好运行在 SLES8 上,而运行 Java 线程的应用程序将受益于 NPTL 的 RHEL3 实现。

开放源代码模型的优点在于它的灵活性,POWER 版 Linux 也是灵活的。也就是说,开发者将可以找到关于在 RHEL3 和 SLES8 上进行开发的通用参考资料。编译器、IBM Java Developer's Kit ,以及像流行的集成开发环境 Eclipse 这样的开发工具,都是这两种发行版本中自由可用的工具的例子。

编译器和库
POWER 版 Linux 是两个方面的结合:最好的开放源代码开发和企业级的硬件。最好是提供 C、C++ 和 Fortran 编译器的一个选择以反映这一结合。

GNU Compiler Collection (GCC)
GNU GCC 是用于所有体系结构的 Linux 中应用最广泛的编译器,Red Hat 和 SUSE 都使用此编译器来编译随它们的产品发布的二进制文件(可执行文件)。由于 GCC 3.2 可以生成 32 位的和 64 位的二进制文件,所以 RHEL3 和 SLES8 中都提供了 GCC 3.2。RHEL3 实现利用了一个“biarch”风格的双编译器,使用一个编译器标记(-m64)来进行 64 位编译。

与之不同,SLES8 使用单独的 64 位 GCC 的工具链,这个工具链默认存储在 /opt/cross 中。为了在 SLES8 中可以使用 64 位编译器,开发者应该确保他们的配置脚本和 Makefile 文件可以识别出这个编译器。您可以通过将 CC 环境变量设置为 64 位 GCC 编译器的位置来完成这一任务。

当前,人们正在对 GNU 编译器集进行重大革新,为 POWER 体系结构而进行性能优化。在即将发行的 3.3 和 3.4 中,GCC 的调度和信号处理将得到改进。另外,针对特定体系结构的优化(比如对 IBM JS20 BladeCenter 中 PPC970 芯片的 VMX/Altivec 支持)将为编译后的代码带来极大的性能优势。不过,SLES8 和 RHEL3 现在使用的都是 GCC 3.2 版本,在这里评述了对这些版本性能的优化。

GCC 3.2 没有为 POWER 处理器进行针对特定体系结构的优化。所以,编译时不建议使用针对特定体系结构的标记,比如 -mpower。可以使用这些选项,但通常不会带来性能上的提高。与 x86 上的 GCC

[1] [2] [3]  下一页

相关文章列表
(评论内容只代表网友观点,与本站立场无关!)[ 全部评论 ]

网友评论:

    用户名:

    评   分:100分 85分 70分 55分 40分 25分 10分 0分

    内 容:

                 (注“”为必填内容。) 验证码: 验证码,看不清楚?请点击刷新验证码

关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图 -有事点这里