由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Apple版 - Mac OS X 背后的故事(二)——Linus Torvalds的短视zz
相关主题
Mac OS X 背后的故事(三)Mach之父Avie TevanianMac OS X生存和死亡的理由(转)
谁能解释几个mac的名词术语Mac OS X Leopard被正式承认为UNIX系统
十年磨一剑,苹果厚积薄发,卷土重来.很多人不了解PC和MAC的发家史
Linux抄得很快啊Mac OS X is dead
Mac OS X 背后的故事(八)三好学生Chris Lattner的LLVM编译解读浮思涛的离职
Adobe解释为什么Mac下的Flash慢救命!!IPAD sync之后所有的照片都没了??
gcc 4.3(or +) on Mac OS 10.6 (转载)还是我告诉你们什么是真实的软工(自尊脆弱者慎入)
如何把MAC系统里GCC 4.2 换成 GCC 4.4 , 会不会对系统有不好的影响?VersionTracker.com - one-stop Mac software update
相关话题的讨论汇总
话题: mac话题: apple话题: os话题: linus话题: linux
进入Apple版参与讨论
1 (共1页)
a****a
发帖数: 5763
1
《Mac OS X背后的故事》系列文章将为大家介绍Mac OS X的发行版本、技术历史、相关
人物等内容。本文是系列连载的第二篇,主要的故事来源是Linus Torvalds的自传《
Just for Fun: The Story of an Accidental Revolutionary》。
Steve Jobs于1997年回归Apple
Steve Jobs对Mac OS X的考虑
1997年,Steve Jobs回归,开发下一代操作系统的工作被提上日程。此刻的时代背景是
像Linux这样的开源软件大行其道。随着网络的发展,使得像Red Hat、VA Linux之类的
企业成为爆发户,把泡沫越吹越大。Steve Jobs承认Linux的好处,甚至在若干年后介
绍Mac OS X底层的Darwin时还不忘在幻灯片上写道:Darwin是类似Linux的系统。而当
时精明的Steve Job在考虑下面几个问题。
第一,NeXTSTEP的内核和外围工具中,BSD代码维护起来需要大量人力,而且各分支的
BSD发展显然不如Linux快。很多功能都没有,需要Apple自己做。
第二,像Apple这样的小公司,需要借力打力。Apple的主要竞争对手是Microsoft,而
开源软件的矛头也是Microsoft,如果联合起来干革命,不但能让自己得到一个好名声
(Apple事后一直自称是最大的开源软件公司),也可以获得可观利益,从而对
Microsoft造成压力。
第三,也是最重要的,联合各开源组织能够推动Mac OS的发展。毕竟开源软件中像GCC
之类都是很成熟的项目,Apple用起来省时省力,投点钱就有大效益,多好。
所以,把Linux内核作为Mac OS X的重要组成部分的想法被这位伟大的智者想了出来。
Apple之前也有开发Linux的经验,比如在Steve Jobs回归之前,Apple就和OSF合作开始
把Mach内核移植到PowerPC上(Apple是最大的PowerPC玩家,而OSF是最大的Mach玩家)
,并把Linux作为服务跑在Mach上。这个系统就是MkLinux,我们在后续的连载中还会提
到这个系统,因为它不但对Linux的移植性作出了重要的贡献,也对后来的Mac OS X的
XNU内核技术起到了相当重要的作用。
如果可以采用Linux作为系统重要组成部分,并且这个构想能够取得在开源软件界呼风
唤雨的Linus Torvalds的认同,就能靠他在社区鼓动一大群开发者皈依Apple麾下,这
是Apple很想看到的给力结局。有了这个指导思想,他便让秘书给Linux的开发者Linus
Torvalds发了一个邮件,问他是不是有一到两小时的时间和Steve Jobs会面。不明真相
的Linus Torvalds收到邮件后相当高兴,因为这是他第一次有机会去硅谷观摩。
无果而终的会面
Apple总部Infinity Loop终于迎来了这位稀客,Steve Jobs亲自接见,而先前任NeXT技
术总监的Avie Tevanian(这人的故事我们今后会提到)也参加了这次会谈。不用多说
,这次讨论的内容自然是还处于未知状态的Mac OS X。讨论算不上正式,但Linus
Torvalds的愤青个性,却让谈判陷入僵局。
Steve Jobs自然搬出他1997年回归之际在MacWorld讲话时的那套理论,Apple虽然很颓
,但骨子里是个牛逼的公司。全世界桌面领域的真正玩家就两个,一个是Apple,另一
个是Microsoft,两者加起来,构成百分之百的桌面用户群。所以,Linus同学,你就从
了我们吧,如果你从了我们,让我们把Mac架在Linux上,一大批桌面用户就是Linux用
户啦,前景可是一片大好!
而Linus Torvalds那时候牛啊,诸多大公司如IBM、Red Hat都围着他转。他可是企业家
中的大红人,像Apple这样的企业根本就不在他眼里。作为一个开源软件的革命家,在
他的想象中Linux的潜在用户应该比Apple还多。他始终相信,按照目前开源软件的发展
态势,自己很快就能在桌面领域分到一杯羹。而且这个命题在他这种古怪性格下的直接
推论是,即使我能占领桌面领域,我也要摆出一副不在乎这个领域的态度来。所以实际
上Steve Jobs的开场白就失败了。
接着,Avie Tevanian向Linus Torvalds介绍了整个计划。他们想把Mach和Linux内核合
并起来作为Mac OS X的基础,我估计Linus Torvalds是听错了(因为Avie Tevanian很
早就意识到相比于微内核,混合内核有明显优势),他以为Apple想把Linux作为Mach的
一个服务来跑(当然我个人认为,即使是合并Mach和Linux成为混合内核,依Linus
Torvalds的愤青性格,依然是不可能接受的),这正让他回想到先前和Tanenbaum教授
的笔战。并且,他也知道Apple和IBM合搞的失败项目Taligent正是用Mach的。
Linus Torvalds对于微内核有他自己的看法,之前也曾在不同的地方表述过。若把关于
微内核的笔战去掉限制级敏感词的话可概括成两方面。一方面,设计一个微内核和相关
的服务,可能造成各种设计上的灾难。GNU/Hurd早在八十年代末就考虑尝试在Mach上写
一系列Unix的服务层,结果他们始终无法搞明白到底是让这些服务先发消息到另几个服
务呢,还是考虑其他方案。所以直到2011年我写这篇文章时,Hurd项目依然处于半死不
活的状态。而另一方面,微内核的效率无法和传统内核相比,最简单的系统调用会涉及
一系列底层服务的互相通信。所以很多研究者着手研究如何把微内核的效率提上去,结
果就导致微内核变得更加复杂。能提高微内核效率的很多研究成果都已在Mach项目中实
现了。而在Linus Torvalds看来这恰使Mach成为了一个非常复杂的项目,并且效率也不
怎么高。
会谈时坐一旁的Avie Tevanian事实上是Mach最早的开发者之一,他热情地给Linus讲述
Mac OS X系统蓝图。而Linus实际上早就不耐烦了。比如,Mac OS X中,有一个模拟层
,可让用户使用经典的Mac OS程序。这个技术极类似于现在跑在Unix系统上执行
Windows程序的Wine。Apple当时的考虑是这样,因为老的Mac OS在设计API时,就没有
考虑到类似内存保护之类的问题,所以这层API必须废掉,Mac OS X中所有的新程序必
须采用NeXT的那套更先进的API(根据我的考证,当时还没有Carbon这样的想法,而且
事实上Carbon不管在API还是ABI上都和经典Mac OS不兼容)。而短期内已有的软件又不
可能快速重写迁移至Mac OS X。所以,如果用户需要使用老版Mac OS的第三方应用程序
,就可以使用Apple提供的这个兼容层。但是由于刚才提到的原因,老版程序并不享受
新版程序的待遇,因为模拟器本身运行多个老Mac OS任务时,和原先老版Mac OS一样,
实际上只有一个进程,没有内存保护。这样做的好处是明显的,因为一方面老的程序在
Mac OS X发布之初还能用,另一方面Apple又和老技术划清了界限,逼着开发者使用新
技术,技术方面的原因是最重要的。但这个看似很正确的技术在Linus Torvalds看来是
古怪的,他想当然地认为,完全可以运行多个不同的模拟器进程,来执行不同的任务,
使得每个任务都可以享受内存保护。这种浪漫主义情调让他无比鄙视Apple员工的智商
。而事后当笔者使用早期版本的Mac OS X时,发现Linus Torvalds的想法完全是不切实
际的。因为这个模拟层本来就要占用不少的内存和CPU,在处理器速度不及今日手机、
内存无比精贵的90年代末,跑一堆模拟器进程无异于是和自己过不去。
Steve Jobs考虑到Linus Torvalds是开源软件的领军人物,便继续以开源为话题,动之
以情,晓之以理。他告诉Linus Torvalds,我们这个系统做出来后呢,所有的Unix层(
非图形界面层),都会开源,所以事实上你加入我们,也是在给开源做贡献啊!而由于
在开源圈子混久了,Linus Torvalds对此丝亳不领情,他认为,有谁会想用一个底层是
开源而图形界面是不开源的系统呢?所以,像笔者这样的用户被“代表”了。
Mac OS X与Linux分道扬镳
总之,这次会面完全谈崩,两人站在不同的角度去看问题,加上Steve Jobs和Linus
Torvalds都是个性鲜明、唯我独尊的人,技术和商业上的考虑都不同,所以会谈中双方
简直就是鸡同鸭讲。这次讨论也使得Apple放弃Linux,转而采用FreeBSD技术,并在
2001年任命FreeBSD的发起者、领军人物Jordan Hubbard为BSD技术小组的经理,并在后
来升为Unix技术总监。至于Apple的内核技术后来走向何方,我们下期再讲。
笔者认为,Apple和Linus Torvarlds的商谈破裂,以今天的眼光来看,是因Linus
Torvarlds的自命清高和短视造成的。他不懂得尊重其他开发者的意见,并且不断抬扛
。包括后来关于C++的论战。Mac OS X发布后,Linus Torvalds又数次嘲笑Mac的技术落
后,并说这些他在当年和Steve Jobs开会时就预料到了。直到最近,他终于有些成熟,
对Mac OS X的观点开始缓合,但还是不忘批评Mac的文件系统就是垃圾(事实上,Linux
的也没好到哪去,至少Apple还搞过一阵ZFS)。这种性格最终导致在Mac OS X和iOS大
行其道的时候,Linus Torvalds连兔子汤都不曾分到。
而事实上这对Apple也是件好事。Apple重要的是利益而不是折腾,即使是开源也是利益
驱动。像类似Linux开发组那样自以为是但代码又写得差的开源项目,Apple事后也遇到
不少,比如GCC编译器项目组[1]。虽然大把钞票扔进去,在先期能够解决一些问题,但
时间长了这群人总和Apple过不去,并以自己在开源世界的地位恫吓之,最终Apple由于
受不了这些项目组人员的态度、协议、代码质量,觉得还不如自己造轮子来得方便,因
此Apple推动了类似LLVM这样宏伟的项目,并且在短短几年内,使其成为最领先的开源
软件技术。这无异于扇了Linux小组、GCC小组一记响亮的耳光。
参考资料:
[1]来自于openbsd创始人的访谈,Theo de Raadt,Otto Moerbeek,Jem Matzan,MORE
ON OPENBSD’S NEW COMPILER,Oct 15,2007。
作者介绍:王越,清华大学建筑学院毕业,现居美国。中国著名TeX开发者,非著名
OpenFOAM开发者。
l**n
发帖数: 7272
2
最近我发现在老的GCC上,STD::LIST size()的实现居然要遍历整个LIST。还好GCC4.7
有fix。
n**4
发帖数: 719
3
这个连载很好看!
r****y
发帖数: 26819
4
翻译的味道很浓啊,确实不少材料来自那本just for fun

