典型的 Linux 分发版(distribution)包含 Linux 内核,但还包含许多应用程序和工具。总的说来,Linux 分发版中出现的许多系统级别和用户级别的工具都来自自由软件基金会(Free Software Foundation)的 GNU 项目(GNU 是“GNU's Not UNIX”的缩写)。
Linux 内核和 GNU 工具套件都在 GNU 通用公共许可证(GNU General Public License,GNU GPL)下发行。如果您还不熟悉 GNU GPL,那么理解它的最佳方法就是去阅读它。冒着可能会遗漏某些重要方面的风险,我这样概括 GNU GPL:它是一种使计算机代码可自由使用的方式,使用其代码的用户可随意使用和实验它。
* 我们强烈推荐 Linus Torvalds 以前的同事 Lars Wirzenius 所写的一篇很有趣的对 Linux 历史的概括。
* Linux Online 提供中立的 Linux 新闻和信息。
* 还请查看这些有用的 Linux 链接,由 Linux 在 IBM(Linux at IBM)的研究人员汇编。
* “Linux 在 IBM”的 Linux Line 提供有关合作伙伴的新闻、Linux 学习资源、成功案例和新的进展 — 所有这些都是 IBM Linux 所关注的。
* IBM Linux 技术中心(IBM Linux Technology Center)直接与 Linux 社区协同工作;它的网站跟踪 IBM 对 Linux 以及相关的开发社区作出的贡献。
* 要了解有关 UNIX 在 IBM 的更多信息,请参阅 IBM High Performance Computing 页。
* IBM 的产品与服务页提供了指向硬件和软件、支持、咨询等内容的链接。
* 要浏览更多的 IBM 站点,请访问 IBM 的主页。
历经 20 多年的发展,UNIX 已经开始 — 至少在某些领域 — 被 Linux 超越。Linux 不是 UNIX;它只是非常象 UNIX。对于有些任务,您需要 Linux — 对于其它任务,您仍需要 UNIX。UNIX 和 Linux 可以在一起非常协调地工作,编写得好的程序可以非常容易地在这两个系统之间进行移植。有关 UNIX 在 IBM(UNIX at IBM)的更多信息,请参阅下面一些站点。
* 在软件方面,您可以了解有关 IBM 的 AIX 5L UNIX 操作系统的更多信息。
* 从诞生至今,IBM 一直被公认是世界一流的硬件供应商。请查看 IBM pSeries UNIX 计算机的功能 — 这些计算机旨在成为运行 Linux 和 UNIX 的功能最强大的硬件。
* IBM 开发者园地门户网站为用户提供最佳实践和技巧。特别地,IBM eServer 开发者园地有介绍硬件和软件的文章、产品帮助和参考资料,所涉及的 IBM 服务器硬件从基于 Intel 的机器到大型机,软件从 Linux 和 UNIX 到 z/OS,一应俱全。
* z/OS UNIX 系统组有一页介绍由 IBM 员工以及由社区开发的免费 UNIX 工具和小玩意。
* 要了解有关 Multics(Multiplexed Information and Computing Service,多路信息和计算服务)的更多信息,请访问 Multics 主页。
为什么 Linux 很重要?
因为它是自由软件,通过 GNU 通用公共许可证授权,Linux 使程序员无需在每次开发新项目时都要不断重新设计操作层。打个比方,GNU 的系列工具就好比免版税的砖块和灰泥,您可以用它们构建独立的项目。自由软件的批评者们常常担心自由软件的自由和低成本会将导致一场计算行业的经济灾难。然而,自由软件对计算领域的影响只不过象(不然的话更象)古腾堡(Gutenberg)的印刷机对文字世界的影响一样。
* GNU 通用公共许可证说明了自由软件用户所享有的自由和要承担的责任。
* 在自由软件基金会(Free Software Foundation,FSF)网站,您可以阅读有关自由软件的“思想”并且可以找到大量可下载的文档和软件包。
* IBM 公共许可证(IBM Public License,IPL)也是一个自由软件许可证。它是在 FSF 创始人 Richard Stallman 的帮助下建立的。
* IBM developerWorks 的开放源码项目专区提供了在开放和/或自由许可证下发行的下载。
用 Linux 能做什么?
您希望用 Linux 系统做什么将决定您想要什么样的 Linux 系统,以及在开始使用该系统之前要对它有多深的理解。
Linux 是进行内核研究、学习 UNIX 或学习编程的绝佳学习平台;有许多工具和应用程序可用来玩游戏、进行桌面排版或者只是闲来无事发一下电子邮件和浏览 Web。
它也是开放和封闭式生产系统的绝佳平台,因为可自由地对其进行最大程度的定制。Linux 可以作为各种事物的平台,从中间件到嵌入式计算和群集,从并行超级计算机到小玩意儿。IBM 已经参与了制造在 Linux 上运行的收银机的项目,以及制造 Linux 手表的项目。其他开发人员已经在手机、Sony PlayStation、TiVo 和 Sharp Zaurus 上使用了 Linux。
尽管 GNU 通用公共许可证要求将修改过的代码发布给使用该代码的客户,但它不要求将所有修改后的代码都发布给公众(这是某些自由软件的批评者没有领会的关键一点)。的确,对于基于 Linux 的收银机,把代码发布给大众在安全性上完全是一种冒险。GNU GPL 只要求使用代码的客户可以获得修改后的代码。
* 文章“Linux 客户端好处是什么?”就是一个学习有关 Linux 操作环境的更多知识的绝佳起点。
* IBM developerWorks Linux 专区是一个不可缺少的教程与文章资源,里面介绍了 Linux 的所有知识,从基础知识到高级编程和部署。
* 概念验证手表上的 Linux 项目是一项由 IBM Research 开发的非常流行且广受欢迎的项目。
* 查看 IBM 的智能自动售货机。
* 从 Linux at IBM 门户网站页面了解令人振奋的 Linux 项目和随需应变的计算。
* Linux Services Overview 着重描述 IBM 的 Linux 解决方案,并专门关注电子商务的使用和应用程序。
* IBM 全球服务为您提供咨询和支持;它的服务无所不含,从实现新安装到迁移或更新旧安装。在 Linux services 页面上了解 IGS 在 Linux 领域所做的工作,或者通过查看“Linux 在 IBM”的案例研究,看看它最近提供了什么样的解决方案。
如何开始使用 Linux?
如果完全不了解 Linux,或者正在使用 Linux 作为桌面操作系统,那么您至少需要学习一些有关系统管理和安全性的基本知识。和试图将这些任务自动化的商业性个人操作系统不同,Linux 并不承诺手把手帮助您,也不承诺跟在您后面做一些清理工作:您必须自己管理系统。幸运的是,基本的维护和基本的安全性都很简单。在许多方面,现在的 Linux 和 UNIX 管理要比流行的商业性个人操作系统的管理容易得多,因为前者更透明。
尽管 Linux 的确有几个窗口环境可让您执行管理,但控制系统最直接的方法是使用命令行。构建在命令行环境结构之中的是大量的命令和数种基于文本的帮助系统。
在 Web 上,在现实世界中,有许多资源可以帮助您开始使用 Linux。有许多专门针对这一主题的网站、文章和书籍,Linux 用户组(Linux User Groups,也称为 LUG)在世界各个国家和城市举行会议 — 众所周知,他们对新用户也非常友好。
* Linux Online 提供一份详尽的有关全世界 Linux 用户组的列表。
* 详尽的“Linux 用户技术 FAQ”是帮助新用户开始学习的好起点。
* “为 Windows 用户准备的简明 Linux 词汇表”是另一个适合新手使用的有用(如果不是不可替代的话)资源。
* IBM developerWorks Linux 专区提供了许多专门介绍基础知识的独立教程和系列教程;所涉及的内容有编译 Linux 内核、编译和安装软件到对 Linux 系统分区和备份等等。
* “为您的 Linux 应用开发加油提速 2003:针对 Linux 开发新手的基本任务”介绍了浏览 Linux 以及使用基本命令和工具的基础知识。
* “Addressing security issues in Linux”是一个常见安全性问题的指南,共 39 页,由 IBM 的 Mark Chapman 编写。
如何在应用程序开发中使用 Linux?
Linux 是作为编程平台的绝佳选择。它符合 GCC,这意味着您可以使用 GNU 项目出色的编程与调试工具套件 — 绝对免费,而且享有 GNU GPL 保证的所有自由。商业性编程软件包和商业性操作系统一样,要花很多钱。是的,某些项目常常需要它们,而它们也物有所值,但对于新手或学习编程的人 — 以及某些职业人士 — 自由软件绝对是不可替代的。如果您正在使用 Linux 作为开发平台,请不要跳过学习管理和安全性这第一步。不能掌握自己的计算机的程序员实在是愚蠢。
* IBM 拿出十亿美元支持 Linux 的行动成了头条新闻;它对 Linux 开发人员的支持旨在使应用程序编程的工作变得更容易。不管您的项目是普通项目还是位于前沿的项目,您都应当看看 Linux at IBM: Developers 站点上可用的资源。
* UnitedLinux 公共代码库承诺使 Linux 上的编程变得更简单。
* IBM developerWorks 在线时事通讯:技术版本专门为您提供与最新技术和开发保持同步所需的文章和信息。
* IBM 国际技术支持组织(International Technical Support Organization,ITSO)推出的 IBM 红皮书提供类似的服务。您将会特别喜欢涉及方方面面的在线提示和技巧。
* 印刷版本的 IBM developerWorks journal 也是一个有价值的参考资料。
在 Linux 上可以使用哪些编程语言?
除了象 Fortran 和 C/C++ 这样一直流行的传统编程语言,许多脚本和其它计算机语言也都可以在 Linux 上正常运行(甚至被设计成与 Linux 能最融洽地工作)。最受欢迎的编程语言包括 Perl、Python、PHP 和 Tcl。
象 Java 技术和 XML 那样不断发展的新技术可以在 Linux 上畅顺地运行,许多其它更深奥的编程语言(从 Logo 和 Rebol 到 Smalltalk 及其它语言)也是如此。
* GNU 的 GCC 主页提供了大量免费工具和支持。
* David Mertz 在 IBM developerWorks 上的可爱的 Python 专栏让您和 Python 世界中的技术保持同步。
* Perl 爱好者们可以从 Ted Zlatanov 在 IBM developerWorks 上的文章功能丰富的 Perl 专栏和更佳编程之路系列获得大量实用的建议。
* IBM 的 SashXB for Linux 项目提供了一个用于 Linux 的小型 RAD 环境,它是一个智能的基于 Java 的环境。
* IBM developerWorks 用整个专区专门介绍了 Java 技术和编程。
* IBM developerWorks XML 专区是得过奖的极有价值的在线资源,适合各领域的开发人员。
* IBM 提供 Toolbox 订阅,其特点是单个用户可以用较低的价格获得为期一年的许可证,来访问 IBM 核心工具、中间件和技术。
* 您还会对 IBM developerWorks 的产品教程和 Speed-start 计划下载页面感兴趣。
Web 服务与 Linux 有什么关系?
Web 开发人员在决定以什么技术作为其电子商务应用程序的基础时,有许多选择。因为 Linux 符合标准,所以许多新技术 — 从 Java 技术和 XML 这样的开放成果到语音应用程序、无线、普及计算甚至 Web 服务这样最前沿的服务 — 都支持 Linux。
* IBM developerWorks Web 服务专区正是一个更详细了解 Web 服务编程这一令人振奋领域的地方。
* alphaWorks Web Services 提供新的 Web 服务技术和 IBM 新兴技术工具箱(Emerging Technologies Toolkit,ETTK)。
* IBM Web 服务页介绍来自 IBM 的产品和新闻、演示及合作伙伴事例。
* 您同样会对 IBM 随需应变业务概述感兴趣。
* IBM 的 WebSphere Studio Application Developer 和 WebSphere Application Server 提供产品级的 Web 服务开发环境。
Linux 如何适用于网格计算?
使 Linux 或 UNIX 机器与其它出售的操作系统一起出色地工作一直就不太容易,而且现在这仍然不是件简单的事。但是,当今现有的操作系统实际上都有这个问题。
在互操作性和可移植性方面已经有了巨大进步,在这个领域,新的工具和技术仍不断被开发出来。
这方面的 Linux 工作包括移植和联网,这涉及到编写或重写设备驱动程序。尽管设备驱动程序和 Linux 的其它高级方面一样较为复杂,但有必要不时地重新设计它们,以便将各种系统和外设(无论是旧的还是新的)连接到 Linux 或 UNIX 机器。幸运的是,从所涉及的范围看,它们通常比内核和系统的其它高级方面小很多。
* David Mertz 在 IBM developerWorks 文章“在 Linux(或异构)网络上共享计算机”(另请参阅第 2 部分)中向您介绍基本的 Linux 联网规则。要获得更多关于联网的基本资料,请参阅“局域网的组建 ”。
* 拼凑起一个复杂的网格是比较困难的,但您将在 IBM developerWorks Web 体系结构专区发现大量的编程和实践技巧。
* 将安装移到无线平台比您想象的容易。在 IBM developerWorks Wireless 专区了解编程和连通性。
* 通过阅读这些专门的 IBM 参考资料来了解网格模型,包括入门级文章“网格计算关键组件文章”,以及电子商务随需应变 — 虚拟化资源中心上的白皮书和文章。
* IBM Grid Toolbox 包括 Globus Toolkit 2.2、文档和帮助创建网格和网格应用程序的定制安装脚本。
* 一旦您一切就绪,IBM developerWorks 网格计算专区将使您与最新的信息、工具和支持保持同步,以便使您的网格顺畅地运行。
我理解了 Linux,但如何能进一步提高技能?
如果您希望使用 Linux 作为非常高级的应用程序或应用程序集的平台,您将会对系统的某些领域感兴趣,譬如内核研究、各种文件系统的差异以及其它一些基本的细节。
高端应用程序(或游戏)所需要的另一套技能是调优 Linux 机器、群集或网络以获得最佳性能。这需要掌握多处理、线程技术、群集和其它神秘而复杂的系统管理知识。理解 Linux 的这些方面不象实际的内核研究那样需要勇气,但也会非常困难。
IBM Learning Services 提供的各种课程涉及各个方面,从基础知识到开发,以及非常专业化的技能 — 并且还有认证(稍后将详细介绍)。IBM 开发人员解决方案提供有关 IBM 产品的文章和 HOWTO,更多的 IBM 网站提供许多资源,其中有许多(如果不是大部分的话)也都在 Linux 上运行。IBM developerWorks 提供了关于 Linux 和其它几种开放或自由技术的文章、教程和资源,其它技术包括 XML、无线、Web 服务、Java 技术和网格计算。
* 为您的 Linux 应用开发加油提速 2003 提供了一组 IBM Linux 资源,包括开发 Linux 应用程序的培训和技术支持。
* 请参阅 Learning Linux 和“Linux at IBM”页上的 Linux 教育资源。
* IBM Learning Services 通过网络远程教育解决方案提供在线培训。
* IBM developerWorks Live! 技术简报事件是了解更多有关 IBM 技术的好方式。您将在 Linux at IBM: Events 页面和 IBM developerWorks Linux 事件列表中找到有关它们以及其它 IBM 事件的详细信息。
* IBM 的国际技术支持组织(International Technical Support Organization,ITSO)不仅出版 IBM 红皮书,它还主持世界范围的研讨会。
* 当没有时间进行正规学习时,IBM developerWorks 和 IBM developer solutions 允许您根据自己的时间和条件紧跟变化和技术。
怎样才能向别人证明我具备 Linux 技能?
Linux 培训有各种认证项目。既有联盟计划,也有独立的技能测试和公司赞助的认证。IBM 提供了数种 Linux 专门技能的认证途径。
* 看看 IBM 培训与认证服务提供了哪些 Linux 认证课程。
* IBM 也提供 UNIX 和 Linux 硬件及各种软件技术(包括 IBM 产品)专业认证。
* IBM developerWorks 提供了两个内容丰富的系列教程,专门用于准备 Linux Professional Institute(LPI)认证。从 101 系列开始:第 1 部分介绍 Linux 基础知识;第 2 部分、第 3 部分和第 4 部分介绍管理。在 102 系列中,第 1 部分演示如何从源代码编译程序;第 2 部分讲解如何编译内核本身;第 3 部分介绍联网;第 4 部分深入探讨了安全性。
* 请访问 LPI,了解有关他们认证计划的更多信息。
* Red Hat 也提供针对其分发版的认证。
哪些 IBM 工具可用于 Linux?
Linux 是一个出色的操作系统,可以在它上面运行标准的应用程序 — 从办公应用程序(如字处理程序和电子制表软件)到数据库系统,以及 Web 发布和服务环境。诸如 DB2、Lotus、Tivoli 和 WebSphere 这样的 IBM 产品都可在 Linux 上运行,而且 IBM 不是唯一认识到 Linux 是中间件的绝佳平台的业界领导者。虽然受到误解并且常遭诽谤 — 至少某些自吹自擂的数字文人是这么干的 — 但首先,中间件却是计算机得以实时运转的主要原因(对于许多计算机用户是唯一的主要原因)。Linux 的开放性质允许中间件供应商对其解决方案进行细致的调优以满足用户的需要,这是封闭式系统做不到的。
* 为您的 Linux 应用开发加油提速 2003 提供一个用于 Linux 的免费的软件评估工具箱(Software Evaluation Kit,SEK)。SEK 可以针对以下软件:DB2 通用数据库、WebSphere Application Server、WebSphere Studio Site Developer、WebSphere MQ、Lotus Domino、Tivoli Access Manager 等等。
* Why DB2 for Linux? 提供了各种信息、下载和链接以便您了解有关 IBM 这一主要数据库系统的更多信息。
* WebSphere Portal 专区将回答您有关应用程序服务、电子商务和体系结构中间件的所有问题。
* 除了最为人熟知的消息传递和协作功能之外,Lotus 软件套件的集成功能还提供小组会议、网络远程教育、知识管理及其它功能。
* Tivoli 技术扩展了系统管理并将 Linux 机器与其它 IT 系统集成在一起。另请参阅有关自主计算的 IBM 信息。
Linux 有怎样的前景?
Linux 的开放性和灵活性使它得以在实验室和其它研究机构中被用于创新性技术变革的前沿。IBM 的研究涵盖信息技术的所有领域,从物理和认知科学到前沿应用研究等。但 IBM 的研究人员(在很多情况下)也涉及纯科学。和其它机构一样,IBM 也常常在这些场合中使用 Linux。