老婆离家三周,我写了一个操作系统!

我出生于1943年,今年已经78岁了,依然战斗编程的第一线,今天给大家讲讲我当年写操作系统的故事......

老婆离家三周,我写了一个操作系统!_第1张图片

我小时候特别喜欢鼓捣电器,玩了10年。

当我去加州大学伯克利分校读电子工程的时候,我发现课程超级简单,于是我迷上了一个新玩意儿:计算机。

每天晚上,我都会偷偷打开机房大门......

老婆离家三周,我写了一个操作系统!_第2张图片

到了大四,我觉得自己玩得太嗨,学业不够优秀,就没有申请读研。

但是有一天,教我课的Berlekamp教授突然给我我一个“惊吓”。

老婆离家三周,我写了一个操作系统!_第3张图片

原来Berlekamp教授替我做了申请,并且通过了!教授真是一个好人。

一年以后,我拿到了电子工程和计算机科学的硕士学位。

大名鼎鼎的贝尔实验室想把我招去工作,但是当时我的心还比较“野”。

老婆离家三周,我写了一个操作系统!_第4张图片

贝尔实验室不厌其烦地邀请我, 我把他们拒绝了七八次,最后他们居然找到了我家里!

老婆离家三周,我写了一个操作系统!_第5张图片

我来到了贝尔实验室参观,被震撼了!

老婆离家三周,我写了一个操作系统!_第6张图片

第二天,我租车出行,去找我的朋友。

贝尔实验室不知怎么查到了行踪, 居然在我旅途的第三站留下来一份offer。

老婆离家三周,我写了一个操作系统!_第7张图片

1966年,我加入贝尔实验室。

老婆离家三周,我写了一个操作系统!_第8张图片

悲催的是,我的第一项工作就和同事们一起掉进了坑:Multics操作系统。

这个操作系统是我们和GE、MIT一起研制的,试图做一个比CTSS更好的OS,但是大家犯了一个大错误:过度设计。

老婆离家三周,我写了一个操作系统!_第9张图片

(注:第二系统效应,意思是在首个系统(如CTSS)创建成功以后,打算创建一个新系统,修正旧系统的遗留问题,添加新特性,结果塞进去太多东西,得到了过于复杂的系统)

1969年,Multics还是无法完成,忍无可忍的贝尔实验室决定退出。

回来以后, 我和项目组成员还是想做操作系统,向经理申请费用。

(其实我是有点想念Multics上我开发的太空旅行游戏了)

但是管理层被Multics伤透了心,不愿意给我们买硬件。

老婆离家三周,我写了一个操作系统!_第10张图片

既然如此,我只能“废物利用”了,我很快找到一台没怎么用过的PDP-7。

老婆离家三周,我写了一个操作系统!_第11张图片

PDP-7的图形显示还不错, 我很快在上面“恢复”了太空旅行这个游戏。

玩家可以模拟操作太空船在代表太阳系的二维画面内进行飞行、着陆。太空船会受到万有引力影响。

这个游戏很容易上瘾,经常让人一玩就是好几个小时

老婆离家三周,我写了一个操作系统!_第12张图片

我相信程序员热爱游戏的传统将会被传承下去,例如MySQL发明人, Linux发明人,都是游戏迷,他们不但玩游戏,还会像我一样写游戏。

我在移植游戏的过程中,开发了自己的数学计算和图形子程序。

但是太空旅行在PDP-7上运行得很慢, 于是,我和Dennis Ritchie等人又重新设计了文件系统:

老婆离家三周,我写了一个操作系统!_第13张图片

等到太空旅行能顺利运行起来的时候,我赫然发现, 我离一个操作系统只剩下三周之遥了

老婆离家三周,我写了一个操作系统!_第14张图片

恰巧,我太太休了三周假, 带着1岁的儿子回娘家,我就有了三周不受打扰的工作时间。

这三周,我的代码生产力简直爆棚!

老婆离家三周,我写了一个操作系统!_第15张图片

1969年底,一个操作系统可以运行了,它被我的同事称为Unix。

Unix操作系统看起来像是我们为了玩游戏而产生的副产品 !

20多年后,一个芬兰的小伙子Linus会再次深刻地体会了这个过程:本来想给自己找点儿乐子, 结果却做出了伟大的操作系统。

老婆离家三周,我写了一个操作系统!_第16张图片

正所谓:有心栽花花不开,无心插柳柳成荫。

