倒数第二篇:相关计算技术的发展和现代操作系统的发展--现代操作系统的发展2
倒数第一篇:嵌入式实时操作系统
主页
第二篇:万变中的不变:操作系统的基本概念--现代操作系统的发展1
第三篇:未来操作系统的发展趋势和结语--现代操作系统的发展3
文章列表

现代操作系统的发展

作者:陈钟,沈晴霓

近几十年来,随着多处理机技术、中 间件技术、网络技术、嵌入式技 术、多媒体技术、虚拟化技术、安 全技术和可信计算技术等硬件和软件新技术 的不断涌现,现代操作系统在传统操作系统 基础上也不断发展出一些新的特性,如多线 程、微内核、网络化、多媒体以及高安全性 等。网络化和多媒体化是许多现代操作系统 的新特征,而进一步提高操作系统的并发性 (采用多线程)和可靠性(采用微内核结构 减小规模)则是现代操作系统发展的一个重 要趋势。以桌面系统为例,操作系统的发展 将呈现一些新的特点:(1)随着普适计算、 移动计算的发展,个人桌面和个人应用将不 再局限于PC这样的传统设备,满足新的计 算模式将成为下一代桌面系统设计的关键。 (2)为满足不同人群的应用需求,桌面操作 系统也在分化出不同的功能。例如,针对追 求娱乐和时尚的人群,桌面操作系统通过与 硬件配合,提供更强大的三维(3D1)功能 和显示加速功能,从而推出更酷更炫的三维 桌面,以及提供功能更强大的多媒体播放器 等;针对办公人群,则提供基于内容的桌面 搜索工具以及功能更强大的信息管理、日程 管理等工具。(3)桌面系统安全性受到高度 重视,特别是通过与可信平台模块(TPM2) 等硬件安全技术的结合,使得桌面安全性和 可信性得到改善。此外,随着网络信息化时 代的到来,高性能、高可用性、高可扩展 性、安全性以及开放性都是未来服务器操作 系统的主要研究内容。内核多线程、多处理 器支持、分布式计算环境支持和面向对象设计等成为这类现代操作系统的主要特征。

万变中的不变:操作系统的基本概念

在计算机科学的教育中,操作系统不仅 是最重要的组成部分,也是了解计算机系统 的基础。随着计算机在众多领域得到广泛应 用,操作系统正在以惊人的速度发生变化。 不过,虽然操作系统有着巨大的变化,但其 基本概念仍然比较清晰,即操作系统是管理 计算机硬件的软件。作为介于计算机用户和 计算机硬件之间的中间层,操作系统为应用程序提供了基础。

不同的操作系统有着不同的设计目标。 个人计算机操作系统支持复杂的计算机游 戏、商务软件和任何可能的应用软件;手持 设备的操作系统更注重友好方便的用户界 面;大型主机上的操作系统则更加注重硬件 能力的优化利用。不管怎样变化,操作系统 要为用户提供方便,要提高计算机资源利用 效率的要求是保持不变的。

一个计算机系统通常由硬件、操作系统、应用软件和用户四个部分组成。 根据应用环境和用户特点的不同, 计 算机系统也存在不同的特性。例如,洗衣机 中的嵌入式计算机系统通过“控制和显示面 板”实现人机交互,其操作系统和应用程序 相对固定。一个普通移动电话用户的交互方 式和普通电话类似,但通过内置的应用程序 则可以为用户提供手机阅读和游戏等固定功 能,而一部智能手机的计算能力已超过了早 期的个人电脑,其丰富的媒体播放和文字处 理等应用能力可与桌面个人计算机媲美。

计算机系统的4个组成部分

人们研究操作系统通常采用两种常见的 观点:(1)用户观点:更注重易用性,当然 也包括性能。随着个人计算机和各种手持计 算装置的飞速发展,现代操作系统的设计越 来越注重人机交互的方便易用。其中包括人 机交互界面以及各种设备互联的标准化和方 便性(如通用串行总线USB3接口、即插即用 技术等)。(2)系统观点:认为操作系统是 资源管理者。此类观点更多面向的是专业的 软硬件设计人员。来自外部用户功能需求和 交互方式的需求往往也能促进计算机硬件、软件设计的创新。