【在 a****a 的大作中提到】
: 《Mac OS X背后的故事》系列文章将为大家介绍Mac OS X的发行版本、技术历史、相关
: 人物等内容。本文是系列连载的第二篇,主要的故事来源是Linus Torvalds的自传《
: Just for Fun: The Story of an Accidental Revolutionary》。
: Steve Jobs于1997年回归Apple
: Steve Jobs对Mac OS X的考虑
: 1997年,Steve Jobs回归,开发下一代操作系统的工作被提上日程。此刻的时代背景是
: 像Linux这样的开源软件大行其道。随着网络的发展,使得像Red Hat、VA Linux之类的
: 企业成为爆发户,把泡沫越吹越大。Steve Jobs承认Linux的好处,甚至在若干年后介
: 绍Mac OS X底层的Darwin时还不忘在幻灯片上写道:Darwin是类似Linux的系统。而当
: 时精明的Steve Job在考虑下面几个问题。

A**u
发帖数: 2458
5
净瞎说,蛊惑人心
虽说Mac OS用了是Unix内核
不是Linux内核
但是Mac系统上,有不少open source 软件,
这些open source软件的发展,linux发展是贡献了巨大力量的
我想不少学校里的用Mac,尤其是理科可能是
1。 像windows一样,有商业软件支持
2。 像Linux一样,可以装很多方便的开发工具,编译环境
所以,这文章在这里大放厥词, 真是挖自家祖坟,忘恩负义
a****a
发帖数: 5763
6

