他是世界上最杰出的程序员,一个月写了个操作系统,退休后去做飞行员!

Go语言圣经 上个世纪 70 年代,贝尔实验室的 Ken Thompson 和 Dennis M. Ritchie 合作发明了 UNIX 操 作系统,同时 Dennis M. Ritchie 为了解决 UNIX 系统的移植性问题而发明了 C 语言,贝尔实 验室的 UNIX 和 C 语言两大发明奠定了整个现代 IT 行业最重要的软件基础(目前的三大桌面 操作系统的中 Linux 和 Mac OS X 都是源于 UINX 系统,两大移动平台的操作系统 iOS 和 Android 也都是源于 UNIX 系统。C 系家族的编程语言占据统治地位达几十年之久)。在 UINX 和 C 语言发明 40 年之后,目前已经在 Google 工作的 Ken Thompson 和 Rob Pike(他 们在贝尔实验室时就是同事)、还有 Robert Griesemer(设计了 V8 引擎和 HotSpot 虚拟机) 一起合作,为了解决在 21 世纪多核和网络化环境下越来越复杂的编程问题而发明了 Go 语言。 从 Go 语言库早期代码库日志可以看出它的演 立即下载

大家好,我是阳哥。

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

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

翻译过来就是:

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

文章开头引用一段英文,是为了显得K哥有文化,不过这些都不重要,本文将要介绍的这位,才是真正的牛逼,大神中的大神。他就是,UNIX之父、Golang发明人之一,肯·汤普森。

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

ecf7bccc6b1bb25b63c7359950110fbb.jpeg


01

计算机天才养成记

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

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

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

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

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

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

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

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

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

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


02

加入贝尔实验室

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

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


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

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

33db98e03b6e667e6dd6cfaf93a259cb.jpeg

贝尔实验室


03

搞砸 “Multics操作系统”项目

1966 年,肯·汤普森加入贝尔实验室,与丹尼斯·里奇(C语言发明人)一起参与名为 “Multics操作系统”的项目开发。

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

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

但是,由于大家太过追求完美,导致开发周期过长,成本高,短期内看不到产出。可惜那个年代还不流行敏捷开发的理念。

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

4de883e6e8f98615d081ba10bd86be78.jpeg

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


肯·汤普森也很失望,但是让他失望的不是搞砸项目本身,而是他再也不能玩自己写的名为“star travel”的游戏了,因为这个游戏完全是基于 Multics 的。你看看大神,玩游戏才是主业,上班只是副产品。

dc9e7a0bc239f7298abe3436e0c93f34.jpeg


04

为了玩游戏,开发了UNIX

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


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


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

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

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

这个故事告诉我们,一个男人想要搞大事,老婆不在家是多么的重要!K嫂你看到了吗?K哥一把年纪一事无成,是有原因的。一天查岗八回,能写出个屁才怪呢。

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

3fd2b107452962ef7125cdcee9dce26f.jpeg

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


05

UNIX 跟C语言更配

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


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


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

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

ef2fc119d12f644d9c637bc969fc5ad8.jpeg

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


06

黑客与“后门”

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

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

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


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

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

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

d82d7e792815346f335264676f673c76.jpeg

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

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


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的使用者。许老板早年刚创业的时候,来K哥所在的公司做过技术交流,我作为公司代表接待过他,算是有一面之缘吧。


08

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

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

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

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

0ad8116a4a1545d0353c8d95a3cadc06.jpeg

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

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

a7f81bcfc2c7b6e2ad18bc1a10018e27.jpeg


09

结束语

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

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

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


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


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

......

肯·汤普森的整个职业生涯,并没有像比尔盖茨、乔布斯等技术天才那样,走上创业的道路,赚很多的钱。他只呆过两家公司,所做的工作也是他一直热爱的编程工作。

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

-------- End --------

850b7be3cec32e80d344ab16b1b0e0c7.jpeg
精选内容
eb8be97058649233e8ab2492bf44a825.jpeg 44f459d4e891fd8b7ae5320ea0859122.jpeg
DCN交换机通过boot模式升级 LIC导入成功后,输入enable进入特权模式,把网线接到通讯网口上,配置好对应interface vlan地址,在enable模式用 copy tftp://x.x.x.x/xxxxxx_nos.img nos.img待提示write ok时,reload设备完成升级。交换机启动后,在显示以下信息时输入“Ctrl+B”,一定得是手动按“Ctrl+B”进入的boot模式才能正常升级。升级交换机成功,在BootROM模式下,执行命令run或reboot,回到CLI配置界面。# 交换机通过boot模式升级。 阅读详情

相关推荐

Homebrew高效升级与国内镜像源配置全攻略

本文详细介绍了如何通过配置国内镜像源(如清华、中科大、阿里云)来高效升级Homebrew,解决国内开发者访问GitHub仓库速度慢的问题。文章提供了从基础配置到永久生效的完整教程,包括常见问题解决和进阶技巧,帮助开发者大幅提升软件包管理效率。