相关计算技术的发展

操作系统经历了近40年的发展,从大型 计算机的批处理系统到分时系统,再发展到 个人计算机和掌上型计算机操作系统,直至 分布式系统和嵌入式系统。每种操作系统适用于不同的计算环境,其中既有传统的单机计算模式,又包含了许多新涌现出的计算模式。这些计算模式的应用分别如下所述:

多处理器计算

早期的多处理器并行技术仅用于科学 计算等领域,而今天该项技术已经出现在个 人、家庭和企事业办公桌面系统之中,甚至 手持设备、智能手机都采用了多处理机硬件 架构。

基于互联网(Web)的计算

浏览器/服务器(Brower/Server)模式的 普遍应用带领人们进入互联网计算时代。互 联网技术拓展了传统式计算的范围,企业的 入口网站提供了由网络访问内部服务器的方 法。网络计算机可以进行互联网式计算,而 掌上型计算机和个人计算机与无线网同步的 功能,也使得企业信息具有了可移植性。目 前,除了个人计算机,工作站、手持设备甚 至手机都可以用来当作联机上网的工具。我 们由此也可以从互联网上获得更多的数据和 服务。

嵌入式计算

嵌入式计算是目前计算机系统中占有率 最高的一种计算,在汽车引擎、工厂的机械 设备、录放机和微波炉等设备中几乎随处可 见它的踪影。嵌入式系统大多运行特定的嵌 入式操作系统。它们的硬件设备一般比较简 单,没有较先进的系统功能如虚拟内存等, 因此嵌入式操作系统也只提供了较为简单的 功能。

虚拟化计算

所谓虚拟化,实质上是通过硬件和操作 系统(Operating System,OS)的中间层—— 虚拟机监控层(Hypervisor)实现计算资源的 管理和再分配,使资源利用率实现最大化。虚拟化带来的最大好处是使一个物理平台能够同时运行多个同类或异类的操作系统,以分别作为不同业务和应用的支撑平台。虚拟化技术已颇受业界好评,甚至还出现了“虚拟机构件(Vmware)预示操作系统的死亡”的言论。其实从技术角度讲,虚拟机监控层本身就是一个微型的操作系统。从软件开发的角度看,绝大多数应用都是面向操作系统开发的,用户所关心的是系统能提供何种应用,除非彻底颠覆现有的软件开发模式,即从面向Windows、Linux和各种Unix的编程环境和应用编程接口(API4),转向面向基于虚拟机管理层的编程环境和应用编程接口,否则操作系统作为软件开发基础的格局不会改变。因此,现代操作系统的发展在一定意义上受到虚拟化技术的影响,但未必会很快“死亡”。

可信计算

对于在计算机应用环境中的可信,ISO/ IEC5 15408标准6有如下定义:一个可信的组 件、操作或者过程的行为在任意操作条件下 应该是可预测的,并能很好地抵抗应用程序 软件、病毒以及一定的物理干扰造成的破 坏。目前,可信计算主要有3个属性:(1) 可鉴别性,计算机系统的用户可以确定与他 们进行通信的对象身份;(2)完整性,用户 确保信息能够正确传输;(3)私有性,用户 相信系统能保证信息不会被泄漏或窃取。这 三个属性在具体操作系统应用中表现为用户 的控制与访问权限以及文件与程序的加密解 密等。由于操作系统包括不同的组件,因此 操作系统的可信分为操作系统的启动可信、 文件系统可信、设备驱动程序可信以及操作 系统之上的软件可信等,整个过程称为操作 系统的可信链。因此,在未来,包含可信计 算模块的各种操作系统都应支持建立系统各 组件之间的信任链关系。

现代操作系统的发展

微内核操作系统