mac上那些open source是从 linux来的?
你不会以为只要是open source 就是linux 吧

【在 A**u 的大作中提到】
: 净瞎说,蛊惑人心
: 虽说Mac OS用了是Unix内核
: 不是Linux内核
: 但是Mac系统上,有不少open source 软件,
: 这些open source软件的发展,linux发展是贡献了巨大力量的
: 我想不少学校里的用Mac,尤其是理科可能是
: 1。 像windows一样,有商业软件支持
: 2。 像Linux一样,可以装很多方便的开发工具,编译环境
: 所以,这文章在这里大放厥词, 真是挖自家祖坟,忘恩负义

1 (共1页)
进入Apple版参与讨论
相关主题
VersionTracker.com - one-stop Mac software updateMac OS X 背后的故事(八)三好学生Chris Lattner的LLVM编译
[转载] Mac OS X terms and definitionsAdobe解释为什么Mac下的Flash慢
新的xcode3.2不错gcc 4.3(or +) on Mac OS 10.6 (转载)
flight control新纪录如何把MAC系统里GCC 4.2 换成 GCC 4.4 , 会不会对系统有不好的影响?
Mac OS X 背后的故事(三)Mach之父Avie TevanianMac OS X生存和死亡的理由(转)
谁能解释几个mac的名词术语Mac OS X Leopard被正式承认为UNIX系统
十年磨一剑,苹果厚积薄发,卷土重来.很多人不了解PC和MAC的发家史
Linux抄得很快啊Mac OS X is dead
相关话题的讨论汇总
话题: mac话题: apple话题: os话题: linus话题: linux