了解可作为通用平台的 Linux 操作系统

Linux 是一个适应性很强的平台,支持多种使用模型

Linux 无处不在。从最小的智能手机,到 Internet 的虚拟骨干网,再到体积最大、功能最强的超级计算机,Linux 的影子几乎无所不在。能够提供这么多平台所期望的众多功能,Linux 非常不简单。我们将探索无处不在的 Linux 以及它如何支持大大小小的设备。

M. Tim Jones, 独立作家, 顾问

M. Tim Jones 是一名嵌入式固件架构师,也是 Artificial Intelligence:A Systems Approach、GNU/Linux Application Programming(现已发行第二版)、AI Application Programming(第二版)和 BSD Sockets Programming from a Multilanguage Perspective 等书籍的作者。他的工程背景非常广泛,从对地同步宇宙飞船的内核开发到嵌入式系统架构设计与网络协议开发。Tim 居住在科罗拉多州 Longmont,他是 Intel 的一名平台架构师,也是一名作家。



2012 年 5 月 02 日

联系 Tim

Tim 是最受欢迎的多产作家。在 developerWorks 上浏览 Tim 的所有文章。在 developerWorks 社区 上查看 Tim 的个人概要信息 并与他、其他作者和开发人员联系。

Linux® 已经有些年头了。到 2012 年,Linux 已经 21 周岁了,它是一个支持多种使用模型的成熟操作系统。很难将 Linux 仅当成一个操作系统,它更像是个变色龙。它灵活的模块化内核可支持多种使用模型(从最大的超级计算机到最小的嵌入式设备),因此很难将它划分为具体的某一类,只能是当成一项使能技术。事实上,Linux 是一个平台。它是创建新产品的一项关键技术。其中有些产品才刚刚出现不久。

我们快速浏览一下 Linux 的基本架构及一些基本原则。然后,看看 Linux 如何将这些原则应用于多种使用模型,以及为什么它是一个平台,而不仅仅是一个操作系统。

Linux 是什么?

从表面上看,Linux 是一个操作系统。如 图 1 所示,Linux 包含一个内核(管理硬件和软件资源的核心代码)和一组用户应用程序(例如库、窗口管理器和应用程序)。

图 1. Linux 表面
图表显示 Linux 所有用户件、内核和硬件

这个简单的图表显示了一些容易被忽视的重要原则。Linux 栈的底部是一组依赖于架构的代码,它能让 Linux 在多种硬件平台(ARM、PowerPC、Tilera TILE 等)上运行。当然,这一项功能是由 GNU 工具链所赋予的,它能实现 Linux 可移植性

可移植性 方面,Linux 是它自身的类。驱动程序子系统(功能多样)支持动态加载模块,而不会对性能产生任何影响,它支持模块化(除了更加动态 的平台外)。Linux 还包含内核级安全性(多种方案),可支持安全的 平台。在外部文件系统方面,Linux 可最大限度支持所有操作系统的文件系统,例如,通过设计模块化提供灵活性。Linux 不仅实现了标准调度特性,而且实现了实时 调度(包括对中断延迟的保证)。

最后,Linux 是开放式的,这意味着几乎任何人都能查看或改进其源代码。这种开放性也将产生漏洞的可能性降到最低,从而形成一个更加安全的 平台。许多公司都对 Linux 作出贡献,使它能不断支持各种使用模型,同时保持其核心属性。

这七项重要原则不是 Linux 的全部原则,但这些让 Linux 成为了支持多种使用模型的通用平台。而且,Linux 在这些使用模型中是一致的,这不仅体现在设计原则,还有内核本身。而其他操作系统则不是这样(例如 Windows®台式版、服务器版,或嵌入式,以及 Mac OS X 或 Apple iOS),它们将产品拆分以支持其他使用模型。


Linux 在哪?

也许回答哪里有 Linux 比回答哪里没有 Linux 要难。Linux 其变形和扩展能力在所有计算领域都能找到(甚至一些还未完全定义的领域)。本节将探索一些主要的计算领域,包括桌面/笔记本、服务器、集群、大型机、超级计算机、掌上电脑/平板电脑、嵌入式、虚拟化和试验机(见 图 2)。

图 2. Linux 属性和支持领域
图片显示 Linux 属性和支持领域

桌面和笔记本

