巴特勒·兰普森——从Alto系统首席科学家到微软首席技术官回目录
1992年度的图灵奖授予当时任DEC公司高级研究员和主任设计师的巴特勒·兰普森(Butler Wright Lampson)。对于中国读者来说,兰普森这个名字已并不陌生,因为他于1999年6月曾与雷迪(raj Reddy,1994年图灵奖获得者)一起到北京参加了由《计算机世界》和微软中国研究院主办的“21世纪的计算学术研讨会”暨“中美顶级计算机科学家高峰对话”,会上,他发表了“21世纪的计算研究”的精彩演说,给国人留下了深刻的印象。
兰普森1943年12月23日生于华盛顿。他曾在哈佛大学就读,学的是文科。1964年获得文学学士学位之后他进入加州大学伯克利分校研究生院,改修理工科,于1967年获得博士学位。留校任教4年以后,兰普森进入产业界,先后在施乐(Xerox)公司的Palo Alto研究中心(即著名的PARC)和DEC公司工作,1995年加盟微软,任软件总工程师至今。
兰普森首次接触计算机是在哈佛上物理课的时候,当时他的老师手里有个课题,要用计算机分析火花塞的照片,老师让兰普森在PDP-1上编制有关程序,他从此喜欢上了计算机。进伯克利以后他上的是物理系,那时伯克利正研制第一个商用的分时系统SDS-940,兰普森从一个朋友处知道了这一情况,极感兴趣,并积极主动争取进入该项目组,从此他放弃了物理学而进入计算机这一新兴领域。
兰普森是一个兴趣广泛、多才多艺的计算机专家。他在硬件、软件、程序设计语言、计算机应用、网络……诸多方面都有许多成果,他拥有的专利数量多达25个。我们下面只给出兰普森曾主持或参与开发的主要系统和产品的一个小清单。
硬件方面:在PARC时有以太网(Ethernet),Alto计算机系统和Dorado系统。在DEC时,兰普森主持了用世界上最快的计算机芯片Alpha作中央处理器的A1pha工作站体系结构的设计。这是当前世界上最负盛名的64位工作站,是所谓第四代工作站中的典型和佼佼者。
软件方面:前述SDS-940和Alto的操作系统。
程序设计语言方面:LISP、Mesa、Euclid、SNOBOL等。
应用方面:Bravo编辑器,Star办公系统。
网络方面:Grapevine电子邮件系统,Dover网络打印机。
在上述系统和产品中,我们只简要介绍一下Alto,因为这是兰普森至今所开发的系统中最重要的一个系统,它所产生的影响也最大。
Alto是PARC在20世纪60年代末70年代初设计与开发的世界上第一个个人计算机系统,1973年完成并正式投入运行。它是当时最先进的计算机系统,有一系列的新构思、新创造、新发明、新部件,其中最主要的是有高分辨率的全屏图形系统,在世界上首先实现了图形用户界面,打破了传统的只能用字符实现人机交互的限制,开创了计算机历史上有重大意义的新的一页,使计算机与人的关系上不再是“生硬”、“冰冷”,而是“友好”的。这一变革对计算机的推广应用至关重要。为此,Alto上配备有“鼠标器”(mouse),这是斯坦福研究所SRI的恩格尔巴特(Douglas Engelbart,1997年图灵奖获得者)不久前发明的。但恩格尔巴特的鼠标器是木质的,体积也比较大,PARC对它的结构作了重大改进,使之小巧玲珑,已比较接近我们当前所使用的鼠标器。Alto的另一个先进外部设备是8时软盘驱动器,虽然8时软盘并非首次用于计算机,但PARC采用了一些新的技术,使Alto的8时软盘能存储的信息量在当时是最高的。此外,Alto上还配备了一些出色的软件。十分可惜的是,由于Xerox决策层的失误,Alto系统虽然在PARC内部被广泛采用,但它却没有被商品化推向市场,它在公众面前仅仅是作为相当出色但却十分昂贵的Xerox 850专用字处理系统而露脸的。但Xerox 850上市以后,Alto的独特功能和出色性能立刻引起了业界许多人的注意,其中包括苹果公司的乔布斯(Steve Jobs)。乔布斯组织他公司里的技术骨干到PARC参观、座谈,学习,又从PARC挖去了一些参加过Alto开发的技术人员,比如拉利· 泰斯勒(Larrv Tessler),然后仿照Alto,先后推出了Lisa机和Macin-tosh机。Lisa机不太成功,Macintosh则大获成功,一炮打响,成为最受欢迎的高性能个人计算机系统之一。1999年末,美国《财富》杂志发布了“本世纪杰出产品”排行榜,40种著名产品榜上有名,信息技术只有两个产品挤身其中,一个是Intel公司的微处理器,另一个就是Macintosh。这样,半个多世纪中曾经涌现出来过的无数计算机产品,包括巨型机、大型机、小型机、微型机中,只有Macintosh一种型号被戴上了“世纪杰出产品’’的桂冠,可见Macintosh的魅力和影响。但是,客观地说,Macintosh的成功和光荣至少有一半应归功于Alto。
Alto的强大功能和优异性能来自它的超前的设计思想,即将计算机的体系结构和计算机所要采用的程序设计语言和操作系统等系统软件和支撑环境统一加以考虑,以集成方式设计和开发。这种设计思想是Alto成功的关键,同时也成为后来计算机系统设计的主导方向。著名的瑞士计算机科学家尼克劳斯·沃思(Niklaus Wirth,1984年图灵奖获得者)正是作为客座研究员访问PARC期间参与了Alto的设计与开发,受到启迪和影响,在回到瑞士以后开发了Lilith系统和Modula-2语言的
由于Alto的巨大成功和影响,ACM于1984年将“软件系统奖”授予了Alto,兰普森作为Alto的首席设计师是第一获奖人,第二和第三获奖人分别是泰勒(Robert W.Taylor)和萨克尔(Charles P.Thacker)。
大家都知道,C语言是在BCPL语言的基础上发展起来的,但据兰普森自己在一次接受记者采访时透露,他和德契(Peter Deutsch)还设计过一种语言,并实现了这种语言的编译器,也是C语言的前身。
除了在系统开发方面的诸多贡献之外,兰普森在解决计算机文件系统和分布式系统的技术问题上也有许多贡献。例如,20世纪70年代中期,兰普森在设计一个文件系统时就提出了“原子事务”(atomic transaction)的概念。在1979年举行的一次可靠分布计算会议上,兰普森提出了采用“三明治式的提交协议”(sandwich commitprotocol)提高系统可靠性的方案,等等。
兰普森之所以有如此丰硕的成果,除了他的勤奋以外,一个很重要的因素是他既十分重视学习和继承,又敢于和善于创新。以兰普森在20世纪70年代开发的第一个交互式的编辑器/格式化器Bravo为例,据兰普森本人介绍,就是他在恩格尔巴特推出的“在线系统”NLS(oNLine System)的基础上加上他自己的新构思而开发成功的。NLS是一个用鼠标定位和操作的全屏幕显示的结构化文本编辑器,兰普森在“文本如何表示”和“如何对文本更有效地进行修改”这两个问题上加进了自己新的设计从而形成了Bravo。Bravo后来又被进一步发展成为“所见即所得”(WYSIWYG)的系统。
兰普森发表了不少论文,但出版著作不多,见到的重要著作是《分布式系统——体系结构和实现:高级课程》(Distributed System---Architecture and lmplementation:an Advanced Course,Springer,1981)。
兰普森从1987年起就一直担任MIT的兼职教授,并被选为美国科学院和美国工程院院士。目前他在微软拥有“首席技术官”的头衔,但这只是一个“空头衔”,因为他手下没有一个人,也不管理任何人和任何项目,他只“管理我自己”,研究自己感兴趣的课题,偶尔和比尔·盖茨(Bill Gates,微软的创始人和总裁,1999年末刚解除总裁职务,任命自己为“软件总设计师”)讨论问题和交换意见。他对微软的这种用人之道很欣赏,认为把“一个最好的技术人员变成最好的管理人员并不是一个好的主意,因为这样做的结果往往会损失了他的技术特长,而且技术人员做管理有时也不一定能变成一位最好的管理人员”(引自《计算机世界》报,1999年7月5日,A35版,记者对兰普森的采访报导)。以这种自由自在的方式,4年中兰普森已经为微软贡献了6项重大成果,其中一项是和MIT合作开发的用于Internet信息安全的加密算法。在网络日益普及的情况下,兰普森的这项成果意义十分重大。
兰普森最近获得的一项奖励是IEEE在1996年授予他“计算机先驱”奖。综观兰普森的成就和贡献,他是无愧于这一崇高称号的。
图灵奖得主Butler Lampson在中国的演讲回目录
2003年11月5日“二十一世纪的计算-探索计算之源”国际学术研讨会在北京国际会议中心举行,微软公司高级副总裁Rick Rashid博士、菲尔兹奖获得者丘生桐博士、图灵奖获得者Raj Reddy博士、微软亚洲研究院院长兼首席科学家张亚勤博士、微软公司副总裁李开复博士等知名学者做了主题演讲。新浪科技对本会议做了全程独家直播报道。
以下为图灵奖得主Butler Lampson博士演讲全文:
今天我要讲一下计算机严重性的问题,我们在现实世界中面临许多经验,从历史上来说,很多人没有朝这方面去想,如果我们的计算机完全地控制,一些原则我们都能够理解,应该是能够形成完美的安全性的问题。但是有很多经验告诉我们,实际上并非如此,基本上计算机安全系统是很复杂的。如果在大街上随便问一个人,他们会说安全是把东西锁住,然后有密码才能进去。实际上的情况并不是这么简单。遇到控制或者是锁起来并不是把坏的拒之门外,而是不经常地进来,使坏人进入的时候被抓住,一旦抓住了就惩罚,而且这个惩罚要有效,整体而言能够起到这样的作用。并不是说贼不能进入这个系统,而是说贼完全可以进入的。要使他难以进入,一旦被入侵以后所有这些东西必须使安全系统能够起作用。
还有一个安全问题是成本很高的,你只需要你真正需要的就可以了。如果你不告诉人们说安全性是有一个价格的话,可能很多人说算了,我不买了,不花钱了。人们理解的非常好,除非你居住在犯罪率很高的地区,否则你不用花很多钱。现实世界中人们都能够理解这些基本的道理,在计算机世界中我们在这方面还没有做很多解释,人们不了解这个情况。
所有这些结果是要形成完美的安全,我想花几分钟来讲一下人们应该怎样思考计算机成本和效益。你想保护一些什么东西?你面临的危险是什么?你可能对这个危险的认识不够,大部分人主要是对计算机受破坏、信息受损,主要是这方面的安全,还有人们也担心钱被偷,但是人们对信息的丢失好象并不是很担心。当然每个人的关注程度是不一样的,就安全这个领域来说我们分成好几类,一个是要保持完整性,就是信息不受损,另外要确保你的信息随时能够得到使用。比如说编程不好是因为有各种各样的病毒在里面。你所采取的防卫措施是什么呢?基本上有两种办法,一个是你想抓住他们来惩罚他们,可以根据不同的途径来做,比如说如果买一个计算机写了所有程序,而且是不用连接的,这就很安全了,但是也发挥不了很大的作用,所以隔离是一种有效的方式。另外一种是也隔绝,一旦坏人侵入到你的系统里面,你要了解哪些人构成威胁,把他们限制起来。比如说可以把JAVA代码下载下来,不会上它受到删除的威胁。当然这也是一种非常有利的工具。但是信息被侵犯方面没有太大的作用。
另外一个方式除了控制这些坏人以外,就是要把这些坏人抓住,惩罚他们,最主要的技术是有一种跟踪的机制。一旦知道计算机出了什么问题可以随时进行检测,如果你想保护电脑不受病毒侵袭的话,不能很奏效,如果你担心的就是内部计算机系统安全性的话,可以组织公司以外的人进入,公司内部的人可以进入,但是你就不能保证内部的人不能够进入你的系统,如果有人一旦进去可以把他们抓住并进行惩罚。
很典型的情况是当人们对复杂的系统增加一些程序,怎么样设计安全性能的时候,把它叫做访问控制的模型,这是非常简单的。比如在这张图右边是物品,然后你有一些要求,形成银行帐务、报表,可以进行请求,设置一道防卫线,每个东西都重新进行命名,必须有一个参照的东西。整体而言如果看一下警戒线的作用是什么的时候,了解一下谁提出了请求,就是一种核实认证。有人提出了请求,我是否要批准这些请求。另外一个是授权,在右下角是核实,如何鉴别哪些请求应该批准,哪些请求应该拒绝。
虽然辨认和核实是两个主要的机制,核实是了解一下请求都是从哪里来的,这里面有很多原则,核心的原则是一个人这样能够了解其他系统的识别,比如说服务器、编程等等。如果不在名单上就没有变化进入系统,这种系统并不是个人,而是一些对特征的描述,比如说18岁以上的人可以购买碳酸饮料,或者是一些安全编程可以在这个系统进行运作。还有就是审计,你写的安全性这些编程应该能够实施它的安全性。另外是出版的问题,一旦你了解安全性是什么之后,这个方面基本的想法就是怎么样能够尽量地奏效。比如说有上千百万条的代码,要把这些确定,实际上这是不现实的,要尽量使你所依赖的代码的数量越少越好,很多人在这里面已经挣扎很久了,而且成功率不是很高。我们经常忽视的除了包括硬件和软件以外,还有包括一些配制的事情,比如说软件里面哪些用户可以使用哪些程序,哪些用户不能用,这都是运算环境的组成部分。如果不明确的话显然你的安全会受到影响的。他们说你只能在计算机里面有用户或者是系统管理者已经进入的代码进去做编程,来武断地实施他们的办法。另外一个问题是配制的问题,几年前在一些大的公司,寻找到一百多个数据库的服务器,数据库有一个命令但是谁都可以进去以后,最关键的问题是不可避免地要负责的角度,显然这种说法是非常不受人欢迎的。因为没有十全十美的安全性的问题。为什么需要系统如此安全呢?许多人不愿意花更多的钱来得到安全性。因为历史上来说基本上没出什么事,你要购买安全性的话成本昂贵,当同样安全性这方面要花很多时间才能设计出来,而且不是绝对的。关于安全性用户界面这一点非常糟糕,用户不了解怎样使用安全性,这就是主要的原因。为什么没有真正意义上的安全性,另外一个我们的系统是非常安全的,有各种各样的病毒,在这方面人们是注意的,只要注意这些病毒进入就可以保证安全了。但是这并不是关键的,关键是安全性里面有很多价值,他才愿意支付更多的代价来维持安全性。
下面我讲技术性比较强的一个方面,给大家一系列比较抽象的想法来对待复杂系统安全性的问题,目的是要对能够得到确认的实体进行确认,这样才能分出来请求是真实的还是非真实的,所以要了解各个组成部分。我举个例子给大家做一个解释,Alice工作这是微软和英特尔共同合作的项目,他有一个网站,通过对访问的核实来进入网页,是通过加密的方式进入这个网页,尽管是通过浏览器或者是服务器进入。在Alice提出一个请求的时候,要对这个请求加密,然后把请求传到服务器,可以跟踪整个过程。通过跟踪就能够判断出这个被加密的请求是否被批准?我们谈的第一个概念已经谈过了就是有关负责人的概念,实际上这个负责人也是抽象的东西。主要是搞清楚谁发出来的请求,这两方面实际上涉及到一系列的原则。负责人是指的谁这么一个抽象的概念。需要搞清楚第二个概念就是Speaks for。这就是我谈的概念,我们看一下除了这两个以外还有一些应用。
我们怎么能够搞清楚A是B的代言人,可以用手工的方式,但是在系统当中我们相信A负责人把自己的权利下降,如果A说他为B代言的话,我们就相信他了。有的时候规则可能是太简单了,我们可能希望有一些更有限的规则,人们经常问如果A为B来说话的话,是不是就不好这个问题,只能是具体情况具体对待。我们怎么判断有了这些条件就够可以访问这个网页了?有一个进入的P,这个P可以是所有人的代言人,许可限制了这个P所能说的话。我对此了解所有的一切都和安全和基于控制的模型这个系统有关的,有时可能要做一些努力来搞清楚,但是总是能够正常运转的。我给大家讲了一个比较简单的例子,可以来考虑一些比较复杂的东西,这又是一个例子,到目前为止我还没有谈过,怎么对计算机系统进行验证。对计算机系统进行验证,我们回答的一个基本问题就是在我把程序下载到一个系统上,比如说微软服务器,我们把程序代码下载下来。正在运转新的程序,或者说这个信息是来自服务器的,我们现在详细看一看原理是怎么运作的。下载程序的安全都要取决于运行的速度,SQL服务器的速度是不够的,下载程序的安全性我们怎么表达呢?H说SQL,我们用它来表示速度在H中的程序,我们在SQL说了一些事情的时候,就说程序这些事情是说了。它要说的意思被认为是H说服他人他运行了SQL。信息的安全性应该相信程序要取决于你多大程度序上相信这个程序。
谈到最后有关保证的最后一点我刚才说了可信度的计算,环境的问题,所有应用操作系统的情况,它的理念是非常简单的。最好是从头开始,就是重新用一个机器来运行。可以装一个小的软件,然后很安全地运行这些小的软件,但是不需要第二代机器了。
在整个计算机行业我们可以建立很大的复杂的系统,而基本的安全就是我们从头开始。如果想知道更多的情况,我们有一个论坛,在这个网页上,有很多的参考资料和论文它可以信息地来解释这些问题。如果你想更多了解现实安全问题的话可以登录Research Microsoft COM/Lampson。谢谢。
1992年图灵奖获得者Butler Lampson更多资料回目录
Butler W. Lampson(1943–)
图灵奖获得时间: 1992年。 第二十七位图灵奖(1991年)获得者。
图灵奖引用(Turing Award Citation) :
For contributions to the development of distributed, personal computing environments and the technology for their implementation: workstations, networks, operating systems, programming systems, displays, security and document publishing.
( 授予Butler W. Lampson图灵奖以表彰其在)分布式计算环境,个人计算环境的研发和实现技术,其中包括:工作站,网络,操作系统,程序语言,(计算机)显示,(计算机)安全和(计算机)文档排版处理等。
Lampson是著名的XEROX PARC研发中心的创建者之一。通常认为,Lampson与其XEROX PARC的同事是第一个个人计算机的研发者。1972年,Lampson写下一个备忘录“Why Alto?”,被认为是个人计算机的一个早期的前瞻性的文献。
关于ALTO计算机,可参阅:
http://www.computerhistory.org/events/lectures/alto_06042001/
http://research.microsoft.com/~lampson/38-AltoSoftware/Word.doc
另外,Lampson也是早期XEROX PARC研制的个人计算机D-Series机器的主要研发者。D-Series计算机包括:Dolphin Xerox 1100, Dandelion Xerox 1108, Dandetiger Xerox 1109, Dorado Xerox 1132, Daybreak Xerox 6085和Dragon。
Turing Award Lecture(图灵奖演讲文章):(无)
Butler W. Lampson简介:
Lampson Wiki: http://en.wikipedia.org/wiki/Butler_Lampson
Lampson at Microsoft Research Lab: http://research.microsoft.com/Lampson/
http://www.answers.com/topic/butler-lampson
Lampson出生于1943年。1964年Lampson从哈佛大学获得其物理学士学位。1967年从UC Berkeley获得其电子工程与计算机科学的博士学位。
60年代,Lampson加入了UC Berkeley得GENIE项目。1965年,与Peter Deutsch一道,开发了SDS 940操作系统。
1970年,Lampson参与组建了著名的XEROX PARC研发中心。Lamson任职于举世闻名的计算机科学实验室(Computer Science Laboratory CSL)。
在PARC CSL工作其间,Lampson在个人计算机的发明领域做出了极大的贡献,并且是XEROX的D系列计算机的主要贡献者之一。
另外,Lampson也参与了许多PARC的著名的项目和发明工作,例如,激光打印机,WYSIWYG(所见即所得),以太网(Ethernet),局域网(Local Area Network),程序设计语言等等。
80年代,Lampson离开XEROX PAR,加入了DEC(digital Equipment Corporation),目前,Lampson任职于Microsoft的研发中心,同时Lampson也是MIT的兼职教授。
参考文献回目录
《网络传奇》 机械工业出版社 2006版
http://www.sawin.cn/doc/FLY/Personality/blueski1097.htm
http://en.wikipedia.org/wiki/Butler_Lampson
http://www.tektalk.cn/
http://tech.sina.com.cn/focus/mic1998-2003/index.shtml