IT 论文精读 · PAPER 33

The UNIX Time-Sharing System(UNIX)

Ken Thompson & Dennis Ritchie · Bell Labs · CACM 1974

EN →

这篇论文干了什么?

你现在用的东西——Mac、iPhone、安卓手机、云端跑着的 Linux 服务器——追根溯源几乎都是同一个小系统的后代:UNIX。它 1969 年诞生在贝尔实验室,1974 年这篇论文第一次把它公开讲给全世界。它没发明什么惊天新硬件,而是用几个极其简单、又能互相拼接的点子,搭出了一个小到能塞进当年便宜机器、却好用到统治了此后半个世纪的操作系统。

旧世界的痛

在它之前,大型操作系统(当时的代表叫 Multics)追求「什么都能干」,结果又大又复杂、要昂贵的机器、还难用。更别扭的是:每种东西都有自己一套专门的用法——读硬盘一套命令、读磁带一套、跟打印机说话又一套;程序和程序之间也各说各话,很难拼到一起干活。

那几个朴素的点子

UNIX 的解法是「少即是多」,核心就两三招。

第一招:一切皆文件。不管是硬盘上的数据、键盘、打印机还是屏幕,在系统眼里都长成同一副模样——「一个文件」。于是「打开、读、写」这一套动作就能操作世上一切。好比家里所有电器都改用同一种插座:不用为每样东西记一套接法。

第二招:小工具 + 水管。UNIX 鼓励每个程序只干一件事、把它干好,然后提供一根「水管」(管道 pipe),把前一个程序的输出直接灌进后一个程序的输入。要完成复杂任务,不用写大程序,而是像搭乐高、接水管一样把小工具串起来——「列出在线用户 ┃ 数一数有几行」,一行就统计出在线人数。

第三招:树状文件夹。文件按一层套一层的文件夹组织成一棵树。你今天在电脑里点开的那一级级文件夹,就是从这里来的。

它带来了什么

这几招合起来,让一个系统又小、又通用、还能自己长出新能力:想要新功能,就再写个小工具接进管道,不用改动系统本身。这种「小而正交的零件自由组合」的风格太成功了,以至今天几乎所有操作系统都继承了它,连它当年为自己发明的 C 语言也顺势成了编程世界的通用语。诚实说一句代价:它的权限管理很朴素(就几个读写标志),放到今天处处联网的世界已经不够细致,安全上得靠后人层层加固。

一句话记住

UNIX 用「一切皆文件 + 小工具用管道自由拼接 + 树状文件夹」几个极简点子,做出一个小到能跑在便宜机器、又通用到能无限组合的操作系统——今天的 Linux、macOS、安卓、iOS 都是它的思想后代。

想看文件系统结构图、fork/管道机制和它到底新在哪? → 切到精读版