对于一个操作系统而言,内核通常是系 统中最核心的部分。内核管理着所有的系统 资源,对于系统的设备拥有完全的访问权, 所以内核通常运行于特权模式。现有的操作 系统在正确性、可靠性以及安全性方面不尽 如人意,其中很大部分的原因与系统内核的 规模过于庞大复杂以致难以控制和验证有 关。为改善这个问题,微内核的基本方法是 应用最小特权原则,把一般内核中大部分的 功能移出内核而只保留必不可少的部分,使 具有特权的内核代码量最小,同时也减少内 核的复杂度,从而使内核受到安全威胁而导 致特权失控的可能性大大降低。同时,由于 内核代码量的降低,使代码的分析和验证的 工作也相对容易。但是,由于微内核操作系 统是基于消息传递机制的,因此必须考虑如 何提高操作系统服务器的效率。此外,在微 内核内实现的新概念(比如线程)和新机制 (如写时拷贝等),在传统操作系统中没有 相应的语义,实现微内核结构的操作系统时 必须考虑到这一点。

除了在系统性能和语义差异上会受到一 定影响之外,具有微内核结构的现代操作系 统拥有以下优点:(1)可伸缩性好,能适应 硬件更新和应用变化;(2)可移植性好, 所有与具体机器特征相关的代码,全部隔离 在微内核中。如果操作系统要移植到不同的 硬件平台上,只需修改微内核中极少量的代 码即可;(3)实时性好,微内核可以更有效 地支持实时处理;(4)安全可靠性高,微内 核将安全性作为系统内部特性进行设计,对 外仅使用少量应用编程接口;(5)支持分布 式系统,支持多处理器的体系结构和高度并 行的应用程序;(6)真正面向对象的操作系统,能显著减小系统开销,提高系统的正确性、可靠性和易扩展性。因为微内核结构具有如此多的优点,所以现代操作系统中广泛采用微内核结构或准微内核结构,比如卡内基梅隆大学的Mach操作系统、法国的Chorus操作系统以及当前广泛使用的Windows 2000/XP都采用了微内核结构。开源L4是第二代微内核,不但具有传统微内核的优势,即良好的可靠性和灵活性,还通过大量优化的通信机制,在很大程度上弥补了性能上的不足。目前的微内核结构不仅适用于通用操作系统,也已十分适合嵌入式的专用操作系统设计。

嵌入式操作系统

嵌入式系统是以应用为中心,软硬件可 裁减的,适用于对功能、可靠性、成本、体积 和功耗等综合性要求严格的专用计算机系统。 它具有软件代码小、自动化程度高和响应速度 快等特点,特别适合于要求实时和多任务的体 系。嵌入式操作系统是嵌入式系统极为重要 的组成部分,通常包括与硬件相关的底层驱 动软件、系统内核、设备驱动接口、通信协 议、图形界面和标准化浏览器等。嵌入式操 作系统具有通用操作系统的基本特点,比如 能够有效管理越来越复杂的系统资源,实现 硬件虚拟化,使开发人员从繁忙的驱动程序 移植和维护中解脱出来,能够提供库函数、 驱动程序、工具集和应用程序。与通用操作 系统相比较,嵌入式操作系统在系统实时高 效性、硬件的相关依赖性、软件固态化以及 应用的专用性等方面具有较为突出的特点。 从20世纪80年代起,国际上就开始了商 用嵌入式系统和专用操作系统的研发。其中 涌现出一批著名的嵌入式操作系统,例如: WinCE,是从整体上为有限资源的平台设计 的多线程、完整优先权、多任务的操作系 统;VxWorks,是目前嵌入式系统领域中使用最广泛、市场占有率最高的系统,支持多种处理器,而且大多数的VxWorks应用程序接口是专用的;pSOS,是模块化、高性能的实时操作系统,专为嵌入式微处理器设计,提供一个完全多任务环境,在定制的或商业化的硬件上提供高性能和高可靠性;QNX,是实时的、可扩充的操作系统,部分遵循POSIX7相关标准(如POSIX.1b实时扩展,提供一个很小的微内核以及一些可选的配合进程);PalmOS,在PDA市场上占有很大的份额,具有开放的操作系统应用程序接口,开发商可以根据需要自行开发所需要的应用程序;OS-9,为微处理器的关键实时任务而设计的操作系统,广泛应用于高科技产品中,包括消费电子产品、工业自动化、无线通讯产品、医疗仪器和数字电视/多媒体设备,它提供了很好的安全性和容错性;LynxOS,是一个分布式、嵌入式、可规模性扩展的实时操作系统,遵循POSIX .1a、POSIX.1b和POSIX.1c标准;Symbian OS是专门用于高级数据功能手机(即智能手机)的开放操作系统。

