《UNIX传奇》逸事

2020年5月份,人民邮电出版社的杨海玲老师找到我,问我有没有兴趣翻译一本题为 UNIX: A History and a Memoir的书。我已经十年没有做图书翻译,但了解到这本书作者是Brian W. Kernighan之后,确实有了翻译的冲动。

BWK是谁呢?他是UNIX早期核心开发组成员,和C语言发明人Dennis Ritchie写了经典的C Programming Language图书,是那个璀璨时代的亲历者。

这位老爷子要求几位候选译者发英文简历给他,由他决定谁承担中文版翻译工作。很幸运,我被挑中了。中文版于2021年初面世,总算完成一件有价值的事。BWK在中文版给读者的话及新书发布会视频贺词中都提到我的名字,这令我倍感自豪。

书中提到许多人和事。篇幅所限,并没有全面敞开写。我在翻译过程中查阅了一些资料,略说几件,作为这本书的花絮吧。

价值12000美元的米格战机之旅

书中写道:1992年十二月,肯和弗雷德·格兰姆帕到莫斯科驾驶一台米格29战机,比起他们平时开的塞斯纳飞机更上层楼。

这事发生在1992年十二月11~17日。他们通过Fly-with-us公司,每人交12000美元(不含往返路费),踏上莫斯科米格战机之旅。以每加仑牛奶价格计算,1992年12000美元购买力大概相当于现在的4-6万美元。在那一周里面,他们游览了景点,在L39教练机上学习,还分别体验了30分钟米格29战机。

肯回来后,专门写了一篇文章,记录这次难忘的旅行。文章链接是http://genius.cat-v.org/ken-thompson/mig,有兴趣的读者可以自行阅读。仅从写作的角度看,这篇文章也饶有趣味。尤其是关于在米格战机上体验的部分,军迷们应该都会很有兴趣。就说一点:俄军飞行员掌舵时,带他来了一次眼镜蛇机动。这可以算是任何飞行爱好者的高光时刻了。在文章末尾,肯评价这次旅行说:Was it worth it? Yes. Would I do it again? No. (这次旅行物有所值吗?是的。我会再来一次吗?不。)

神秘人M- L-先生

在写“Unix房间”的章节中,作者提到,“1127以外的Unix早期拥趸中,有一位非常杰出的理论物理学家。为逝者讳,姑且叫他做‘M- L-’ 好了。M- L-渴望使用Unix,他预见到物理学研究将大量使用计算机。他善良而大方,就是话多,能听得你耳朵起茧子。只要他一开口,就谁也就没有办法拦得住之后一个小时的独白。于是,有人在Unix房间的门上挖了一个小孔,这样我们就可以在进门前窥视一下,看看他是否在里面。这就是所谓的‘L-洞’。”

这位M- L-先生是何许人也呢?我查了一些资料,发现有可能是梅尔文·拉克斯(Melvin Lax)。拉克斯是纽约城市学院的杰出物理学教授,并于1983年当选为国家科学院院士。1962年至1964年,他担任贝尔实验室理论物理系主任。

拉克斯不但是杰出的理论物理学家,还是狂热的计算机技术爱好者。他推动美国物理学会接受使用Troff排版的论文,为以后TeX的普遍使用开拓了道路。《UNIX传奇》中也写了Troff(而且这本书的英文原版也是用Troff的后续版本Groff排版):

“为了驱动排版机,乔为Nroff写了个他称之为Troff的重要扩展。“T”代表排版机(typesetter),整个词念做tee-roff。Troff语言刁钻晦涩,只有很少人精通,但只要学会技巧、保持耐心,就能让它完成任何格式化任务。实际上,Troff是为特殊型号计算机设计的汇编语言,所以大多数人通过宏包来使用它。宏包封装了常用的格式化操作,如标题、章节标题、段落、编号列表等等。宏成了一种底层Troff命令之上的高级语言。”

