Interview with Dennis Ritchie (2003)

转自:  https://anders.unix.se/2015/10/26/interview-with-dennis-ritchie-2003/

Interview with Dennis Ritchie (2003)

In 2003 I was running a website called Unix.se. One day I figured, why not ask Dennis Ritchie for an interview? I fired off an email to [email protected] and he quickly replied advising me to “try some questions and see what happens”. So I did, and he graciously answered them. Looking back, I wish I’d come up with different questions and followed up on some – but hey, I was only 17 at the time. Anyway, I figured it’d be worthwhile digging it up from the archives.

Dennis Ritchie, Ken Thompson (sitting) and a PDP-11, 1972 Photo: Peter Hamer. CC BY-SA 2.0

February 6, 2003

How and when did you first come in contact with computers?

At some point when I was an undergraduate in college (about 1960) I went to some non-course talks about computers that intrigued me, and I signed up for the regular (introductory) one-term course. The first part was about analog computers, then a brief bit about punch-card equipment, then some about real digital computers, in which we prepared a program for the Univac I. I was an undergraduate Physics major, but began to intrigued more by both the theory and practice of computing. So in grad school my thesis work was fairly theoretical (hierarchies of recursive functions), but I also began to get more into the practical aspects. I was for three years one of the teaching assistants for successive versions of that same introductory course–which by that time had moved to the IBM 7094.

What do you consider your greatest achievement in the field of computing to be?

The single thing that I’m happiest about is that the notion of making the Unix system portable was mostly mine. C was already implemented on several quite different machines and operating systems, Unix was already being distributed on the PDP-11, but the portability of the whole system was new.

Any new accomplishments in sight? What are your current project(s)?

There is no new grand thing to announce–I’ve been spending more time on history! Over the past several years, I’ve been more in a managerial role. The visible things that have come from the group have been the Plan 9 system and Inferno, but I hasten to say that the ideas and the work have come from colleagues. I was more a pay-check signer and giver of talks when others just wanted to work.

How much time do you spend programming nowadays?

Little programming as such. I fix things now and then, more often tweak HTML and make scripts to do things.

Could you please describe a typical work day at Bell Labs? What software do you use?

I tend to come in late unless there’s a meeting, but spend a fair amount of time tending to e-mail communication. My own environment (on PC hardware) actually runs Windows NT, but it is used mainly as a graphics terminal connected to a Plan 9 server, in a way approximately analogous to an X windows client. The connection at home is now via cable modem (until last summer ISDN), and Ethernet at the office. Any editing, software work, and mail is done in this exported Plan 9. For stuff like getting Excel and Word things, plus much WWW browsing, I revert to NT.

Do you have any predictions as to the future of C?

C is declining somewhat in usage compared to C++, and maybe Java, but perhaps even more compared to higher-level scripting languages. It’s still fairly strong for the basic system-type things.

What’s your opinion on microkernels vs. monolithic?

They’re not all that different when you actually use them. “Micro” kernels tend to be pretty large these days, and “monolithic” with loadable device drivers are taking up more of the advantages claimed for microkernels.

