0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

计算机天才1个月写了个操作系统

Linux爱好者 来源:技术领导力 作者:Mr.K 2021-06-02 11:29 次阅读

1983 年,美国计算机协会将图灵奖授予肯·汤普森和与丹尼斯·里奇。

获奖理由是:“For their development of generic operating systems theory and specifically for the implementation of the UNIX operating system.”

翻译过来就是:

“授予肯·汤普森和与丹尼斯·里奇图灵奖,以表彰其在通用操作系统理论领域的贡献,特别是UNIX操作系统的开发与实现。”

老读者知道,老K每次装逼都会引用一段英文,不过这次不是要显摆自己,而是要介绍本文的主人公,肯·汤普森。

在许多读者都还没出生的年代,他就已经取得了计算机界的最高荣誉--图灵奖。

01

计算机天才养成记

肯·汤普森出生于1943年。在他小学的时候,有一堂课讲到了二进制,喜欢逻辑的他立刻被吸引住了,在兴趣的驱使下,他做了很多相关的二进制计算,并借助一台十进制计算器将其扩展到各种进制。

其实,老K小时候也有类似的经历,我上初中的时候对物理非常着迷,很早就开始研究,牛顿的头发是在哪烫的?我想,我的物理老师,就是从那个时候开始有心理阴影的。

肯·汤普森,从小就是妥妥的学霸一枚,边玩边学,轻松考上了加州大学伯克利分校,攻读电子工程学士学位。

虽然,国外的大学不像国内这么轻松,随便放飞自我。但是,对于肯·汤普森这样的大神来说,课程so easy,哪里不会点哪里。

于是他迷上了一个新玩意:计算机。

每天晚上,趁着没人的时候,他就偷偷溜进机房,自学了编程,编写游戏、玩游戏,嗨到不行。

大四那年,大神心里还是有点B Tree的,因为觉得自己不务正业,都在玩游戏和编程,电子工程没怎么好好学,所以没有申请读研究生。

正当他准备卷铺盖毕业的时候。一位教过他的老师Berlekamp教授替他申请了研究生,并且通过了,多好的教授啊!

回想起老K大学时候的教授,我的论文改了八回,答辩两次才勉强毕业。同样都是教授,怎么差别就这么大呢?当然了,同样是学生,差别就是这么大。

在研究生阶段,肯·汤普森只用了一年就毕业了,你没看错,他只用了一年就拿到了电子工程和计算机科学的硕士学位。

02

加入贝尔实验室

研究生毕业后,肯·汤普森的才华惊动了当时大名鼎鼎的贝尔实验室,并且向他伸出来橄榄枝。但是,肯·汤普森却看不上,他心想我这么年轻,有才华,又有头发,应该有机会改变世界的。

但是,在贝尔实验室的再三邀请之下,他还是勉强答应去参观一下。

这一参观不要紧啊,他发现汉明码发明人、信息论发明人、晶体管发明人......这些牛逼闪闪的人物,都出自贝尔实验室。

肯·汤普森心想,像我这样的天才不就应该来这里吗?于是他接受了贝尔实验室的Offer。

03

搞砸“Multics操作系统”项目

1966 年,肯·汤普森加入贝尔实验室,与丹尼斯·里奇(就是文章开头,一同获得图灵奖的另一位大神)一起参与名为 “Multics操作系统”的项目开发。

那个时代的计算机系统还处在批处理的阶段,只能在既慢又笨重的大型机器上工作,要先将程序卡片装入设备,然后等1个小时后才能取运算的结果。不仅慢,还很废纸。

因此,贝尔实验室联合麻省理工学院,以及通用电气公司,想建立一套可以多人使用、多任务、多层次的 Multics 操作系统。

但是,由于大家太过追求完美,导致开发周期过长,成本高,短期内看不到产出。论敏捷交付的思想的重要性啊,可惜那个年代大家并不那么想。

1969 年的时候,贝尔实验室忍无可忍,决定退出这个项目。

对于程序员来说,搞砸一个项目是很稀松平常的事情,就像老K这10几年的职场生涯搞垮过的项目,都可以写出“搞垮系列”了。

但是让肯·汤普森失望的是,再也不能玩自己写的名为“star travel”的游戏了,因为这个游戏完全是基于 Multics 的。你看看大神,玩游戏才是主业,上班只是兼职而已。

