Chinaunix首页 | 论坛 | 博客
  • 博客访问: 104662206
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: LINUX

2008-05-22 16:25:05

原作者:绚丽也尘埃    出自:
  
  看了一会儿《The art of UNIX programming》(Eric Raymond 著),其中有一个章节是关于操作系统比较的,让我想起了好多东西。内核事实上要比我想象的孱弱得多,Linux的内核(当然根据配置的不同大小会不一样,但是相差也不会太大)vmlinuz-2.6.23.1-42大小为1.88MB,这里还有bootsect和setup的代码。Windows Vista Home Basic的内核ntoskrnl.exe大小也仅为3.06MB。内核初始化过程中以及正常的运作要建立和管理大量的数据结构,占用大量的内存,结构体套结构体,这些结构体被组成一个个不同的链表,内核然后要维护这些的链表,事实上理解内核代码的一个重要的困难便是记住这些结构体大量的成员已经它们代表的含义(比如task_struct成员变量有90多个,看得人头晕啊),然后它们组成什么样的链表,内核代码如何操作它们。

  Linux内核启动之后也只有内核代码段和内核数据段两个段而已(相应的段选择符由宏__KERNEL_CS,__KERNEL_DS),之后便能高效地管理所有的软硬件,按照用户的意愿稳定可靠地运行,这确实让人感觉有点不可思议。Raymond提到,Windows NT同DEC的VMS有很大的渊源,Windows操作系统因为Microsoft小心翼翼守护着自己源代码的秘密,所以微软的操作系统给人一种高深莫测的感觉,感觉性能还是非常强劲的。Linux同Windows竞争,首先它便处于一种不平等的位置。Linux的源代码完全开放,任何好的思想设计方法Windows便能轻易地学习到(当然Linux也学习了借鉴许多Solaris等操作系统的技术),而微软却能因为Linux涉嫌模仿而将其告上法庭。

  不过Windows会因为向下兼容而束缚了自己的步伐,为了兼容,许多时候不得不放弃很多优秀的技术,所以很多顶尖的产品不能一直完全垄断整个市场,因为在其成熟稳定发展的时候,会有很多新型的产品在完全没有包袱的情况闪亮登场,它们秉承全新的理论思想,踩在巨人的肩膀上,然后同那些巨人同台竞争。最初的Windows框架谈不上优秀的,多少连累了现在的windows系统,微软有的是顶尖的程序员,财力又雄厚,开发更加高效安全的系统不会是一件多么困难的事情。我一直认为Windows还是蛮高效易用的,同样安装Mysql服务器,我通过BENCHMARK测试来比较Vista和Linux下两个服务器的速度。

  平台:Linux:Fedora Core 8,内核为2.6.23。Windows:Vista Home Basic

  Linux安装Mysql 5.0.45,Vista安装Mysql 5.1.22。测试时,机器都处于相对于比较清闲的状态,可用内存都非常多,因此测试结果还是能说明一些事实的。

  结果如下:

  mysql>select BENCHMARK(1 000 000, 1+1);

  mysql>select BENCHMARK(10 000 000, 1+1);

  mysql>select BENCHMARK(100 000 000, 1+1);

  Linux Vista

  第一次:0.04sec 0.05sec

  第二次:0.39sec 0.34sec

  第三次:3.87sec 2.85sec

  当运输量不断地增加时,Vista的优势却越来越明显了,这个结果曾经也让我郁闷了好一阵子,后来慢慢就想开了,这种测试是非常不全面的,Linux在集群和大规模运算是非常优秀的。既然自己喜欢就没有什么好怀疑的,Linux是伟大的,那种自由平等的精神融入了它的生命中,它对于全人类的贡献是巨大的,不论其实用之广泛,仅因为它为人们提供学习系统编程的一个实例它也应该受到虔诚的歌颂的。我非常习惯以及喜欢使用Linux,感觉确实很爽。

  这里顺便提一提盛气凌人的Mac,事实上Mac除了傲人的姿态和特别的固执之外,对于计算机工业和世界的贡献是远比不上Mac迷总是鄙视不屑一顾的PC。现在的Mac也逐渐走下神坛,CPU改用x86了,操作系统也改用全新的Mac OS X了。Mac OS X是Mach微内核和BSD的结合体,同以前的MAC OS是完全不一样的。这个结合体被成为Darwin,苹果官方的解释是:Darwin是Mac OS X的基础,基于UNIX的开源操作系统。Darwin整合了一系列的技术,包括Mach 3.0微内核,基于FreeBSD 5 UNIX的操作系统服务机制,高性能的TCP/IP网络,支持多种文件系统。由于Darwin设计时就注重模块化,因此用户可动态的加入设备驱动,网络扩展和新文件系统。Darwin的代码早已经开放了,开源的世界越来越丰富多彩了。不过Mac OS X这种Unix-like的操作系统对于习惯使用PC的用户仍能是非常陌生难于驾驭的,可以想象如果有一个富有的艺术设计工作者慕名去买了一个Mac机,以后使用起来会是什么样的感受。说来也气人,Microsoft Office和Tencent QQ都有Mac版的,却都没有Linux版的,他们公司都希望给大家留下一个自己喜欢艺术的美好印象,却完全忽略草根们的利益。如果Linux有Office,迅雷和QQ的话,我几乎想不到我必须要使用Windows理由(不过淘宝的登录模块似乎使用了ActiveX,所以非IE浏览器是不能正常登录的,这也让人感觉很郁闷,国内的企业眼光总是太短浅)。顺便附一句,对于我来说多少有点神秘的GNU Hurd操作系统也是建立在Mach微内核之上的,只是由于Linux的兴起和盛行给这个操作系统的前景投下了阴影。我有幸参加过一次Mac OS X的宣传演示,画面确实绚丽多姿,Linux的Compiz fusion中的特效就是Vista aero和Mac OS X特效的结合体。

  等到哪一天,我心血来潮,我就重装一下Vista,顶多给它分配40GB的空间,剩余的空间,我就安装一个Fedora Core 9,Free BSD,MAC OS X v10.5,一个系统分配20GB的硬盘空间,啊,多爽的事情啊~呵呵,差点又忘记了自己现在的努力目标了,我要集中所有的时间和精力理解Linux最新的内核,出发点是理解Linux 0.11内核,由于自己在C语言,编译原理,算法,微机原理,x86体系结构都没有很深的造诣,所以学习过程充满了新鲜感同样也是备受折磨。我已经错过了天才崭露头角的年龄了,那就好好努力吧,做一个平凡人能做到最好的。
阅读(384) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~