Do you agree with Rob Pike’s thoughts on the (ir)relevance of systems research? (http://cm.bell-labs.com/who/rob/utah2000.ps)

Pretty much, although Rob was stating his case in a deliberately provocative way. It’s true that compared with the scene when Unix started, today the ecological niches are fairly full, and fresh new OS ideas are harder to come by, or at least to propagate.

What do you think about the development of Linux and the BSD variants? Do you think they’ll eventually replace all the proprietary Unix systems?

As a general phenomenon, I think they’re great, but they suffer from much the same struggles and competition that the proprietary ones did and do. Sun and HP, SGI, IBM, Digital others all have (or had) variants of the same thing– so too do Linux and the BSDs. Their proprietors may have different motivations for producing the variants, of course. And of course each does have its own attractions. There is a kind of brand differentiation, and this is one of the reasons why portability is hard.

Any thoughts about the GNU project? How did you first learn about it?

I can’t remember when I first learned about it, but a long time ago. The True-GNU philosophy is more extreme than I care for, but it certainly laid a foundation for the current scene, as well as providing real software. The interesting thing is the way that free-software ideas have begun to influence major existing commercial players. At the same time, much of it seems to have to do with recreating things we or others had already done; it seems rather derivative intellectually; is there a dearth of really new ideas? But still, it’s a great satisfaction that so much of it has built on top of a basis we helped to establish.

Who are some of the people that you admire? (in the computer world or otherwise)?

I’m not a person who particularly had heroes when growing up. Obviously, the person who had most influence on my career was Ken Thompson. Unix was basically his, likewise C’s predecessor, likewise much of the basis of Plan 9 (though Rob Pike was the real force in getting it together). And in the meantime Ken created the first computer chess master and pretty much rewrote the book on chess endgames. He is quite a phenomenon.

Outside work, what do you enjoy doing?

It all sort of merges together. Much of it is computer-related (the WWW and all that). Other than that, reading actual paper, probably. I’ve done a reasonable amount of travelling, which I enjoyed, but not for too long at a time. I’m a home-body and get fatigued by it fairly soon, but enjoy thinking back on experiences when I’ve returned and then often wish I’d arranged a longer stay in the somewhat exotic place.

Any music, literature or movies you can recommend?

I listen to mostly-classical music, but mostly by radio– I’m not an audiophile. For books, I don’t read much fiction, but like travel essays and good pop-science: say Stephen Jay Gould or Kip Thorne. Also some humor–I am a great fan of S. J. Perelman. Right now I’m reading John McPhee’s “The Founding Fish.”


Bonus

In 2002 I asked random Unix/open source folks for screenshots of their working environments and collected them on Unix.se. Naturally, Dennis Ritchie was one of them. Here’s what he sent on July 9, 2002:

Dennis Ritchie‘s desktop, july 2002

Attached is a (truthful) screenshot from when I read your mail.

The underlying OS is WNT 4, as might be guessed from the desktop display on the left. Almost all the space is taken up by a super-window running the drawterm program, an (approximate) analog of X server that’s connected to a Plan 9 CPU server (over ISDN; the server is at the main Bell Labs location, and I’m at home).

The biggest (pale yellow) window is a Plan 9 application called acme, which includes a mail utility showing your message. Smaller subwindows within the drawterm display are the mail-notifier program, and a shell window whose latest output is from our dictionary utility.

I also got one from Brian Kernighan:

Brian Kernighan‘s desktop, july 2002

my desktop is pretty boring, since it consists of xterm windows to whatever unix system i am using at the moment. the machine itself is likely to be running some x-window server like exceed on some flavor of windows, though for many years i just used an x terminal.

[email protected], PGP key <0A3B 4AAB CF1A 56B2>, @ndrsju.

时间: 2024-10-27 04:22:01

Interview with Dennis Ritchie (2003)的相关文章

保持简单----纪念丹尼斯?里奇(Dennis Ritchie)

更多精彩文章点击后瞬间呈现. 1954年,电气工程师阿利斯泰尔•里奇(Alistair E. Ritchie),决定举家从纽约州的布朗克斯维尔(Bronxville),搬到几十公里以外的新泽西.这样可以离他的工作单位"贝尔实验室"更近一些. 13岁的丹尼斯•里奇(Dennis Ritchie),就这样随着父亲一起来到新泽西.那时,谁也没有想到,这个文静的少年将在这里待上一辈子,并且创造出改变世界的发明. 中学毕业后,丹尼斯•里奇听从父亲的建议,进入哈佛大学学习应用数学,直到拿到博士学位

B语言的发明者 Ken Thomson &amp; C语言的发明者Dennis Ritchie

C语言的发明者Ken Thomson因为没有参加C语言考试,在Google没有提交代码的权力. 哀悼结束,生活还要继续. 说段趣闻吧.大家都知道,C语言和Unix的发明者.图灵奖得主.最具传奇性的程序员Ken Thompson加盟Google之后,与一帮高手一起捣鼓出了又一惊天之作:并发时代的系统编程语言Go.Go一经面世就闯入了编程语言排行榜前20,创造了奇迹. 可是,Gawker网站今天爆料,他在Google居然没有提交代码的权力!原因呢,只不过是按公司规定,所有程序员必须通过编程语言考试,

操作系统(计算机管理控制程序)

操作系统结合着计算机学科和管理学科. 操作系统(Operating System,简称OS)是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行. 操作系统是用户和计算机的接口,同时也是计算机硬件和其他软件的接口.操作系统的功能包括管理计算机系统的硬件.软件及数据资源,控制程序运行,改善人机界面,为其它应用软件提供支持,让计算机系统所有资源最大限度地发挥作用,提供各种形式的用户界面,使用户有一个好的工作环境,为其它软

互联网技术

互联网技术定义:互联网技术指在计算机技术的基础上开发建立的一种信息技术(Information Technology 简称 IT) 直译 internet Technology 简称 IT 概念范围 第一层是硬件,主要指数据存储.处理和传输的主机和网络通信设备: 第二层是指软件,包括可用来搜集.存储.检索.分析.应用.评估信息的各种软件,它包括我们通常所指的ERP(企业资源计划).CRM(客户关系管理).SCM(供应链管理)等商用管理软件,也包括用来加强流程管理的WF(工作流)管理软件.辅助分析

了解和熟悉操作系统

了解和熟悉操作系统 一.计算机操作系统的定义和概念: 答:操作系统的定义:操作系统是控制和管理计算机系统的硬件和软件资源.合理地组织工作流程以及方便用户的程序集合. 操作系统的概念:是计算机系统中的一个系统软件,是一些程序模块的集合——它们能以尽量有效.合理的方式组织和管理计算机的软硬件资源,合理的组织计算机的工作流程,控制程序的执行并向用户提供各种服务功能,使得用户能够灵活.方便.有效的使用计算机,使整个计算机系统能高效地运行. 二.操作系统的分类: 答:计算机操作系统总的来说有以下几类:1.

C/C++ Resources

一.C/C++相关资源 语言标准及文档● ISO C99http://www.open-std.org/JTC1/SC22/WG14/www/docs/n1124.pdf● ANSI C Rationalehttp://www.quut.com/c/rat/title.html FAQ (常见问题)● comp.lang.c FAQhttp://c-faq.com/● C-FAQ 中文版http://c-faq-chn.sourceforge.net/ccfaq/node1.html 学习资料●

第一章 C++简介

第一章  C++简介 1.1  C++特点 C++融合了3种不同的编程方式:C语言代表的过程性语言,C++在C语言基础上添加的类代表的面向对象语言,C++模板支持的泛型编程. 1.2  C语言及其编程原理 20世纪70年代贝尔实验室的Dennis Ritchie开发了C语言(为了开发UNIX操作系统). C语言是过程性语言,采用结构化编程方法(代码块.分支结构,如for.while等代码块). C语言流行自顶向下的程序设计. 1.3  C++语言 1.3.1  C++起源 C++也是在贝尔实验室

03 操作系统基础

仅为个人学习备忘,方便日后查阅 一.程序的执行过程 计算机本身就是一堆硬件,其中最核心的就是 CPU 和内存.为了实现计算机获得数据,数据的输入输出,需要输入设备和输出设备.在计算机体系内部,一般来讲,输入输出设备是通过南桥接入当前系统的. 对于一个简单的PC机而言,在某一个时刻只能运行一个程序.但是计算机的计算能力很强,一个程序运行程序内容所占用的 CPU 的时间不是特别多.为了能够尽可能地利用计算机的计算能力,需要将计算机同时运行多个程序,因此每个程序运行起来以后需要一个协调器,这个协调程序

Linux发展历程

Linux发展历程 Multics: 早期没有操作系统的前提下我们的计算机程序都会在硬件上直接运行,表现为一个个的作业(job1$$$$$job2$$$$$job3)job1运行完了用分隔符隔开运行下一个job2,这种机制叫做批处理,这时候其实远远无法发挥计算机的性能的,在这个时候有三个组织:通用电气公司GE.美国的电报电话公司ATMT的Bell实验室.麻省理工大学的人工智能实验室MIT,三个组织联合起来研究一个要比批处理系统功能更强大的多任务多用户的系统,功能很复杂技术很先进,当初都是使用汇编