目前, 专用操作系统均属于商业化产 品并且价格昂贵。由于它们各自的源代码不 公开,使得每个系统上的应用软件与其它系 统都无法兼容。这种封闭性还导致了商业嵌 入式系统在对各种设备的支持方面存在很大 的问题,使得它们的软件移植变得很困难。 Linux8作为开源系统,不会出现这样的问题。 因此,除了智能数字终端领域以外,Li n u x 在移动计算平台、智能工业控制和金融业终 端系统,甚至军事领域也都有着广泛的应用 前景。这些Linux统称为“嵌入式Linux”。 嵌入式Linux是开源项目,有着优秀的网络功 能,比如稳定,内核“精悍”,运行时所需 资源少,支持的硬件数量庞大等,因此吸引 了许多开发商的目光,成为嵌入式操作系统 的新宠。国际上比较有名的包括实时目标的 RT-Linux9、小型化的uClinux10、专门化的嵌入式Linux版本Embedix11以及号称世界最小的XLinux12等。嵌入式操作系统巨大的商业价值和Linux的开放性,为民族软件产业的发展提供了难得的机会。但是国产嵌入式操作系统在技术含量、兼容性、市场运作模式等方面还有很多工作要做。

分布式操作系统

在分布式系统发展过程中出现过两个概 念:网络操作系统和分布式操作系统。UNIX 和Windows NT就属于网络操作系统,都具有 网络功能,可以用来访问远程资源。它们能 够通过网络透明地访问一些,但不是所有资 源,例如:利用分布式文件系统(NFS13), 用户能够通过网络透明地访问存储在远程设 备或服务器上的文件。网络操作系统的特点 之一就是运行于其上的结点能独立地管理自 己的进程资源。也就是说,在网络上的每一 个结点都有一个系统映像。通过网络操作系 统,用户能够使用rlogin或Telnet14远程登录到 其他的计算机上,并在那台计算机上运行进 程。然而与操作系统管理本地结点计算机进 程的方式不同,网络操作系统并不在结点间 调度进程,用户必须参与进程的调度。

如果存在一种无需用户关心程序的运行 地点或资源位置的操作系统,并且其中只有 一个单一系统映像,则该系统必须能控制系 统中的所有结点和将一个进程透明地定位于 符合其调度策略的结点上。例如在最小负载 的结点上生成一个新进程以防止单个结点 的过载。但事实上,除了UNIX、Mac15操作 系统和各种版本Windows这些网络操作系统 外,目前几乎没有其他普遍应用的分布式操 作系统,主要原因是用户过于习惯使用熟悉的软件,而且用户更愿意独立地管理自己的机器。中间件与网络操作系统的结合为操作系统提供了独立性和网络资源透明访问之间的平衡,即网络操作系统使用户能独立运行其应用程序,而中间件使这些程序能够享受到分布式系统提供的服务。

可扩展操作系统

现代操作系统在内涵发生变化的同时,外 延也在悄然发生变化。正是由于微内核技术的 使用,使操作系统在保持核心功能的基础上能 够灵活地结合各种服务及应用,这就是所谓的 可扩展操作系统。这种外延和扩展不仅体现在 用户应用层,还体现在硬件层。实际上,未来 的操作系统在计算机体系结构中将向硬件层和 应用层两个方向延伸。例如,现代操作系统可 以将操作系统的部分功能交给硬件实现,即将 一部分功能模块采用软件固化技术固化在相关 芯片上。随着芯片技术的发展,越来越多的现 代操作系统的服务会固化进芯片,由此还可使 未来的嵌入式系统实现企业级运算。根据IBM 公司eServer i系列首席科学家弗兰克·索尔蒂斯 (Frank Soltis)博士的预测,当每一块芯片中 集成的晶体管数量超过10亿个时,未来的服务 器芯片完全有能力把诸如DB216、WebSphere17 这样的软件固化在其中。当支持企业级计算的 软件固化到服务器芯片中时,操作系统的相应 功能也会不得不固化进服务器芯片中,这种含 有系统软件和应用软件的专用芯片无疑是未来 操作系统的发展方向。

