1700437336
1700437337
此后,我又以参加Unix用户组会议为借口访问了另外几个国家,认识了一些非常好的人。最难忘的是1984年去澳大利亚。那次也是和肯一起。会议在悉尼歌剧院(Sydney Opera House)举行。我在第一天上午做了个演讲,之后一周都坐在会议室,从窗户眺望港口——景色如此迷人,以至于我对其他人的演讲全无印象。
1700437338
1700437339
用户组逐渐演变成伞式组织“Unix用户组”(Unix User Groups)。后来,由于AT&T抱怨Unix商标被滥用,Unix用户组最终改名为USENIX(下文写作Usenix)。Usenix现在举办一系列专业会议,出版以“;login
:”为名的技术期刊。Usenix就许多主题开展会议演讲和教程,在传播Unix方面发挥了重要作用。它还发布UUCP,运行Usenet新闻系统。
1700437340
1700437341
1700437342
1700437343
1700437345
UNIX传奇:历史与回忆 6.4 约翰·莱昂斯的评注
1700437346
1700437347
悉尼新南威尔士大学计算机科学教授约翰·莱昂斯(图6-3)是Unix的早期拥趸,在他的操作系统课程以及教育和研究支持中大量使用Unix。
1700437348
1700437349
1700437350
1700437351
1700437352
图6-3 约翰·莱昂斯 (UNSW供图)
1700437353
1700437354
1977年,约翰为第6版源代码逐行写了评注。源代码的每一部分都被详细解释,人们可以看清它如何工作,为什么是这样的,以及如何以不同方式完成工作。约翰桃李成林,其中有几个进了贝尔实验室。
1700437355
1700437356
初印本《评注》(Commentary)分作两卷,一本是代码,另一本是论述,可以对照阅读,不过1996年最终出现的审定版(图6-4)是单卷本。
1700437357
1700437358
虽然这本书可以在Unix许可持有人之间共享,但从技术上讲,其内容是商业秘密,因为它包含了AT&T的专有源代码。至少在理论上,复制受到严格控制;我现在还保留着我的带编号副本(#135)。不过,它在早期被大量复制。图6-4所示的封面上的地下出版物画像表明,这种复制是秘密进行的。几年后,米已成炊,约翰的书也正式出版了。
1700437359
1700437360
1700437361
1700437362
1700437363
图6-4 约翰·莱昂斯对第6版Unix的评注
1700437364
1700437365
1978年,约翰在墨里山度过了一个休假年,坐在我对面办公室。那间办公室后来属于丹尼斯·里奇。约翰于1998年去世,享年62岁。新南威尔士大学计算机科学系专设了一个教席来纪念他的贡献。这个教席的资金来自校友和朋友们的捐赠。为此,1998年泰德·杜洛塔拍卖了他的加利福尼亚州UNIX车牌,由约翰·马希拍得。
1700437366
1700437367
拜《评注》所赐,Unix源码中的一条注释出了大名。第2 238行写着
1700437368
1700437369
/* You are not expected to understand this. */[6]
1700437370
1700437371
1700437372
1700437373
1700437374
1700437375
如前所述,丹尼斯于2011年10月去世。次年,在贝尔实验室的纪念聚会上,我以这句话为主题发表讲话,悼念丹尼斯。
1700437376
1700437377
Unix内核代码由丹尼斯和肯·汤普森共同编写。据我所知,肯一直完全赞同这样的观点:好代码不需要过多注释。以此类推,伟大的代码根本不需要注释。我认为内核代码中的大部分注释都来自丹尼斯。你可以在第2 238行找到上述注释。它以干脆利落著称。多年以来,它被大量印刷在T恤衫之类地方。正如丹尼斯本人所说:
1700437378
1700437379
“人们经常引用它来抨击贝尔实验室科研版Unix注释的数量或质量。一般来说这样的推断大概不算过分,但就Unix而言纯属无理取闹。”
1700437380
1700437381
仔细阅读代码,你可以看到,这条注释紧跟在一条更长的注释后面。那条长注释描述了在两个进程之间交换控制权的上下文切换机制,它确实是想解释一些难以理解的事情。丹尼斯接着说,
1700437382
1700437383
“‘不指望你懂’是本着‘这个不会考’的初衷说的,并非无礼挑衅。”
1700437384
1700437385
我在前面提到,Nroff和Troff不易精通。《评注》致谢部分的最后一段表明,约翰会同意这一点:
[
上一页 ]
[ :1.700437336e+09 ]
[
下一页 ]