接上一篇

稳定性

在Internet上,有很多有关OSS/FS稳定性的争论,但是,我们完万能够通过数字来说明问题。

1.1995年的调查显示,OSS/FS应用程式更加稳定。1995年,Fuzz Revisited的论文(http://www.cs.wisc.edu/~bart/fuzz/fuzz.html)就是通过对给应用程式输入随机的字符来查看其抵抗崩溃和死机的能力。虽然有的研究人员对这种方法不以为然,认为这种方法不能够发现细微的错误,但进行研究的作者指出,这种方法还是能够查出很多在编写程式过程中的错误,并且也是发现软件缺陷的一个好办法。这种方法的测试中,发现OSS/FS有更好的可靠性。在该论文的第2.3.1节中说:“商业系统和Linux间的比较也很有意思。对1995年的7个商业系统的测试中,其平均出错率是23%,而Linux的出错率只有9%,同时GNU的工具程式的出错率只有6%。”虽然这次测试是在1995年做的,但在这些年中,专有软件并没有什幺大的举动。而研发OSS/FS的队伍日益壮大,并且对OSS/FS的测试也更加严格。

2.ZDnet在为期10个月的实验后得出结论:Linux要比Windows NT可靠。在这次实验中,ZDnet比较了Caldera System OpenLinux、Red Hat Linux和微软的Windows NT Server 4.0(SP3)。三个系统使用的都是相同的硬件(单CPU)。测试中,标准的Internet、文档和打印服务等网络请求并行地发给每一个服务器。结果是:NT平均每6个星期崩溃一次,每一次崩溃需要30分钟来修复,也许这听起来还算能够。但是,Linux服务器却从来没有出现过崩溃的情况。

3.据Bloor Research的实验(http://gnet.dhs.org/stories/bloor.php3),Linux要比Windows NT可靠。这个实验让两种操作系统都运行在配置相对都比较低的老奔腾机上。在为期一年的测试中,Linux只因为硬件的故障而崩溃过一次(磁盘问题),花费了4个小时来修改这个问题,其给出的有效可用时间为99.95%。Windows NT崩溃了68次,原因分别是磁盘问题(1次)、内存问题(26次)、文档管理问题(8次)和各种奇怪的问题(33次)。任何这些问题花费了65个小时的时间进行修复,其给出的有效可用时间为99.26%。为什么Linux出现的问题和Windows NT出现的很多问题都和硬件有关呢?可能是运行Windows机器的硬件比较差,也可能是Linux作了很多卓有成效的工作,避免了由于硬件问题导致的错误。而文档管理的错误则是Windows自己的原因,一些奇怪的问题也应该是Windows本身的问题。这次实验的结果很明显:Linux要比Windows可靠得多。

4.Reasoning咨询公司的研究发现,Linux内核中的TCP/IP Internet协议栈缺陷要比其他的专有操作系统的相应协议栈少,并且是最好的嵌入式操作系统。在报告中(http://www.businesswire.com/cgi-bin/f_headline.cgi?bw.021103/230420300),Reasoning比较了6种操作系统的TCP/IP。除Linux内核之外,其他有三个是用于商业用户的操作系统,另外两个用于商业电信设备中。Linux内核一般都被用作为通用目的的操作系统。按理来说,嵌入式操作系统应该具备更好的可靠性,因为在嵌入式市场中,稳定性本来就很关键。这次研究过程没有受到任何Linux厂商或Linux竞争对手的委托和影响,因此不可能有任何偏袒。

Reasoning公司使用自动工具来查找代码中的5种缺陷:内存漏洞、释放空指针、失败的存贮单元分配、数组溢出和没用的参数。研究发现,每81852行Linux内核代码行(SLOC)中,有8个缺陷。其所占比率相当于每一千行内核代码(KSLOC)中有0.1个缺陷。相比较而言,另外3个专有操作系统(其中两个是Unix)的缺陷率是0.6-0.7/KSLOC,也就是Linux内核的缺陷率要少于任何参评的通用操作系统。参评的2个嵌入式操作系统的缺陷率是0.1-0.3/KSLOC,因此,Linux内核的缺陷率实际上要好于其他的嵌入式操作系统。

Reasoning公司对此结果的解释是:首先,任何人都能够看开放源代码软件的源代码。对大型开放源代码应用软件,如Linux内核、Apache网络服务器等,无数的人可阅读其源代码,他们能够学习这些代码是如何工作的,也能够做出修改,或发现错误。因为整个研发过程是开放式的,这些单独的评估人员能够报告他们发现的错误甚至提出合适的修改意见。

当然,这并不是说任何的OSS/FS都有很高的质量,但他的确证实了OSS/FS完万能够有很不错的质量。

5.瑞士的Syscontrol AG公司的分析报告指出,平均来看,使用IIS Web服务器软件的站点,其处于非联机状态的时间要比使用Apache软件的站点多出2倍。这个实验进行了3个月的时间,并且测试了瑞士国内100个知名的Web站点,每隔5分钟从4个不同的地方进行检测(这可是一项不小的工程)。表8是各个服务器的停机时间(以小时为单位)。

表8 各种服务器的停机时间(单位:小时)


从3个月的测试结果我们能够看出,Apache拥有最好的表现。事实上,就算是Apache表现最差的那个月,也要比IIS表现最好的那个月还是好。虽然Netscape和Apache之间的比较是无关紧要的,但是,从二者的比较我们能够看出,能够自由获得的OSS/FS(Apache)在可靠性上完万能够和最可靠的专有商业解决方案相媲美。

6.Netcraft也进行了另外一个和上述报告单独的有关正常运行时间的研究,结果表明OSS/FS的表现很好。Netscraft持续跟踪了50个正常运行时间最长,并且经常被访问的站点。报告(http://www.dwheeler.com/frozen/top.avg.2001aug3.html)发现有92%(46/50)的站点使用的是Apache,一个站点的Web服务器为未知,其他3个不是Apache。而在这三个中,只有1个显示使用的是IIS,而这个服务器还值得怀疑,因为报告显示该服务器的操作系统是BSD。关于这个矛盾的解释是,可能位于前端的BSD系统“遮掩”了IIS Web站点,也可能是Web服务器通过使用错误的类型来迷惑攻击者。在这次调查中,有50%(25/50)使用的操作系统是OSS/FS操作系统,并且只有类Unix的操作系统有最好的正常运行时间。在调查中,任何具备最好运行时间的系统都不是Windows系统。

当然这个方法也有一些缺点,对此Netcraft进行了讨论(http://uptime.netcraft.com/up/accuracy.html)。但至少有一点是能够肯定的,在具备较长正常运行时间的系统中,Unix和Linux在数量上比Windows占有绝对的优势,所以能够充分证实这两个系统的可靠性要比Windows好。

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!