weixin_28835551的博客 416

Go早期的那些布道者

Go自2009年开源至今已经快15年了[1]!这期间,有很多人对Go语言的发展做出了重要贡献,起到了至关重要的作用,他们被视为Go语言的早期布道者和鼓吹者。他们向Go社区传达着Go的价值观、Go的最新发展、Go的使用方法以及最佳实践。这些人有来自Go团队的,有来自Google但非Go团队的,也有Go的早期采纳者和贡献者。如今这些人的状况不尽相同。有些人依然在活跃在Go团队中,为Go的演进持续做着贡...

TonyBai 1508

【PDN仿真笔记9-使用Sigrity PowerDC进行IR Drop仿真的方法】

使用Sigrity PowerDC进行IR Drop进行仿真的方法

qq_42682826的博客 8004

Go 语言创建者,大佬们的有趣的对话访谈

卡门(Carmen)和乔恩(Jon)与罗​​布·派克(Rob Pike)和罗伯特·格里塞梅尔(Robert Griesemer)(Go的创造者)讨论了它的起源,增长,影响力和未来。这是一部史诗般的剧集,深入探讨了Go语言的历史和细节,以及Go语言的方式和原因,以及他们在创建这种出色的编程语言过程中所做的选择。 卡门·安多(CARMEN ANDOH) 欢迎大家,去时间!今天我们为您举...

猫哥 的沉淀、积累、总结。天天学习,好好向上...c/c++,嵌入式 linux,Android,HarmonyOS,AIOT) 2562

Label Studio保姆级教程:从零搭建医疗影像标注平台(DICOM格式支持)

本文提供基于Label Studio从零搭建医疗影像标注平台的保姆级教程。针对DICOM格式支持,详细阐述了环境部署、DICOM深度集成与预处理、团队协作权限管理以及质量审核闭环等核心环节,旨在构建一个高效、可落地的医疗AI数据标注解决方案,助力模型落地。

nft7creator的博客 304

告别信号毛刺!手把手教你用ADS和IBIS-AMI模型搞定PCIe Gen3眼图仿真

本文详细介绍了如何使用Keysight ADS和IBIS-AMI模型进行PCIe Gen3眼图仿真,解决高速信号传输中的信号质量问题。从仿真环境搭建、S参数预处理到眼图优化与故障排除,提供了一套完整的工程实践指南,帮助工程师提升PCIe Gen3接口的信号完整性。

weixin_28366053的博客 370

Go语言的创造者罗伯特·格瑞史莫的工作壮丽旅程

与此同时,他也积极参与Go语言社区的活动,如会议、讲座和讨论等,分享他的经验和见解,为Go语言的发展助力。除了在谷歌的工作之外,罗伯特·格瑞史莫还与其他编程专家合作撰写了多本关于Go语言的书籍,这些书籍为广大开发者提供了学习Go语言的资料和指导。他不仅致力于Go语言的发展和改进,还通过各种方式积极推动Go语言的普及和应用。他的工作对于Go语言的成功和全球开发者的福音来说都具有重要的意义。作为谷歌的一名资深工程师和Go语言的主要设计者之一,他在谷歌的工作状态一直保持着非常活跃和富有成效的状态。

guzhoumingyue的专栏 715

LIO-SAM运行报错‘process has died’?别慌,一个命令搞定libmetis.so库路径问题

本文详细解析了LIO-SAM运行中常见的‘process has died’报错问题,特别是由libmetis.so库路径错误导致的节点崩溃。通过一个简单的命令移动库文件到正确位置,即可快速解决这一问题,同时提供了多种替代方案和预防措施,帮助开发者更好地理解Linux动态库加载机制和ROS环境管理。

weixin_29231221的博客 205

[GO专栏-1]Go语言的前生今世