在桌面和笔记本领域,很多用户使用 Linux,这也是 Linux 竞争最激烈的领域。最新的市场占有率调查数据显示,Linux 占有 1.5% 的台式电脑市场,32% 的笔记本市场。这个数字可能有点低,但在开发人员中,我看到使用 Linux 多于其他操作系统。

Linux 一开始是一个简单的实验性的操作系统,于 1994 年推出 XFree86,这是一个窗口管理器,标志着一个新的桌面操作系统的产生。目前,Linux 上有几种窗口管理器可用(既是赐福又是祸害),让用户能够根据需要进行定制。而且,Linux 能根据处理器功能自动扩展(如多核和对称多线程),从而高效安排进程并兼顾性能。

Linux 和就业市场

Dice.com 和 Linux Foundation 最近的调查发现,2,000 多名受访者中,有 81% 表示 2012 年优先招聘 Linux 方面人才。Linux 不仅推动行业发展,而且还推动就业机会。

服务器

在服务器市场(包括 Web 服务器、邮件服务器、Domain Name System 服务器及其他后端设备),Linux 占主导地位。最近的调查发现,60% 的服务器使用 Linux。除了传统的 Web 服务,Linux 还支撑了一些最大的 Internet 产业(Facebook、eBay、Twitter、Amazon 等),并满足不同的使用模型和需求。除了传统的选择之外(例如 Web 或邮件),Linux 还提供了大量的 Web 服务(以及这些服务的多种选项)。

集群和分布式计算

Linux 不仅是集群和分布式计算模型中的重要组成部分,它还对很多新使用模型核心起着驱动作用。目前快速发展的两个重要模型是云计算和大数据。

云计算就是将 IT 作为服务交付,它依赖于共享资源集群,可以根据给定应用程序的需要进行调整。云也依赖于虚拟化以支持大规模基础架构中节点的自动管理。在云环境中,66% 使用 Linux 作为主要平台。

Linux 也在推动自身成为数据科学的平台。Internet 会扩展可收集到的数据量,在处理这些数据的过程中会产生新问题以识别有价值的模式。现在所谓的大数据 是在 Linux 上开发的,可以用可扩展方式操作数据,这超越了以前传统方法。Hadoop 及其生态环境就是 Linux 开放性的成果,有众多的开发人员精通此平台。

大型机

1991 年,一位著名的编辑预测大型机将在 1996 年就被取代。20 多年过去了,大型机仍然在生产和出售中,并且很多都运行 Linux。IBM 从 2000 年开始在大型机上支持 Linux(例如流行的 IBM® System z®)并提供各个环境下相同的用户体验。Michael Vizard 最近的一篇文章指出约 25% 的新大型机负载依赖于 Linux。(参阅 参考资料。)

超级计算机

超级计算机领域一直是标榜速度最快的军备竞赛,从 Oak Ridge 国家实验室的 Jaguar 超级计算机(2009 年)到中国的 Tianhe-I(2010 年),再到当前领先者日本 RIKEN Kei 计算机(2011 年)。在 2012 年,IBM 将推出 Sequoia 超级计算机,预计性能超过 RIKEN 一倍。这些超级计算机的共同之处就是都运行 Linux。Linux 不仅高效,而且还适用于各种硬件平台,有助于提高性能。这一点也不奇怪,有 90% 的超级计算机都运行 Linux。(参阅 参考资料。)

移动设备和平板电脑

在更有限的消费设备领域,移动设备和平板电脑展现出强劲的增长势头。这些设备一般都配有 Linux 内核和用户界面图形 (GUI)。该领域的一个重要案例就是 Google Android 操作系统,它可用于智能手机和平板电脑中。今天,超过 25% 的智能手机运行某一版本的 Linux (主要是 Android),大约 40% 的平板电脑运行 Android。

这些设备依赖于基于 ARM 的处理器(系统在芯片上),实现高性能、低能耗。无论底层平台是什么,它们都是 Linux 设备,而不是内核和应用程序的交叉。

Microsoft® 最近确认,Windows on ARM (WOA) 平板电脑只支持针对该平台开发的应用程序(换句话说,无法在平板电脑上运行老的应用程序)。相比之下, Linux 支持高度可移植的应用程序,而不是受限制的、封闭式的应用程序生态系统。(参阅 参考资料。)

嵌入式设备

