看了一会儿《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多个,看得人头晕啊),然后它们组成什么样的链表,内核代码如何操作它们。
这里顺便提一提盛气凌人的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体系结构都没有很深的造诣,所以学习过程充满了新鲜感同样也是备受折磨。我已经错过了天才崭露头角的年龄了,那就好好努力吧,做一个平凡人能做到最好的。