Go语言的前生今世Go 语言的诞生Go 语言的早期团队和演化历程Go 语言正式公布并开源Go 语言的版本结尾????点击直接资料领取???? Go 语言的诞生 2007年9月20日的下午,在谷歌山景城总部的一间办公室里,谷歌的大佬级程序员 Rob Pike1在等待一个 C++ 项目构建的过程中和谷歌的另外两个大佬级程序员 Robert Griesemer2和 Ken Thompson3进行了一次有关设计一门新编程语言的讨论。 图1-1-1 Go语言之父(从左到右分别是Robert Griesemer、Ro

苏州程序大白的博客 1082

Vue3实战:企业级应用集成钉钉扫码登录全流程解析

本文详细解析了在Vue3企业级应用中集成钉钉扫码登录的全流程。从钉钉开放平台应用创建与配置,到Vue3前端如何优雅地嵌入并管理扫码组件,再到后端如何安全地处理OAuth 2.0授权码以换取用户信息并完成登录,提供了完整的实战代码与避坑指南。该方案能有效实现安全便捷的单点登录,统一企业身份认证。

weixin_29019241的博客 289

Polyworks脚本开发实战指南:高效生成数据彩图与报告的关键指令解析

本文深入解析了Polyworks脚本开发中生成数据彩图与自动化报告的核心指令。通过实战案例,详细介绍了REFERENCE_SURFACE、THICKNESS和CLEARANCE等关键彩图生成指令的正确用法与常见避坑点,并阐述了如何利用REPORT_ITEM命令实现从截图、表格生成到智能排版的全流程自动化,旨在帮助三维检测与质量控制工程师大幅提升工作效率与报告标准化水平。

weixin_29209825的博客 555

“能力越大,责任越大” - Go语言之父详解将于Go 1.18发布的Go泛型

Go语言之父在2020.11.9~11.13举行的全球最具影响力的Go语言技术大会GopherCon 2020上,Go语言之父之一的Robert Griesemer为全世界Gopher们...

TonyBai 5469

基于 ESP32 的智能药盒提醒装置设计与实现

本装置基于 ESP32 实现了智能药盒的核心功能,硬件选型兼顾成本与实用性,软件设计模块化、易拓展。后续可通过 ESP32 的 WiFi 模块接入物联网平台(如阿里云、OneNet),实现远程设置提醒、服药状态反馈等功能,进一步提升智能化水平。该装置能有效解决老人忘服药问题,具有较高的实用价值与推广潜力。

weixin_42300449的博客 1045

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

点击上方“Github爱好者社区”,选择星标 回复“资料”,获取小编整理的一份资料 1983 年,美国计算机协会将图灵奖授予肯·汤普森和与丹尼斯·里奇。获奖理由是:“For their ...

GitHub爱好者社区 361

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

他 1 个月写了个操作系统,退休后去做飞行员!

见字如面,我是军哥!周末了,来看篇轻松的文章。1983 年,美国计算机协会将图灵奖授予肯·汤普森和与丹尼斯·里奇。获奖理由是:“For their development of gener...

chengjun_java的专栏 409

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

程序员膨胀了?年薪100万,腾讯程序员跟南航飞行员差不多?

近段时间,《中国机长》这部电影大火,机长临危不乱、力挽狂澜,确保了机上全部人员的生命安全,创造了世界民航史上的奇迹,不仅收获了观众们的掌声,同时也让飞行员这个职业的社会地位又提升了一大截,不少人都憧憬着能成为一名飞行员,驰骋天空。 但是,真的有这样的机会摆在面前时,有人却犹豫了。近日,一位朋友在脉脉上发帖称,自己目前有两个选择,一个是腾讯的开发offer,一个是南航的飞行员,招飞录上了,却不知道...

javajavajava 1311

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

26 岁创造 UNIX,退休后却成为一名飞行员

肯·汤普森,图源:维基百科UNIX 之父、图灵奖得主、C 语言的前身 B 语言的开发者、操作系统 Plan 9 的主要作者、Belle(一个国际象棋程序)作者之一,这些成就都出自一人之手...

zandaoguang的博客 396

编程语言之父们退休太无聊,纷纷选择重返职场

在该退休的年纪还依然奋斗在工作岗位上

程序人生的博客 6601

2024年最全程序员膨胀了?年薪100万,腾讯程序员跟南航飞行员差不多?,前端最新大厂面试真题总结

一位前阿里员工表示,他有位高中同学,和他一样92年的,成绩不好,去了北航飞行学院,现在在东航当飞行员;在部分脉脉用户看来,相对于飞行员来说,程序员的门槛低太多了,社会上的程序员一抓一大把。这也是为什么大家都说35岁是程序员的门槛,很多人迈不过去,其实各行各业都是这样都会有个坎,公司永远都缺的高级人才,只用这样才能在大风大浪过后,依然闪耀不被公司淘汰不被社会淘汰。内容包括html,css,JavaScript,ES6,计算机网络,浏览器,工程化,模块化,Node.js,框架,数据结构,性能优化,项目等等。

2401_84436058的博客 663

2024年前端最新程序员膨胀了?年薪100万,腾讯程序员跟南航飞行员差不多?(1),前端开发包

面试一面会问很多基础问题,而这些基础问题基本上在网上搜索,面试题都会很多很多。最好把准备一下常见的面试问题,毕竟面试也相当与一次考试,所以找工作面试的准备千万别偷懒。面试就跟考试一样的,时间长了不复习,现场表现肯定不会太好。表现的不好面试官不可能说,我猜他没发挥好,我录用他吧。开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】96道前端面试题:常用算法面试题:内容主要包括HTML,CSS,JavaScript,浏览器,性能优化12)]内容主要包括。

2301_77595001的博客 1083
上一篇: 比XShell更好用、更现代的终端工具!
下一篇: 12个Pandas数据处理高频操作
Python数据之道
博客等级 码龄9年 3070粉丝 139原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值