Linux的发展也引起了苹果公司的注意。1996年,苹果公司和OSF合作搞了一个MkLinux系统,以实现了纯粹微内核的Mach3.0+Linux服务为内核,它可以运行在装备PowerPC的苹果电脑上,这个PowerPC版的Mach被叫作osfmk,我在第二章中提到过,Mach的这个变体后来被用在Mac OS X中。乔帮主回归苹果时,Linus已经成了个名人,开源界的大佬,背后有着350万用户和开源社区、GNU、IBM、Sun、Redhat等的大力支持,其话语权不可估量,而Linux系统也被认为是抗衡微软的希望之星。正好Mac OS X的非GUI层(Darwin)又是开源的,乔帮主自然希望能把Linus拉到苹果一边。于是,他请Linus到苹果总部一叙,以下内容来自Linus的自传兼回忆录:Just for fun的中文翻译版(这个版本貌似是某些爱好者翻译的,国内没有出正式授权的中文版)。
Linus当时刚到美国不久,也正好想见见硅谷的明星们,于是屁颠屁颠来到乔帮主的办公室,看到乔帮主和Tevanian正在等他。乔帮主直入主题,声称在操作系统的领域只有两个玩家――微软与苹果,现在他给Linus指条明路,就是与苹果公司联合,并号召开源社区都帮着苹果玩转Mac OS X。
不过,Linus还是耐着性子想听听苹果的这个新系统到底有多牛B。于是接下去Tevanian就开始介绍Mac OS X的内核设计,也就是Mach微内核+Unix服务+I/O Kit,而且强调这个内核还是开源的,跟Linux的运作模式也是契合的。在第二章中我提到过,Linus没来美国之前,就和微内核的拥护者,Minix操作系统的发明者Tanenbaum在网上大吵了一架,因为两人对宏内核和微内核孰优孰劣意见相左(关于不同的内核形态,大家可以回头去看第二章)。Linus在他的自传中也提到了这次争吵,并且摆明了他的观点,微内核无法应对内核功能分解后不同内核模块之间猛增的通讯量。Linus这么说并不完全出于偏见,事实上,当年GNU自己的Hurd操作系统项目就打算采用微内核,结果正是因为无法Hold住内核模块间通讯的复杂性而难产(《操作系统的革命》23分40秒,Stallman承认了这一点,并且举了个例子)。听到牛B哄哄的Mac OS X使用的竟是自己最鄙视的架构,而自己的得意之作Linux可能只会被当作外部服务挂在这个微内核上(苹果公司在MkLinux上就干过这事),Linus再也忍不住了。他直言自己不喜欢微内核,微内核有各种缺点blabla。到了回忆录中,Linus更是直接写上他认为Mach“只是一堆废物”,而可怜的Tevanian更是连名字都没出现,只是被称为“随史蒂夫同来的那位苹果公司的主要技术人员”。我想,宾主寒喧时肯定会相互介绍,报上自己的名号,而Linus不写从大学时就开始热衷Mach的Tevanian的名字,也反映出他对Mach和微内核架构的极度不屑。接着,Tevanian又表示Mac OS X还要兼容旧的应用程序,Linus更不耐烦了,因为旧的Mac OS连内存保护都没有,也就是说,一个应用程序随时可能侵入另一个正在运行的应用程序的内存空间,随时都可能导致后者崩溃。
乔帮主在技术问题上碰了一鼻子灰,便又一次把他的开场白拿了出来,说Linux如果想占领个人电脑市场,抗衡微软,就一定要和苹果联合。这话倒是一点儿都没有夸大,由于Win统治下的用户很难适应Unix/Linux的那套命令行工作模式(就是像DOS那样的界面),如果GUI不行,那么Unix/Linux想要吸引个人电脑用户就难于上青天。以Linux目前的几个GUI,也就Ubuntu自带的那个弄得不错,其他的无论KDE还是GNOME,跟Win比都差着一截,遑论Mac OS了,而且它们还在不断地模仿Win和Mac OS的GUI(特别是KDE),搞得有点四不象。可是,这个美好的许诺依然没有打动Linus,他表示自己对打败微软没有兴趣(他的自传书名都说了,Just for fun嘛)。。。
KDE最新的4.7版,窗口看着还挺漂亮,那几个磁盘图标和Home文件夹是不是和Mac OS X上的似曾相识,而废纸篓图标又酷似Win7的回收站?一看任务栏,我凌乱了,这TM是回到win 98时代了吗?
Gnome 3,顶部那一行完全就是模仿Mac OS的嘛。。。底下那个地址簿APP的图标,是不是也和Mac OS X的地址簿长得像?
两个都个性十足而又坚持己见的人,如果出现了意见分歧,那几乎是不可调和的,所以乔帮主和Linus的这次会面没有取得任何成果也在情理之中。和开源界的大佬谈崩了,可苹果还得和开源社区打交道,毕竟那个Darwin是开源的啊。不过,正是这个Darwin,让苹果和开源社区最后也闹得非常不愉快。 --第三章:Mac OS X内核故事之苹果和开源界的那点事儿(上) 完--
第三章:Mac OS X内核故事之苹果和开源界的那点事儿(下) 话说Stallman领*导的自由软件运动10多年之后出现了一些分裂的迹象。自由软件许可证要求源代码开放、任何人有修改再发行的权利,这就意味着自由软件的开发者是不可能通过软件销售获利的。Stallman当初的设想是自由软件可以通过服务赚钱。软件的售后技术支持对个人来说可能无足轻重,我想即使用着正版Win、正版Office的也没有几个找过微软的售后,实在不行卸载重装嘛。可是对企业来说就没有这么容易了,谁也不敢拿商业数据的安全开玩笑。企业用户更倾向于选择丛有信誉的厂商获取软件和售后技术支持,哪怕要花钱,而不是直接到自由软件主页免费下载没有任何后续支持的源代码。在这方面也确实有不少成功的案例,比如1/9/8/9年成立的Cygnus Solutions,以及后来的RedHat。
然而,任何纯粹的东西在经济利益的侵蚀下都不免带上现实功利的色彩,更何况“自由分享”精神对人的道德水平的要求似乎高了一点儿。随着自由软件运动的发展壮大,专有软件厂商也开始盯上了这块蛋糕,当然,他们看上的可不是“自由分享”,而是“开源”。开放源代码,意味着可以吸引一大批程序员为软件的改进出谋划策、增加新功能、消除BUG,三个臭皮匠,顶个诸葛亮,何况这些为“开源”社区工作的臭皮匠还是自愿无偿的,如此好事谁不喜欢。于是,许多专有软件厂商也纷纷竖起“开源”的大旗,吸引一批程序员到自己麾下无偿贡献,而一旦发现软件有商业价值,便将其闭源变为专有软件。Stallman强烈反对这种违背自由软件精神的所谓“开源”,2007年,他在回答《ComputerWorld》记者提问时,明确指出自由软件和开源软件是不同的两个概念,“Free software is a political movement; open source is a development model.”,并把Linus归为“开源”一方。Stallman把他对开源软件的看法及开源与自由的区别写成一篇短文,放在了GNU网站上(http://www.gnu.org/philosophy/op ... he-point.zh-cn.html)。同时,GNU也没有完全抛弃一度失败的开源操作系统Hurd的开发(http://www.gnu.org/software/hurd/hurd.html),可能是打算作为Linux的备胎,虽说现在人们不再认为纯粹的微内核操作系统效率低,但Hurd依然没有发布过任何的稳定版本,生死难测。
Q: Will Mac OS X be ported to the PC? 问:Mac OS X(苹果机的操作系统)会被移植到PC上么? A: There are no plans to make Mac OS X available on any non-Apple platforms. We're simply making Darwin, the underlying operating system of Mac OS X, a better system by using x86 as a test bed to ensure architectural soundness and to reap the benefits from applying portable software coding practices. 答:我们没有任何让MacOSX在其他平台上运行的计划。我们在x86上运行Darwin内核,只是为了使得Darwin作为现在MacOSX的内部操作系统,从软件的可移植性角度来说,能够具有更好,更坚实的体系结构。”
”随着Mac OS X在x86 芯片上的发行,苹果决定不再开放一些操作系统的核心组件和驱动的源代码。这决定了Darwin/x86已经胎死腹中。Darwin/ppc已经有很多闭源的成份并且已经是要淘汰的体系。人们不禁要问苹果何必要释出这些非GPL协议代码,如果它不愿意和外界的(开源)开发者合作来增加他们对投入的回报和对Bug的修复以及新的功能。人们甚至更要问:我们为什么要花时间在这样一个没有结果和无意义的工作上。”