04

为了玩游戏,开发了UNIX

既然这样,那就自己开发个操作系统吧,这样就可以继续玩游戏了。


有技术就是任性啊,一言不合就开发个操作系统。所以千万不要把程序员逼急了,他们连操作系统都能做,还有什么事情做不出来?


肯·汤普森找到了一台废弃已久的老式 PDP-7小型机,虽然称为小型机,那时候也有一个房间那么大!在这台机器上他首先重写了游戏,游戏有了后,肯·汤普森还想着要开发一个全新的操作系统。

正好这个时候,他的老婆带着孩子回娘家住3个礼拜,也就是说他有完整的3个礼拜没有人打扰的时间。

于是他决定利用这段时间开发操作系统,基于之前搞砸“Multics系统”的经验,他很快完成了内核系统、文件系统、编辑器、编译系统,一个月时间竟然编写完了操作系统的内核。

这个故事告诉我们,一个男人想要搞大事,老婆不在家是多么的重要!K嫂你看到了吗?看到了吗?老K这把年纪一事无成,是有原因的。一天查岗八回,就算你是王者,也荣耀不起来啊?

话说这个系统做完后,肯·汤普森将其命名为 UNiplexed Information and Computing System,缩写为 UNICS 。但是怎么念都拗口,后来改名为UNIX,陆续做了一些改动后,第一版UNIX操作系统诞生了。

那一年,肯·汤普森年仅26岁。

05

UNIX 跟C语言更配

1973 年的 10 月,在 IBM 举办的操作系统原理专题研讨会上 ,UNIX首次向世界问好,当肯·汤普森和与丹尼斯·里奇向人们宣读论文并展示了UNIX后,整个会场轰动了,人们惊呼:卧槽,牛逼,还能这么玩!


后来随着UNIX的用户越来越多,肯·汤普森和与丹尼斯·里奇决定将UNIX进一步改写,以便可以移植到各种不同的硬件系统。


由于UNIX的源码中不少是用汇编完成,不具备良好的移植性,正好丹尼斯·里奇在 1973 年在 B 语言的基础上开发出了 C 语言。C 语言灵活,也更高效,与硬件无关,并且不失其简洁性,正是UNIX移植所需要的法宝。

于是旧版的UNIX与 C 语言完美结合在一起,产生了新的可移植的UNIX系统。随着UNIX的广泛使用,C 语言也成为了当时最受欢迎的编程语言,一直延续至今。

UNIX经典的设计哲学KISS,就是在那个时候被提出来的——Keep It Simple, Stupid。

06

黑客与“后门”

肯·汤普森还有一个备受争议的行为,就是在UNIX里留后门。是的,这哥们竟然在代码里下毒。

最开始的时候,UNIX系统在贝尔实验室是供大家免费使用的。有人发现,肯·汤普森总能进入每个人的账户,于是一位同事就分析UNIX代码,重新编译了系统。

令人意想不到的是,肯·汤普森还是能进入他们的账户,贝尔实验室的科学家们却对此束手无策。


直到1983年,肯·汤普森在他的图灵奖获奖感言里揭示了这一秘密,原来,让他轻松“侵入”各位同事账户的秘诀不在UNIX代码,而在编译UNIX代码的C编译器里,而肯·汤普森正是编译器的开发者。这个操作666,你以为看透了大神,可你就是玩不过他。

那位头发比他多,胡子跟他一样长的自由软件之父、著名黑客--理查德·斯托尔曼,曾这样定义过黑客,一名黑客必须包含三个特点:好玩、高智商、探索精神,而且三项必须同时满足。

黑客追求的不是实用性技术或金钱。老K作为一名技术从业者,经过多年的努力,我已经满足了黑客精神的其中一点:好玩。当然了,主要是被别人玩。

自由软件之父 理查德·斯托尔曼

或许从这个角度,更能理解肯·汤普森的行为,他并非违背了道德准则,对他来说这个事就是一逗乐。不难发现,黑客的价值观跟德云社还挺配的。

07

加盟Google,参与Golang语言开发

2000年,57岁的肯·汤普森在贝尔实验室退休。是的,这哥们的整个职场生涯都是在贝尔实验室度过的,期间有几年去了大学教UNIX系统课程。