多处理机并行操作系统

多处理机并行操作系统具有如下新特 征:(1)并行性,即增强对程序并行执行的支持。(2)分布性,即支持对分布的任务、资源的管理与控制。(3)通信及其同步性,即在不同处理机上运行的不同进程之间实现同步和通信,以共享资源和相互合作,支持程序的并行执行,以改善系统的性能。(4)可重构性,为了提高系统的可靠性,当系统中某个处理机或存储模块等资源发生故障时,系统能够自动切除故障资源,换上备份资源,并对系统进行重构,以保证其能继续工作。

早期的并行操作系统由于考虑到硬件 系统的非对称性以及实现的简单性,采取了 主从式并行化单机操作系统,即任何时刻 只允许一个处理器执行操作系统核心程序, 其他处理器只可用来执行用户程序。然而这 种实现方法并不能很好地发挥对称式硬件的 特点,因而目前在商品化系统中已完全放弃 了,代之以完全对称式的操作系统核心并行 化的方法,为充分发挥多处理机硬件环境下 的多任务处理能力打下了基础。在提高系 统性能方面,对称式多处理机(Symme t r i c Multi-Processor,SMP)结构计算机已经成 为现代计算机技术发展的潮流和趋势,因此 急需构建能协调多处理器并发活动以及维护 系统一致性的对称式多处理机操作系统,来 替代原有的单处理器操作系统。目前,市场 上已由不同厂家推出多个并行操作系统版 本,包括升阳公司(SUN)的Solaris、美国 电话电报公司(AT&T)的UNIX SYSTEM V4.0 MP版本、DG公司的DG/UX、SGI18公 司的IRIX、MIPS公司的RISC/OS 5.0、克雷 (Cray)公司的Unicos、英国Concurrent公司 的RTU、Sequent19的DYNIX、昂可(Encore) 的UMA X、摩托罗拉公司(Mo t o r o l a) 的MotorolaOS、阿连特公司(Al l iant)的 Concentrix、IBM支持多机结构的AIX20以及开 放软件基金会(OSF21)组织推出的早期UNIX 版本OSF/1.0等。

虚拟化操作系统

在操作系统层面上,像I BM、微软、 Linux社区以及其他厂商都在不同层次上实现 虚拟化。一种是进程级的,即不是用软件模 拟,而是在操作系统之上添加一个很“薄” 的虚拟化程序来实现虚拟化,在这个虚拟化 程序之上再模拟操作系统。在用户的角度看 到的操作系统和真实的操作系统使用起来基 本是一样的,可以支持各种各样的应用。另 一种是系统级的,即操作系统几乎可以不 变,只是每个操作系统调度的是自己的虚拟 化硬件资源,这些虚拟硬件资源是由系统硬 件和操作系统之间的虚拟监控层(虚拟化操 作系统)创建和管理的。这样,虚拟化操作 系统或者运行在虚拟监控层之上的操作系统 比原始的系统更安全,因为都拥有独立的运 行环境和独立的虚拟化设备资源。

可信操作系统

随着网络安全问题日益严峻,人们对平台 安全性的认识和要求也越来越迫切。而自从微 软发布Vista操作系统以来,人们开始看到安全 可信的操作系统离普通用户越来越近。Vista是 微软第一款根据“安全开发生命周期(Security Development Lifecycle,SDL)”机制进行开发 的操作系统。它首次实现了用户易用优先向系 统安全优先的转变,其中所有选项的默认设置 也都是以安全性为第一要素考虑的,这和以往 的Windows客户端操作系统把易用性放在第一位 大不相同。再者,近年来可信计算技术被选择 用来从根本上解决个人电脑的脆弱性,并得到 快速发展。业内人士分析,内嵌可信平台模块 安全芯片的个人电脑将成为新一代安全终端的 主流,并且可信平台模块也会像声卡、显卡和 主板一样成为个人电脑的标准配置。人们最终 将迎来“要么安全个人电脑,要么没有个人电 脑”的时代。支持可信平台模块的Vista的推出使得可信计算平台概念更加市场化。同时,随着微软Vista的部署,市场对高可信操作系统的 理解和需求将逐步扩大。