拉克斯是UNIX专家。他在纽约城市大学装了UNIX系统。同事Michael Lubell问他,纽约城市大学的UNIX为什么比耶鲁大学的VMS要好时,拉克斯张口就讲了几个钟头,还找出一大堆书和笔记给Lubell,说:“花几天时间读读你就知道了。”Lubell后来说:“几天?对梅尔来说,也许是这样。对我来说,这是一年的工作。”

千面彼得

贝尔实验室计算研究中心气氛宽松,研究人员们像孩子一样调皮。《UNIX传奇》写道:

“1985年,彼得·温伯格晋升为1127主任。公司内刊《贝尔实验室新闻》为他拍摄了一张专业照片。千不该万不该,彼得错将这张肖像照留在了Unix房间。很快,他的尊容就在Unix房间遍地开花。”

“在AT&T揭晓公司新徽标后的几周内,汤姆·达夫(Tom Duff)弄了一个彼得徽标,从此成为我们中心的象征符号。”

这张脸随后被印到很多地方:楼梯拐角、水泥地面、光盘、杂志封面、电路板……

无论在东方还是西方,“上级”怎么说都有一些权威性。将上级的脸到处印,还真不是一般人干得出来的事。好玩的是,彼得对此也没有反对或者给谁穿小鞋。甚至还亲自出马做了脸部倒模,用来创建3D模型。

高潮发生在1985年9月16日夜间。贝尔实验室的一个水塔上出现了彼得脸。虽然很快被抹去,还是很多人看到和拍了照。

是谁干的已不可索解。事发后,Doug McIlroy收到一份报销申请,要求为水塔画的颜料支付费用。McIlroy继续往上传。Vic Vyssotsky以自己无权审批为由终止申请。这张单据的申请人落款是G R Emlin。然而,贝尔实验室却没有这号人物。

神秘人Grace R. Emlin

G R Emlin = Grace R. Emlin,一个虚拟人物。当年贝尔实验室开始要求员工佩戴身份胸牌,很多人对此非常反感,想出各种方式表达抗议。《UNIX传奇》中写道:

“有位同事(在此隐去姓名)用万能胶把胸牌粘在额头上,还有一位则把胸牌别在胸毛上,被要求出示时才露出来。

胸牌没有安全鉴证功能,只是在模板中填了张相片。因此,我们虚构了一位叫格蕾丝·R·艾姆林(Grace R Emlin)的人,她的系统登录名为gre ,还有自己的胸牌,并不时出现在官方名单和出版物上。”

Ficticious employee G.R. (Grace) Emlin. Grace makes numerous appearances throughout the history of UNIX at Bell Labs. Here she iis pictured with her genuine Bell Labs employee badge. These are curiosities from the research lab where the UNIX operating system was created at Bell Labs in Murray Hill, New Jersey.

Grace Emlin形象来自gremlin,一种小魔怪。从名字拼写上也可以看得出来其来源。关于gremlin的传说肇始于航空时代开始没多久。那时,飞机的制造还处于很粗糙的阶段,常常发生故障。人们半开玩笑地编造出gremin,说这种小魔怪生活在飞机中,喜欢破坏飞机部件。就像当程序发生故障时,程序员就会说“都是宇宙射线的错”一样。

1984年,华纳公司出品了电影Gremlins。我怀疑这部电影启发了1127某位仁兄,才搞出Emlin来。