然而,退休后这位老爷子也闲不住。


2006 年,肯·汤普森加入了 Google 公司。看看吧,谁说程序员做到35岁以后就找不到工作?关键还是技术过硬,别做了10几年技术还是写CRUD。玩技术的要么越钻越底层,要么就高屋建瓴搞架构,千万别原地踏步。

加入谷歌后,肯·汤普森又搞了一件大事。

他跟其它优秀的科学家一起开发了Go语言,也就是Golang。主要开发者有:肯.汤姆逊(Ken Thompson)、罗布.派克(Rob Pike)和罗伯特.格里泽默(Robert Griesemer)。另外两位也是大神,有机会再仔细写写。

Go语言不用多介绍了,有人形容Go语言:Go = C + Python , 说明Go语言既有C静态语言程序的运行速度,又能达到Python动态语言的快速开发。

国内不少科技公司都是Go的拥护者。比如七牛云的CEO许式伟,就是国内较早一批Go的使用者,他还出版了《Go语言编程》一书。

08

写最骚的代码,开最酷的飞机

肯·汤普森并没有像许多技术大神那样,走上技术创业的道路,成就更大的商业梦想。

他在贝尔实验室、谷歌,一直从事自己热爱的开发工作。

除了写程序之外,肯·汤普森是一位狂热的飞行爱好者,并且还获得了飞行执照。

闲暇之余,他会跟同事们一起自驾,来一场说走就走的飞行。你不用羡慕大神的生活,其实你也可以拥有,但首先你得有架飞机。

没有飞机也不用沮丧,说不定哪天,你用滴滴打飞机,就能叫到他。

你以为大神光是开私人飞机就完事了?肯·汤普森就算是爱好也要玩到极致。

1992年他特意到莫斯科,玩了一把米格29战斗机。不想开战斗机的飞行员不是好骑手。有钱、有闲、有胆,就这么任性,你有办法吗?

09

结语

肯·汤普森,对计算机软件业的发展,贡献是巨大的。不仅是UNIX系统发明人,在他的职业生涯里还开发了B程序语言(C语言的前身),UTF-8编码,ed文本编辑器,以及参与开发了Go程序语言。

除了获得图灵奖之外,他还先后获得了多项至高荣誉:

1994年,他获得了IEEE(电气和电子工程师协会)计算机学会先锋奖。

1998年,被授予美国国家科技奖章。

1997年,入选计算机历史博物馆名人录。

......

最后,以作家罗兰的一句名言与你共勉:“成功的意义应该是发挥了自己的所长,尽了自己的努力之后,所感到的一种无愧于心的收获之乐,而不是为了虚荣心或金钱。”

原文标题:他是世界上最杰出程序员之一,1 个月写了个操作系统,退休后去做飞行员!

文章出处:【微信公众号:Linux爱好者】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 计算机
    +关注

    关注

    19

    文章

    7386

    浏览量

    87646
  • 操作系统
    +关注

    关注

    37

    文章

    6703

    浏览量

    123153
  • 代码
    +关注

    关注

    30

    文章

    4730

    浏览量

    68264

原文标题:他是世界上最杰出程序员之一,1 个月写了个操作系统,退休后去做飞行员!