未来操作系统的发展趋势

随着计算机技术和网络技术的普及,在通 用主流操作系统仍然占据比较大的市场份额的 基础上,未来一些操作系统将逐步向专用化和 小型化等方面发展,并具备如下新特点:

开源化

随着微软公司与诺维尔(Novel l)公司 在Linux上的结盟以及升阳启动OpenSolaris项 目,开源软件模式及其实现的价值越来越得 到社会的认可。开源改变了未来操作系统的 开发模式,使得聚集大家的力量打破组织边 界、持续创造出更高质量、更安全和更易用 的操作系统成为可能。另外,更重要的是它 改变了操作系统的使用方式——从“使用许 可”为主的商业模式变成以支持和咨询等面 向服务为主的商业模式,在全球向服务经济 转型的过程中扮演着日益重要的角色。从本 质上讲,开源操作系统的开发模式和许可机 制更加适合于面向服务的商业模型,其利润 核心并不是纯软件开发或者是任何形式的软 件产品,而是软件服务。因此,未来以开源 Linux等为代表的操作系统,包括FreeBSD22、 NetBSD23、OpenBSD24和OpenSolaris25等,将 不断占领更大的市场空间。目前,全球市场 上人气很旺的苹果公司的iPhone手机产品就是 利用开源操作系统的典型代表。

专用化

随着计算机应用领域的不断拓展以及普适计算、移动计算和网络计算技术的迅速发展,越来越多的领域需要满足特殊需求的专用操作系统,比如嵌入式操作系统、多媒体操作系统、企业应用操作系统等。这类系统未来的应用领域会越来越广。

小型化或微型化

通用操作系统的规模和复杂性过大。为了 适应特定的应用领域,比如手机、手持游戏机 和个人数字助理(PDA26),甚至在特定的家用 设备,如智能遥控器等,未来操作系统必然逐 渐向规模和功能小型化发展。此外,随着纳米 技术的发展,在一些微型设备中需要专门设计 一些微型操作系统,已经开始研究的纳米操作 系统就是其中一种。

便携化

随着虚拟化技术的发展,目前的操作系统 已经可以像文件一样随身携带,并在不同的计 算机上运行。但对于现在的虚拟机规模过大等 问题还有待进一步研究改进。

网络化

网络已经成为人们生活中的一部份, 操作系统也越来越依赖网络资源的共享与通 信。尽管目前提出了网络操作系统和分布式 操作系统,但这类操作系统在技术上还不成 熟,因此要想达到目标,要在相关领域做重 点研究。

安全化或可信化

迄今为止,基于互联网的应用已经渗透 到金融、电信、宇航、电子商务、电子政务 和军事等社会的各个领域。但是互联网本身 具有的开放性和动态性正日益导致各种安全问题日益严重,其应用的发展也越来越受到制约。因此,包括微软和升阳在内的众多厂商开始重视并逐步建立起安全和可信的操作系统。然而,这种具有较高安全性和可信性的操作系统离用户可接受程度还有一定距离,这也成为业界积极研究的课题。

结语

纵观操作系统近40年的发展历史,可以发 现,随着计算机系统互联互通的不断增强和计算 需求的不断增长,操作系统在满足功能和性能 需求方面也开始与时俱进,适应发展的需要。 尽管如此,在安全可信技术方面依然面临许多 挑战。未来操作系统的安全性研究包括安全体 系结构、安全模型和安全机制等几个方面。开 展这些方面的研究需要适应不同用户和应用的 需求,以及建立可信的安全保障机制和强调身 份证实、完整性和私密性保护等。我们期待着 未来的操作系统具有突破性的发展。

本文作者

陈 钟 中国计算机学会理事。博 士,北京大学教授。主要 研究方向为信息安全、系 统软件、面向领域的软件工程等。

沈晴霓 中国计算机学会高级会 员。博士,北京大学软件 与微电子学院信息安全系 副教授。主要研究方向为 信息安全、安全操作系统、可信计算等。