作为一个程序员,确切地说是一名嵌入式Linux程序员,看到《UNIX传奇》一书出版后,欣喜若狂!我花了两天时间读完,酣畅淋漓!正如本书封面所写,这是一本关于UNIX的历史与回忆,你只需要稍微有点相关背景知识,读起来几乎全程无障碍。当然,不论作者还是译者,大佬毕竟是大佬,没有他们过硬的文笔,又怎能让我们这帮后生看到如此绚烂的传奇。
在本书之前,我对UNIX的历史已略知一二,它的前身(或者说反面教材)是Multics,一个因第二系统效应盲目追求大而全的失败案例。不论如何,身为参与者的肯·汤普森因此收到启发,加上对操作系统的狂热兴趣,仅花三周时间就写出了UNIX雏形。之所以效率如此之高,是因为她老婆恰巧在那期间带着孩子出门探望公婆…果然,成大事的男人离不开女人的“支持”(玩笑话)。
UNIX的命名和设计理念其实很简单,就是跟Multics反着来,既然你叫Multi(多个),那我就叫Uni(一个)。既然你追求的是大而全,那我就追求小而美。创造出简单高效的软件工具和机制,剩下的让用户自己决定他们想要什么,就像乐高积木那样。
正是由于UNIX的简单好用,先是在贝尔实验室吸引到追随者,接着又得到了高校的认可,待象牙塔的学子们步入职场,它也顺利成长地被传播到了企业。直到今天,数十亿的智能设备、手机、电脑、服务器等,UNIX的DNA已无所不在。谁又能想到,Ken当初的神来之笔,一不小心改变了整个计算机世界的发展。
其实在读本书的时候,我多少感觉到作者的一丝惋惜(也可能是我的错觉),UNIX拥有如此之大的影响力,而它本尊却早已被遗弃在某个角落里慢慢衰亡。如今像我这样的后生,几乎从未使用过真正的UNIX,我甚至看到不少同行分不清Linux和UNIX,或者干脆把它们划等号。也难怪作者在书中反复把macOS、Linux、FreeBSD等知名操作系统称之为——类UNIX。我看到了作者的惋惜,也看到了他的骄傲。
如果当时AT&T没有被拆分
如果贝尔实验室的传统得以延续
如果1127中心还健在
如果UNIX没被错误商业运作
如果没有陷入专利之争
如果……
哎,历史不容假设。一个UNIX倒下了,千万个UNIX站起来了,要是没有这段历史,就没有后面那个来自芬兰的大学生写出Linux,也不会有人喊出“GNU’s Not Unix”的口号,而我手中的这台MacBook Pro兴许就是另一番景象。
对了,本书内容不止于UNIX,还有大名鼎鼎的C语言!
第一版UNIX采用B语言编写(可以将其理解为没有类型的C语言),这里需要补充些历史背景,由于Multics的失败,贝尔实验室的大佬们无法申请到先进的计算机,只能退而求其次基于PDP-7型号的主机进行开发,当时的计算机都是以“字”为操作单位,有36位的、18位的,在32/64位以及“字节”为单位的计算机盛行的今天,以前的操作方式确实有些怪异。不论如何,B语言在以“字”为单位的计算机上开发有优势,不过随着UNIX的不断壮大,大佬们自然是用上了更为先进的、以字节为单位的计算机。此时,B语言就显得心有余力不足了。
在这样的背景下,另一位大佬站了出来——丹尼斯·里奇,被誉为UNIX之父,C语言之父(感谢祖师爷赏饭)!他针对新架构的计算机开始增强B语言,也就是后来的C语言,不过在当时这门语言有个更响亮的名字——NB,即“New B”,说不上为啥,读起来朗朗上口有没有?
除了UNIX和C语言,书中还介绍了很多到目前为止都很主流的技术:shell、make、sed、awk、cat、grep、vi、yacc、lex、管道、IO重定向、正则表达式…太多了,读完此书方才真正领会UNIX为何是一段传奇,也正是这些强悍的技术催生出了后来的Java、go、JavaScript、C++、Python、Linux、macOS…
总之,UNIX的传奇对后世的影响自然不用我多说,在那个内存和硬盘都捉襟见肘的年代,你能想想一个操作系统竟然能在16K内存的计算机里跑起来么?还能在上面编辑文档、玩游戏、编程…是啊,这就是UNIX最大的遗产,它完美诠释了什么叫大道至简!