
丹尼斯·麦卡利斯泰尔·里奇(Dennis MacAlistair Ritchie,1941-2011),美国计算机科学家,现代计算机科学奠基人之一。他与肯·汤普森共同开发了 Unix 操作系统和 C 编程语言,并于1983年获图灵奖。


丹尼斯·麦卡利斯泰尔·里奇,1941-2011
图源:网络
丹尼斯·里奇于1941年9月9日出生在纽约州布朗克斯维尔,在哈佛大学攻读物理学和应用数学。毕业后,他加入贝尔实验室,并参与了 MULTICS(Multiplexed Information and Computing Service)项目。MULTICS 是由贝尔实验室、麻省理工学院(MIT)及通用电气公司(GE)合作开发的大型分时多任务操作系统,由于项目过于复杂且进展缓慢,贝尔实验室在1969年决定退出。而为了能够继续玩在 MULTICS 系统上编写的游戏“Space Travel”,肯·汤普森和丹尼斯·里奇找到了一台被遗弃的 Digital PDP-7 小型机,并为其开发了一个简易操作系统,这便是 Unix 系统的雏形。
吸取了 Multics 设计复杂而导致失败的教训,丹尼斯·里奇在 Unix 系统的设计过程中遵循“保持简单和直接”(Keep it simple stupid)的原则。基于这一原则,Unix 采用模块化架构,通过众多单一功能的独立小程序组合完成复杂任务,同时引入“一切皆文件”的概念,将硬件设备、进程通信等系统资源统一抽象为文件形式,通过标准化的文件操作接口进行访问,显著降低了编程复杂度。
Unix 系统因其优雅简洁的设计展现出卓越的可维护性和可扩展性,直接启发了 Linux、macOS、BSD 等现代操作系统的开发,在当今互联网基础设施中,绝大多数服务器都运行着 Unix-like 系统。而 Unix“小即是美”的设计哲学更是超越了操作系统领域,深刻影响着软件开发领域的方法论。

Unix-like 操作系统家族
图源:网络
最初的 Unix 系统是用汇编语言编写的,部分应用由 B 语言和汇编语言混合编写,这种实现方式限制了系统的可移植性。为此,肯·汤普森和丹尼斯·里奇在1971年共同开发了 C 语言,并用 C 语言重写了 Unix 系统。C 语言编写的 Unix 代码简洁紧凑、易于移植和维护,为 Unix 的后续发展奠定了坚实基础。
C 语言的影响远不止于操作系统开发。C 语言的设计贯彻了 Unix 大道至简的原则,在高级语言抽象与底层硬件控制之间实现了较好的平衡,语法精简但功能完备,具有高效性、灵活性和较高的可移植性等优势,至今仍被广泛应用于软件开发领域,并深刻影响了众多后来的编程语言。同时,为了推广这门语言,丹尼斯·里奇与布莱恩·柯林汉还共同撰写了《C 程序设计语言》,该书以清晰简洁的写作风格著称,被公认为计算机技术著作的典范,书中的“hello world”实例也成为程序设计语言图书的传统。

《C 语言程序设计》第一版封面
图源:网络
正如他一生所秉持的简约哲学,丹尼斯·里奇的生活也同样低调朴素。这位计算机科学巨匠很少在公众场合曝光,终身未婚,专注于自己热爱的技术创新。退休后,他一直过着隐居的生活,几乎被外界遗忘。2011年10月12日,他的同事罗布·派克从加州来到新泽西看望他,发现他已经去世了。丹尼斯·里奇留下的不仅是 Unix 系统和 C 语言这两项伟大发明,还有化繁为简的设计哲学,他的技术遗产至今指导着计算机科学的发展。

文 | 许苑
图 | 陈春萌

— 版权声明 —
本微信公众号所有内容,由北京大学前沿计算研究中心微信自身创作、收集的文字、图片和音视频资料,版权属北京大学前沿计算研究中心微信所有;从公开渠道收集、整理及授权转载的文字、图片和音视频资料,版权属原作者。本公众号内容原作者如不愿意在本号刊登内容,请及时通知本号,予以删除。

内容中包含的图片若涉及版权问题,请及时与我们联系删除