文章出处:【微信号:LinuxHub,微信公众号:Linux爱好者】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    ROM对计算机性能的影响

    是一种非易失性存储器,即使在断电的情况下也能保持数据不丢失。它通常用于存储固件,这些固件是计算机启动和运行操作系统所必需的。ROM的内容在制造过程中被写入,并且通常不能被用户更改。 ROM的类型 PROM(可编程ROM) :用户可以通过特殊的编程设备写
    的头像 发表于 11-04 10:31 133次阅读

    新手学操作系统(第一周)

    1.介绍计算机、OS与应用程序之间的关系,计算机的硬件是底层的基础,操作系统在其之上管理硬件资源,应用程序则通过操作系统来实现其功能;2.推
    的头像 发表于 10-08 11:33 181次阅读
    新手学<b class='flag-5'>操作系统</b>(第一周)

    计算机存储系统的构成

    计算机存储系统计算机中用于存放程序和数据的设备或部件的集合,它构成了计算机信息处理的基础。一完整的
    的头像 发表于 09-26 15:25 487次阅读

    工控机支持什么操作系统

    工控机,全称工业控制计算机(Industrial Personal Computer, IPC),支持多种操作系统以满足不同行业和应用场景的需求。具体来说,工控机常见的操作系统包括:
    的头像 发表于 09-11 09:24 320次阅读

    Windows操作系统是什么?它有哪些特点?

    更新和版本迭代,逐渐发展成为全球应用最广泛的操作系统之一。Windows系统提供了一用户友好的图形用户界面(GUI),使用户能够通过鼠标、键盘和触摸屏等输入设备来与计算机进行交互,从
    的头像 发表于 08-07 16:30 1449次阅读

    计算机系统的组成和功能

    计算机系统是一复杂而庞大的概念,它涵盖了计算机硬件、软件以及它们之间相互作用的所有元素。为了全面而深入地探讨计算机系统,本文将从定义、组成、功能、发展历程以及未来趋势等方面进行详细阐
    的头像 发表于 07-24 17:41 700次阅读

    本源超导量子计算机自主制造链11类产品系列之八:中国第一款量子计算机操作系统

    使用。中国第一款量子计算机操作系统操作系统是管理计算机软硬件的“大管家”,也是决定其性能的关键技术领域。如果把量子芯片比喻成人的心脏,量子计算机
    的头像 发表于 05-28 08:22 367次阅读
    本源超导量子<b class='flag-5'>计算机</b>自主制造链11类产品系列之八:中国第一款量子<b class='flag-5'>计算机</b><b class='flag-5'>操作系统</b>

    这些操作系统是否适用于机载系统计算机

    操作系统主要功能是管理计算机上的软件(如应用程序、驱动程序)和硬件(如处理器、存储器等),为用户提供服务。
    的头像 发表于 04-12 09:25 504次阅读
    这些<b class='flag-5'>操作系统</b>是否适用于机载<b class='flag-5'>系统计算机</b>?

    韩国3出口持续6个月增长,半导体出口额创21个月新高

    在四主要IT产品类别中,半导体出口额高达117亿美元,同比增长了35.7%,连续五个月维持了增长。显示器出口额上涨16.2%;计算机出口额提高24.5%;
    的头像 发表于 04-01 17:05 711次阅读

    【量子计算机重构未来 | 阅读体验】+ 了解量子叠加原理

    )。通过逻辑门来执行操作二进制数据,逻辑门是一种基本电路,它可以将一或多个输入转换为输出。逻辑门包括与门、或门、非门等等,将许许多多逻辑门组合起来就可以构建复杂的电路来执行各种操作,电子计算
    发表于 03-13 17:19

    【量子计算机重构未来 | 阅读体验】+ 初识量子计算机

    欣喜收到《量子计算机——重构未来》一书,感谢电子发烧友论坛提供了一让我了解量子计算机的机会! 自己对电子计算机有点了解,但对量子计算机
    发表于 03-05 17:37

    中国第一款量子计算机操作系统获官方“三新”认定

    操作系统"本源司南"成功入选。"本源司南"是中国首个量子计算操作系统,该系统在国内首次支持量子计算任务批处理,能够支持量超协同
    的头像 发表于 02-19 12:50 271次阅读
    中国第一款量子<b class='flag-5'>计算机</b><b class='flag-5'>操作系统</b>获官方“三新”认定

    计算机系统如何应对大模型时代的挑战与机遇

    操作系统管理着计算机的资源和进程,以及所有的硬件和软件。计算机操作系统让用户在不需要了解计算机语言的情况下与
    发表于 01-23 11:06 499次阅读
    <b class='flag-5'>计算机系统</b>如何应对大模型时代的挑战与机遇

    深度解析全球操作系统格局

    操作系统是负责协调、管理和控制计算机硬件与软件资源的程序,是整个计算机的核心系统软件。 按照操作系统面向的设备类型,通用
    的头像 发表于 01-18 15:00 1018次阅读
    深度解析全球<b class='flag-5'>操作系统</b>格局

    工业计算机和PLC的区别

    存在一些区别。 首先,工业计算机是一种高性能的通用计算机,它具有强大的计算、存储和通信能力。工业计算机一般采用标准的x86架构,可以运行各类通用操作
    的头像 发表于 12-15 10:10 840次阅读