对于一个计算机系统来说,可伸缩性是一个非常重要的指标。那么什么是可伸缩性呢?可伸缩性是指一个计算机系统的体系结构能够在何种程度上不断扩展以满足用户的发展需求的特性。扩展的方式多种多样:可以是转移到一个完全不同的平台中,也可以是向原来的单一系统中增添一些新的硬件,增加新的CPU,或者是向群集中增加新的节点。此外,可伸缩性有时候也指一个操作系统在面向各种类型的系统和负荷时都能够工作良好的能力,不论这些系统是机顶盒,桌面计算机,还是大规模的服务器,也不管访问的对象是一个还是成千上万。
本文将主要探讨一下Windows 家族系列产品和Linux产品在可伸缩性方面的差异。硬件支持广泛的硬件支持可能是任何流行操作系统最基本的要求,也是可伸缩性的一个重要方面。Windows操作系统在这个方面做得的确非常出色:一方面,Windows的广泛使用使得任何硬件厂商在推出新的硬件时都会把Windows当作标准的平台加以支持,并且不断为新的Windows版本更新驱动程序;另一方面,大量的硬件支持又反过来推动了Windows平台的进一步普及。今年推出的Windows 2000在保留了Windows 98即插即用功能以外,还自带了大量的硬件驱动程序。
Linux的硬件驱动程序通常都是由那些需要这些硬件的用户自己来开发的. Linux的共享性能够很快地给那些常用的硬件提供驱动程序,这些驱动程序需要后续的支持和帮助,来克服潜在的不稳定性。至于一些尚未普及的组件,如各式各样的USB设备,其驱动程序的开发将需要更多的支持,来满足不同用户的需要。SMP(对称多处理器)支持CPU是计算机系统的核心部分,是否具有良好的SMP支持将直接影响大型应用下的性能。
Windows 2000 Advanced Server的零售版本最多支持四路SMP,OEM版可以支持最多达32路的SMP。对CPU的支持级别和Windows 4.0相比没有什么变化,但是对SMP的实现代码进行了改进,使得高性能的缩放可以更为“线性”地进行。Windows NT Server 4.0企业版已经实现了创纪录的性能价格水平,随着对SMP缩放的改进,这一趋势将在Windows 2000 Advanced Server和Datacenter Server中得到延续。在采用八路设计或者多于八路设计的系统中,性能的提高最为明显。
而Linux正致力于解决核心部分中的SMP支持,以提高Linux在大型应用下的性能。尽管Linux不是为SMP而设计的,Linux Torvalds也曾经说过Linux的SMP评测表现很差,但是我们期望这些问题能够在2.4版本内核中得到解决,使更多的学校或者企业可以使用经过考验的Linux来实现他们的核心程序。对群集的支持Windows 2000 Server具有强大的群集功能。Compaq最近之所以能在TPC-C比赛中傲视群雄,击败所有对手,靠的就是一个巨大的有着12个节点,96个处理器的群集,而它们运行的是Windows 2000 Server。尽管Linux没有在高端系统中运行关键性应用程序方面有出色记录,但最近Linux在群集项目也发布了不少东西,希望Linux的开发者大军可以开发出更完善的群集功能。
对特定计算环境的支持使每一个系统都有适合于自己的工作场合,这就是系统对特定计算环境的支持。微软开发了不同的操作系统来完成不同类型的任务。Windows CE适用于小型的手持式电脑和笔记本电脑,Windows 95/98和Windows 2000 Professional适用于桌面计算机,而Windows NT 4.0和Windows 2000 Server则适用于大型服务器应用程序。作为一个系列操作系统家族,Windows对各种不同的工作环境提供了良好的伸缩性支持。
由于Linux大部分可用的平台处于开发的初始阶段,对于各种不同计算环境的支持将是Linux系统的下一步目标。文档编制众所周知,随着系统变得越来越复杂,功能越来越强大,编制一个好的文档是非常重要的。这有助于用户对系统的理解和管理。详尽的文档说明,有助于我们熟练地掌握它所有的功能和特性。微软通常为其产品提供了深入细致的文档说明,在文档的本地化方面也做得很好。Linux产品的文档说明需要进一步的规范。
伸缩性是一个操作系统能否进入大型企业应用的一个重要标志,以上我们探讨了Windows家族系列产品和Linux产品在可伸缩性方面具有各自的特点,Windows2000在这个方面已经减少了和UNIX之间的差距,而Linux目前更适合于小型的网络应用,因此对于不同的网络应用,需要我们有目的的选择适合的操作系统。