最后是嵌入式设备,它有着各种限制(处理器性能、资源如内存等)。Linux 是大多数设备的理想选择,因为它能向下调整并可以使用市面上大多数嵌入式处理器。这样的灵活性使得 Linux 广泛用于电视、车载娱乐、导航系统及多种其他设备中。

Linux 具有高度可定制特性,并以低能耗为重心。为了确保低能耗,Less Watts 启动了一个追踪 Linux 内核版本的能源消耗项目。该项目主要关注 Intel 平台,但对其他处理器也有用。

Linux 是一个相当标准的嵌入式设备平台,能决定设备的成功或失败(以支持快速启动和开发)。最近出现了一个很有趣的设备,称为 Raspberry Pi,它是基于 ARM 的信用卡大小的计算机,运行 Linux 并被用作教授编程的教学设备。该设备预计售价在 35 美元,但尚未零售。(参阅 参考资料。)

虚拟化平台

Linux 推动创新的最有趣领域之一就是虚拟化。Linux 是各种虚拟化方法的操作系统来源,无论是平台或半虚拟化 (para-virtualization)、操作系统虚拟化,或是更模糊的概念如合作虚拟化。Linux 作为一个操作系统,能将自身转换成管理程序(例如内核虚拟机 [KVM])并托管很多研究管理程序。为了提高虚拟化的效率,Linux 实现了 Kernel SamePage Merging 技术以便能高效去除重复内存页。

Linux 还推动虚拟化技术更进一步,称为嵌套虚拟化嵌套,顾名思意,可以让管理程序托管客户管理程序,它反过来又托管一组客户虚拟机。虽然乍一看此用例有点奇怪,但嵌套虚拟化将改变云计算并扩展可托管的应用程序类型。目前,Linux KVM 支持嵌套虚拟化。

实验平台

最后也是相当重要的是,Linux 本身的基础,它是一个实验平台,通过它来探索许多新想法。在 1991 年 UNIX® 推出 20 年以后,Linux 作为一个玩具式操作系统出现。今天,Linux 已经在文件系统研究、集群计算、云和虚拟化改进中作为实验平台,拓展了单一操作系统内核的极限,可应用到许多使用模型中。Linux 作为平台,可以通过同时使用 Linux 和大量开源部件来加快实验。这些成果中包含大量使用 Linux 构建的相关技术,其中包括 HP webOS、Google Chrome OS 和 Android。

Linux 引入的一个有趣变化是,增加了与底层硬件平台的无关性。Linux 能够展现相同的用户体验,而不管底层硬件架构是什么。因此无论云使用的是 AMD x86 服务器还是低能耗的基于 ARM 的产品,在 Linux 上运行的应用程序都可以从物理架构中抽象出来。这种抽象化可让用户在根据需求的平台上做决定,而不是被绑定到通用但又过时和低效的架构中。Linux 就等于选择。

Linux 还是自包含的集成开发环境 (IDE)。除了托管世界级的编译器工具链 (GNC Compiler Collection),它还托管很多工具,如调试器、编辑器、版本控制系统、文件工具,以及 Shell 和解释器,以帮助自动完成开发任务。Linux 的这些功能使它成为理想的软件开发和软件研究环境。(参阅 参考资料。)


Linux 多样性

支持此处定义的各种使用模型只是 Linux 的一个附带选项。Linux 发行版可满足桌面和服务器市场,而专门的发行版专注于嵌入式(例如 uClinux,如果您的嵌入式设备缺乏内存管理单元)。任何人都可以取得 Linux 内核并将用户应用程序打包,用于特定的使用模型,并利用 Linux 的各种优势(网络协议和文件系统、可配置和动态内核和标准应用程序编程接口)。这就是快速发展的智能手机平台运行 Linux 的原因(可定制 UI 实现个性化)。


更进一步

如果将 Linux 比作桥,那么它将是一个现代工程奇迹。其分布式开发模型给现状带来挑战,其结果是产生了最灵活的软件成品,扩展了从微型嵌入式设备到大规模的超级计算机的使用模型。Linux 影响了整个产业,并引领导了有关集群计算、文件系统、云和虚拟化方面的前沿研究。无论计算环境如何发展,Linux 总是紧密相随。

参考资料

学习

获得产品和技术

讨论

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Linux, Open source
ArticleID=812909
ArticleTitle=了解可作为通用平台的 Linux 操作系统
publish-date=05022012