当然,这一切的底层基础是:对计算机强烈的兴趣,以及强悍的编程能力

(Linus的故事传送门在这里《Linux之父:财务自由以后,我失眠了!》)

虽然我们直接买机器的企图失败了,但我们很快找到了替代办法。

贝尔实验室创新太强了,平均每天都能产出一项专利,处理专利文件成了一个大问题。

老婆离家三周,我写了一个操作系统!_第17张图片

交易达成,买了一台PDP-11 , 我和Dennis Ritchie很快就把Unix移植了过来,哈哈。

打字员们白天处理专利文档,到了晚上,我们Unix小组的人就它来开发软件。

后来,专利部门尝到甜头,又给我们买了一台PDP-11, 这样我们才能全天候开发了

于是就有了这张著名的图片,我和Dennis Ritchie在一起工作。

老婆离家三周,我写了一个操作系统!_第18张图片

说起Dennis Ritchie,这可是我一生的好友,超级大牛。

他看到Unix是汇编写的,而不同架构的机器,汇编语言是不同的,移植起来很费劲。

于是,他发明了C语言,并且用C语言重写了Unix,让Unix可以轻松地在各种机器间移植。

老婆离家三周,我写了一个操作系统!_第19张图片

Unix很快便在大学和科研机构流行起来。

1975的秋天,我休了一个长假,回到了母校加州大学伯克利分校,开设了一门Unix课程。

我不仅讲解理论,还在晚上带着大家阅读一行行的Unix内核代码,向大家解释为什么这么做。

老婆离家三周,我写了一个操作系统!_第20张图片

我在伯克利大学的教学激发了很多人对操作系统的热情, Bill Joy尤其突出,他后来创建了著名的Unix分支:BSD 。

(Bill Joy的故事传送门在这里:《那些神一样的程序员》)

老婆离家三周,我写了一个操作系统!_第21张图片

贝尔实验室是个非常棒的地方, 既给每个人提供独立办公室,又提供可以协作的共享空间, 这里鼓励创造,不同的思想在这里碰撞、激发,充满了黑客的氛围。

我的同事道哥在Unix上开发了一个叫speak的程序,可以和一个叫Votrax的语音合成器连接,把文字变成语音输出。

每天下午一点,Votrax的大喇叭就会提醒大家1点15分食堂就关门,该去吃饭了。

老婆离家三周,我写了一个操作系统!_第22张图片

我从小就热爱国际象棋,1971年,我在PDP-11上写了一个国际象棋程序,后来又制作了加速运算的特殊硬件, 最终形成了一台叫Belle的国际象棋计算机。

老婆离家三周,我写了一个操作系统!_第23张图片

Belle战绩骄人,在于人类的常规比赛中,获得了2200等级分,成为第一台荣升国际象棋大师的计算机,还获得了1980年世界计算机国际象棋大赛的冠军。

除了象棋之外,我还是一个狂热的飞行爱好者。

老婆离家三周,我写了一个操作系统!_第24张图片

在我的影响下, 贝尔实验室计算机科学研究中心出现了六七位私人飞行员 。

我们经常约着飞出去看秋叶,或者到有意思的地方吃午饭。

但是,这些飞机开起来不过瘾。

1992年,我决定玩儿一票大的,来到莫斯科,去玩了一把米格29战斗机

老婆离家三周,我写了一个操作系统!_第25张图片

由于在Unix操作系统和C语言的杰出贡献,我和Dennis Ritchie获得了1983年的图灵奖。

老婆离家三周,我写了一个操作系统!_第26张图片

2000年,57岁的我从贝尔实验室退休。

但是我觉得还能折腾。

2006年,我又加入了Google ,和Rob Pike, Robert Griesemer等人发明了Go 语言,现在Go语言的发展势头还不错!

老婆离家三周,我写了一个操作系统!_第27张图片

这就是我这几十年的故事,我是Ken Thompson, 一个写过操作系统,会开飞机的程序员!

(完)


在此我强烈推荐大家都关注下刘哥的「码农翻身」

我经常看这个公众号,内容都非常棒

点击下方卡片,还有更多漫画文章

码个蛋专属活动:打卡入口

为什么要做这个活动?

帮你养成好习惯(第四弹)


关注「码个蛋」,一起打卡成长

关注后可获得码仔专属表情包

老婆离家三周,我写了一个操作系统!_第28张图片

你可能感兴趣的:(游戏,操作系统,编程语言,软件开发,ai)