Grace Emlin在1127有自己的信箱。有人还真用她的胸牌进过办公楼。在Brian Kernighan的著作中,不止一次向她致谢。《UNIX传奇》里面也致谢了。Gerald Holzman还把Grace Emlin加到了1127中心同事录(https://www.spinroot.com/gerard/1127_alumni.html)。在这份列表中,Emlin的状态是“已移居。证人保护计划。”很扯又符合1127中心一贯风格。

2020年上画的电影Shadow in the Cloud(《云中阴影》)中也出现了gremlin,形象狰狞、凶狠。在影片最后,女主角徒手干掉了一只gremlin,折射出女权主题。

捉弄诺贝尔奖得主

《UNIX传奇》中写道:

“罗伯·派克和丹尼斯·里奇带着十几个人,在专业魔术师潘恩(Penn)和特勒(Teller)的帮助下,戏弄了阿尔诺·彭齐亚斯。”

Dennis Ritchie写了一篇文章(http://www.bell-labs.com/usr/dmr/www/labscam.html)来记录。油管上可以看到当年Penn和Teller制作的视频(http://www.youtube.com/watch?v=if9YpJZacGI)。整个过程是这样的:

Rob Pike假装做了一套语音识别和人工智能系统,邀请Arno Penzias来观看演示。一番表演后,Penzias以为Rob Pike真的做出这套系统,虽然常常辨识错误(实际上就是Dennis RItchie在另一房间操作电脑),但好像勉强可用。Pike说电脑里有一段录像,系统能够从录像中自动截取片段,回答用户提问。其实根本没有录好的视频,当Penzias提问时,魔术师Penn和Teller就在隔壁房间回答,通过摄像机直播给Penzias看。Rob Pike让Penzias叫“录像”里的魔术师表演个节目,Penzias照办。两位魔术师穿过走廊,出现在Penzias面前,假装是从录像里走出来的。Penzias过了半个小时才搞明白,原来语音识别什么的纯属子虚乌有。

原视频长达8分钟,我将其剪为3分来钟的精简版,关键节点配上中文解释,供不便上油管或者听英语有困难的朋友观看。

在视频结尾的字幕上,Brian Kernighan的职务是“灯光师”。Ken Thompson、Dennis Ritchie和UNIX核心开发组成员们也是灯光师,他们创造的UNIX照亮了未来数十年计算机操作系统发展之路。我们这些IT从业者,也要像灯光师,努力照亮自己、照亮他人,用IT创造未来、改变世界。

《Unix传奇》中“消失”的链接

我2020年翻译了Brian W. Kernighan的Unix: A History and a Memoir一书,中文版书名是《Unix传奇:历史与回忆》。原版中有一些网页链接,根据我国公开出版物相关规范,中文版删掉了这些链接。

我把这些“消失”的链接整理如下,供读者参考:

P46 丹尼斯·里奇介绍肯·汤普森对电脑游戏的贡献的短文:www.bell-labs.com/usr/dmr/www/ken-games.html

P61 杰拉德维护的网站 spinroot.com/pjw

P70 贝尔实验室网站丹尼斯主页上他兄弟姐妹的谢词:www.bell-labs.com/usr/dmr/www


P131 2013年公布的摩根泰勒备忘录:www.cs.princeton.edu/~bwk/202


P193 杰拉德·霍兹曼维护的1127中心老同事在线名单:www.spinroot.com/gerard/1127_alumni.html

P207 “实验室欺诈”视频:www.youtube.com/watch?v=if9YpJZacGI

“资料”章节中的链接

贝尔实验室Unix历史短页:s3-us-west-2.amazonaws.com/belllabs-microsite-unixhistory


汤姆·范·弗莱克(Tom Van Vleck)的Multics历史信息库网站:multicians.org


道格·迈克罗伊的《科研版Unix读本》:genius.cat-v.org/doug-mcilroy

The Unix Heritage Society:www.tuhs.org

迈克尔·马霍尼的Unix口述历史:www.princeton.edu/ ̃hos/Mahoney/unixhistory


菲利斯·福克斯的口述史:history.siam.org/oralhisto- ries/fox.htm


布莱恩与丹尼斯的炉边谈话:www.youtube.com/watch?v=EY6q5dv_B-o

丹尼斯·里奇在(诺基亚)贝尔实验室的主页:www.bell-labs.com/usr/dmr/www


柯克·迈克库西克关于BSD的著述: www.oreilly.com/openbook/opensources/book/ kirkmck.html


伊安·达尔文和杰夫·柯里尔的文章:doc.cat-v.org/unix/unix-before-berkeley

布莱恩·克尼汉写给中文版读者的话


(本文是《Unix传奇:历史与回忆》一书作者布莱恩·克尼汉为中文版读者撰写的文章。本书将于近期出版面世。)


1969年,肯·汤普森和丹尼斯·里奇在贝尔实验室创造了Unix系统。五十年后,Unix系统在全世界被广泛应用,多数时候以Linux的形态呈现,在从极小到极大的无数种计算机上运行。无论运行于何种计算能力与架构上,Unix都提供了同样方便、富有表达力和极具生产力的环境,以及丰富的程序开发工具。Unix系统构造优雅,使这些工具很好地结合在一起。

Unix是怎么来的?贝尔实验室是怎样的机构?寥寥数位研究员组成的小团队是如何改变世界的?是什么让Unix成为可能,并推动它进化?

我试图在《Unix传奇:历史与回忆》中回答这些问题。本书不仅写到技术内容,还写了许多幕后故事,写了那些天才人物的个性,以及Unix诞生和发展的独特创造性环境。

韩磊翻译的中文版问世,我倍感欣慰。相信它能帮助中国的朋友和同行了解Unix的历史。衷心希望您能享受到阅读的乐趣。

布莱恩·克尼汉

《Unix传奇:历史与回忆(Unix: History and Memoir)》译者序

Unix的主要创造者肯·汤普森到贝尔实验室面试时,沿计算科学中心走廊漫步,两边办公室上的名牌写满了他听说过的人名。这就是我读这本书时的感受:书中提到的许多名字,早已如雷贯耳。在我心目中,他们全是大神级人物,高高在上,凡夫不可亲近。

全书译完,这些人从神坛走下来,就地现出极客真面目。无论做出什么非凡成果,原来,他们全是不折不扣的程序员。以我之见,程序员的追求就是让机器听话,让工作自动化,让人类生活更美好。昔年Unix核心团队乃至于贝尔实验室计算科学研究中心的一众精英,无疑都是秉承这个初衷,尽展所长,才做出如此辉煌的成就。

几十年过去,“让机器听话”部分演变为“让机器听得懂人话”。人工智能科技进步巨大,在一些领域,机器展现出可观的能力,替代了相当部分人工劳动。在翻译这本书的过程中,我大量使用了DeepL翻译工具。有时,DeepL给出的译文可以用“惊艳”来形容;就算是那些不够出色的译文,七成也能达意。这意味着,对于非文学类作品,自动化翻译工具已相当接近初译的要求水平。即便不能完全替代人类译者,自动化翻译工具在很近的未来也将成为人类译者的亲密伙伴。人类译者也许最终会变做审校者。

另外一方面,机器也在赋能与人。例如,我目前关注的AR(增强现实)领域,已有许多技术可以让人看得见原本看不见的东西。在某个项目中,警员佩戴AR智能眼镜巡逻,三个月内识别出近400个重点管控人员。在另一个项目中,无人机搭载违法识别和车牌自动识别技术,极大地提升了交警处置效率。机器与人共同进化,未来可期。

本书作者认为,宽松的环境、稳定的投入、专业人士是贝尔实验室成功的要素。我翻译的《梦断代码》恰好是这种看法的反例。没有期限、几乎无限量的资本、十几个精英程序员,只换得美梦破灭。世界已经变得不同。开放源代码、远程协作、增长黑客……开发模式与商业模式相互促进,“数据”变得与“代码”和“算法”一般重要甚至更重要。可以预见,计算与连接将遍及万物。生活会更好或更糟?我相信一定会更好。

我的老朋友陈硕认真阅读了译稿,提出许多修改意见。术语方面的意见我几乎照单全收,其中有一些错译或文字不准确是我疏忽,但大部分完全是因为我的知识储备不足使然。至于文本、语句方面的改进意见,我保留了大部分原译。盖此事关乎个人文字风格,见仁见智,留待读者批判吧。算来我与陈硕已有十几年没有见面,各自做着自以为能让世界更美好一点的事情,这大概算是程序员共有的一点小情怀吧。

韩磊 2020年9月

(本书中文版即将面世)