聊一聊那些神一样的程序员们(中)

史上最强量化工具库 Ta-Lib 从入门到精通,一篇文章就够了! Ta-Lib 提供的 13 个关键指标,并配上详细的代码示例,确保你看完就能直接上手!🔥。 阅读详情

点上面的蓝字关注“码农翻身”。

今天再来谈谈另外两个大牛 肯·汤普逊(Kenneth Lane Thompson)、丹尼斯·里奇(Dennis MacAlistair Ritchie), Unix 和C 语言之父 , 1983年ACM 图灵奖的获得者。理由是他们“研究发展了通用的操作系统理论,尤其是实现了UNIX操作系统”.

注意后半句, 搞计算机的多少都会有一点OS情节,总是梦想是自己也能做一个OS ,我也是这样。 可对大多数人来说,这是梦想而已,因为现代的操作系统 太复杂,太庞大,你即使精通理论,实现的工作量远远超出了一个人的能力范围。

但是两位老兄竟然自己卷起袖子,带头编写了一个千古流芳的操作系统(Unix 的重要性和影响力这里就不用啰嗦了, 反正它和它的变种们已经统治了服务器端和手机端),我们看看第一版是怎么出炉的:

1968年 ,两人被贝尔实验室派到MIT去参加一个ARPA出资的项目,开发一个分时的操作系统MULTICS (支持多任务并发运行,这在60年代可是很稀罕的), 在项目完成前不久,贝尔因为开发费用太大,而开发成功希望不大而把他们调回贝尔,两人深感沮丧。

回到贝尔以后,面对实验室落后的仍以批处理工作的计算机环境,他们非常怀念MULTICS,决定自己动手改造,创造一个“舒适的,愉快的工作环境” 。 但是贝尔实验室因为退出了MULTICS , 更不会出钱来支持他们。

1969 年 万般无奈的Thomason 在库房里发现了一个弃之不用的PDP-7 , 大喜过望,立刻开始实施他们的计划。但是PDP-7实在是老掉牙了, Thomason 又借口帮助公司开发一个字处理系统来处理专利申请书 , 冠冕堂皇的申请到一个新的,设备完善的PDP-11 , 这才使开发工作顺利开展。

他们以极大的热情和极高的效率投入工作,使用汇编语言, 开发基本上以每个月一个模块(内核,文件系统,内存管理,I/O。。。) 的速度推进 !

请注意关键字,1. 汇编语言,2. 每月一个模块。

每次我看到这里,不由的倒吸一口凉气, 这实在是一个细思极恐的事情。

学过汇编的都知道,汇编只不过是二进制语言的一些助记符而已,连最基本的函数封装都没有,想做个循环必须用goto , 记得大学时学汇编,写个简单的读取键盘输入,在屏幕上回显都很费劲。

可是这两位老兄竟然用汇编实现了操作系统, 并且一个月就能搞定内核,再用一个月就能搞定文件系统,你能想象得到他们到底有多牛吗?

有人可能要问了,为什么不用C 语言呢? 答案很简单,C语言这时候还没有被他们俩发明。

Unix 在PDP-11上实现以后,两人很快就发现移植性很差, 这是当然,汇编语言嘛,高度依赖硬件。

他们试图用一个高级语言来重写,先选择了BCPL(简称B 语言) ,然后又尝试PASCAL ,发现都不行,它们都不太贴近硬件操作。 于是两个人(主要是Dennis Ritchie)决定自己开发一套新的语言:这就是大名鼎鼎的 C 语言。

C 语法简洁,对计算机模型做了良好的抽象,能够直接对内存操作,并且保持了很好的移植性。

C的语法风格深 深地影响到了他的那些著名的后辈们 C++, Java , C# ...... 都采用了大括号作为方法体的开始和结束,都使用分号来分开statement , 至于if .. else , while , switch 等基本控制语句几乎一样, 甚至连注释的风格都差不多。 由此可见C 的影响力和历史地位。

Dennis Ritchie 用C 语言重写了Unix , "重写"说起来简单,实际上并不是简单的汇编到C语言的翻译, 这里边包含了很多的发明和创造。

重写过的Unix 很快就流行起来,40 多年过去了,虽然出现了很多的类Unix 系统,例如Linux, 但是他们都继承了Unix 中的基本思想, 并且发扬光大。

关于Unix 有个很有趣的故事,传说KenThompson在贝尔实验室,大摇大摆的走到任何一台Unix机器前,输入自己的用户名和密码,就能以root的方式登 录! 贝尔实验室人才济济,另外一些大牛发誓要把这个漏洞找出来,他们通读了Unix的C源码,终于找到了登录的后门, 清理后门以后编译Unix , 运行, 可是Thompson 还是能够登录进去。

有人觉得可能是编译器中有问题,在编译Unix的时候植入了后门, 于是他们又用C语言重新写了一个编译器,用新的编译器再次编译了Unix, 这下总算天下太平了吧。

可是仍然不管用, Thompson 依然可以用root登录,真是让人崩溃 !

后来Thompson 本人解开了秘密,是第一个C 语言编译器有问题, 这个编译器在编译Unix源码的时候,当然会植入后门, 这还不够,更牛的是,如果你用C 语言写了一个新编译器,肯定也需要编译成二进制代码啊,

用什么来编译,只有用Thompson写的那第一个编译器来编译,好了, 你写的这个编译器就会被污染了

你的编译器再去编译Unix , 也会植入后门 :-)

KenThompson 和 Dennis Ritchie 绝对是两位超级程序员, Thompson 后来加入Google ,和Rob Pike (另外一个大牛)等人一起创造了Go 语言, 我在这里大胆的预测一下,Go 语言将来在系统编程领域会替代C 语言。 Dennis Ritchie 2011年去世,享年70岁。

来一张获奖照吧,两个大胡子,经常分不清谁是谁,右边那位大家肯定都认得,克林顿同学给他们颁发国家技术奖

0?wx_fmt=jpeg

预告:下期介绍发明C#的Anders , 八卦一下Microsoft 和比尔盖茨 , 敬请期待!

长按二维码, 关注"coderising"

加入QQ群:135769418 和真正热爱编程的朋友交流。

0?wx_fmt=jpeg

Nvidia Orin Driveos Camera 介绍及调试详解 自动驾驶-nvidia orin driveos Camera 驱动详解及调试 阅读详情

相关推荐

基于多物理参数数据融合和先进人工智能算法的锂电池热失控监测传感器

基于多物理参数数据融合和先进人工智能算法的锂电池热失控监测传感器是多种方案中的优选项!是一种快速、准确、可靠、应用广泛的传感方案!可有效监测锂离子电池热失控风险,保障化学能储能电站安全!

chicheng_danxin的博客 2411

茶余饭后:聊一聊那些神一样的程序员们 (1)

中午吃饭回来, 路上和同事偶尔聊起了IT界的一些牛人们, 他们做出的那些常人难以企及的开创性的工作,常常让我们是叹而观止,仅仅用“牛”来形容已经不够了, 得用“神一样的超级程序员” 才能表达敬仰之情,这里总结一下,可以作为大家茶余饭后的谈资 :-)   先来说说D.E Knuth(高纳德. 克努特), 他最为人知的工作就是经典巨著《计算机程序设计的艺术》, 这本书第一卷《基本算法》 于19...

ender 471

ROS2+MoveIt2+Gazebo仿真实战:从零搭建六轴机械臂控制闭环

本文详细介绍了如何从零搭建一个完整的ROS2+MoveIt2+Gazebo六轴机械臂仿真控制闭环。通过手写URDF模型、配置MoveIt2运动规划、集成Gazebo物理仿真与ROS2 Control控制器,最终实现RViz中规划轨迹、Gazebo中同步执行的完整数字孪生验证平台,为机器人算法开发和硬件验证提供低成本、高效的仿真解决方案。

weixin_29093017的博客 484

那些神一样的程序员

在MIT的BBS上曾有一个帖子,其中问道:“你觉得谁是最厉害的程序员, 为什么?”虽然大家在回复的帖子中声明最厉害的程序员排名不分先后,然而大多数人仍把Bill Joy列在第一位。Bi...

码农翻身 7025

Android Studio打包全攻略---从入门到精通

初出茅庐 手动打包怎么手动打包项目写完了,现在需要把应用上传到市场,问题出现—怎么把代码变成.apk(Android的可安装文件)。 1. 创建签名文件 2. 填写好签名参数 3. 生成APK 注意:签名的密码和密匙的密码注意保管,不要忘了,签名文件别泄漏了,也别搞丢了为什么要打包我最开始就有这个疑问,我们的代码不是点了下运行按钮就直接安装到手机上了吗,我们在在项目Project

我早就想,要这样载着你,翻山越岭 2万+

昆仑通态,自由串口通讯

软件默认无该功能,需要问客服索要扩展包。

cfqq1989的博客 1536

全球最杰出的14位程序员

近日,ITWorld整理全球最杰出的14位程序员,一起来看下让我们膜拜的这些大神都有哪些?(排名不分先后) 1.Jon Skeet 个人名望:程序技术问答网站Stack Overflow总排名第一的大神,每月的问答量保持在425个左右。 个人简介/主要荣誉:谷歌软件工程师,代表作有《深入理解C#(C# In Depth)》。

黑马程序员官方博客 3057

医学图像分割实战:基于TransUNet训练自己的眼底硬渗出物数据集(附完整代码)

本文详细介绍了基于TransUNet的眼底硬渗出物分割实战指南,涵盖数据预处理、模型调优、训练策略及性能优化等关键环节。通过代码复现和实验对比,展示了TransUNet在医学图像分割中的优势,为糖尿病视网膜病变的早期诊断提供技术支持。

weixin_42524708的博客 361

聊一聊那些神一样的程序员们(上)

有这样一批IT界的牛人们, 他们做出的那些常人难以企及的开创性工作,常常让我们叹而观止,仅仅用“牛”来形容已经不够了, 得用“神一样的超级程序员” 才能表达敬仰之情,这里...

码农翻身 736

【华为OD机试真题 新系统】959、 水库溃坝填补 | 机试真题+思路参考+代码解析(C++、Java、Py、C语言、JS)

【华为OD机试真题 2025C卷】959、 水库溃坝填补 | 机试真题+思路参考+代码解析(C++、Java、Py、C语言、JS) 华为od机试,华为od机试真题,华为od机试E卷,华为odE卷,华为od机试真题E卷,华为OD,华为OD机试,华为OD机试真题,华为od机考,华为od机试D卷,华为od机试真题D卷,华为od手撕代码,华为od,华为od机试C卷,华为od e卷,华为2025e卷,od机试,2025E卷,华为OD机试E卷,什么是华为od,华为od介绍,全面了解华为od,2025华为od,如何备战华

KJ.JK 2932

04 Zabbix自定义触发器

1、触发器是什么 触发器表达式:允许定义一个什么状况的数据是“可接受”的阈值。因此,如果接收的数据超过了可接受的状态,则触发器会被触发 , 或将状态更改为异常。 一个触发器可以拥有下面几种状态: 值 描述 OK 这是一个正常的触发器状态。在旧版本的Zabbix中称为FALSE。 PROBLEM 通常意味着发生了某些事情。例如,处理器的负载较高。在旧版本的Zabbix中称为TRUE。 2、创建触发器TRIGGER 案例:系统超过3个用户登录,则告警。 2.1 开启告警声

Jian Sun_的博客 1540

茶余饭后:聊一聊那些神一样的程序员们(2)

接上一篇 《茶余饭后:聊一聊那些神一样的程序员们 》   这一篇主要聊一聊安德斯·海尔斯伯格(Anders Hejlsberg ),他没有获得过图灵奖, 在名气上比不上前面几位,但也是另外一个传奇。   其实安德斯还真的和图灵奖有那么一点点联系,故事需要从Pascal 这门曾经大红大紫的语言说起。   凡是学过一点计算机知识的人大概都知道  程序=数据机构+算法 这一著名公式,提出...

ender 567

【人工智能-数据集】RML2018 时域信号的时序信号和星座图的图片信号生成方式(可用于多模态特征融合)

RML2018(RadioML 2018)数据集是一个广泛用于无线通信信号识别的开源数据集。它包含了多种调制方式(如OOK、QPSK、16QAM等)在不同信噪比下的信号样本。这些数据以 HDF5 格式存储,适用于大规模的数据处理和分析。数据集特点:多调制方式:涵盖24种不同的调制方式。多信噪比:包括从-20 dB到30 dB的26种信噪比。大规模样本:每种调制方式和信噪比下包含4096个样本。数据切分:将原始的 HDF5 数据集按照调制方式和信噪比切分成单个文件,便于后续处理。样本选择。

若北辰 971

茶余饭后:聊一聊那些神一样的程序员们

中午吃饭回来, 路上和同事偶尔聊起了IT界的一些牛人们, 他们做出的那些常人难以企及的开创性的工作,常常让我们是叹而观止,仅仅用“牛”来形容已经不够了, 得用“神一样的超级程序员” 才能表达敬仰之情,这里总结一下,可以作为大家茶余饭后的谈资 :-)   先来说说D.E Knuth(高纳德. 克努特), 他最为人知的工作就是经典巨著《计算机程序设计的艺术》, 这本书第一卷《基本算法》 于1968

zhujiaxing666666的专栏 655

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

聊一聊那些神一样的程序员们(下)

点击上面的蓝字,关注“码农翻身”这一篇主要聊一聊安德斯·海尔斯伯格(Anders Hejlsberg ),他没有获得过图灵奖, 在名气上比不上前面几位,但也是另外一个传奇...

码农翻身 503

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

33 | 聊一聊程序员学英语

又到了相对轻松的特别放送时间,这一次,我想聊一聊程序员对于英语的学习。在专栏最开始的 [学习路径] 中就提到了工程师的一些“基础”能力,比如数据结构和算法,当然也包括英语。当时我说,,而且英文是所有进阶的软件工程师应当强化的能力,对全栈工程师来说更甚。但是我在当时并没有展开论述,为什么在中文技术材料如此丰富的今天,在工作环境是以中文为主的情况下,英语的学习依然那么重要。

qq_37756660的博客 1778

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

聊一聊程序员行业关于未来的那些事

1.一些疑惑 最近作者也收到了很多人的咨询,有问大专生的未来的,有问程序员的未来的,有迷茫的,有焦虑的,在这里,突然想写一篇博客,解答一下大家,作者从事软件开发已经有将近7个年头了,从懵懂无知,到迷茫,到奋起拼搏,想把自己的感悟分享大家。 2.入行原因 09年的时候,特别沉迷一款单击游戏《仙剑奇侠传》,然后梦想着有一天能够去做游戏,在高三的时候用自己攒的零花钱,买了人生中的第一本编程书《C语言入门》,出于对计算机编程的热爱,高三下学期高考复习的时间都用来学编程了,然后高考比较失利。。。然后在一所普通院校开

刘洋巴金的专栏 7660

聊一聊程序员为什么都要做自己的产品!

这里的“产品”是广义的,它可以是你精心维护的开源项目,解决了一个特定技术难题,被同行使用和认可;在非AI的时代,优秀程序员和普通程序员之间的差距是巨大的,包括认知思维、技术能力、基本的谈吐等。这个过程,能让你对技术有更深的理解,对市场有更敏锐的洞察,甚至可能直接带来收入,实现某种程度上的“弯道超车”。因此,初级程序员需要主动学习,利用业余时间阅读技术书籍、参加线上课程或者参与开源项目,拓宽自己的技术视野,提升自己的技术能力。开始之前,大家可以先思考一下,在程序员的职业生涯中,一般都是如何提升自己的能力的?

测试开发技术 742

很认真的聊一聊程序员的自我修养

本文正在筹备第二版,以下是第一版主要内容 首先要谈的是,今天的话题所聊的程序员包含哪些人? 在中国,写程序,不仅仅是一种兴趣,更多的时候,还是一种普通职业和谋生工具 大公司有厉害的程序员,优秀的架构师,但大量的小公司也有很多普通的程序员。在我这些年的工作经历中,也越来越深刻的感受到普通程序员的影响和力量。对于高阶程序员,所谓八仙过海各有神通,各有各的成就,各有各的修养,但...

1331

来聊一聊程序员的内卷

想看更多算法题,可以扫描上方二维码关注我微信公众号“数据结构和算法”,截止到目前我已经在公众号中更新了500多道算法题,其中部分已经整理成了pdf文档,截止到目前总共有1000多页(并且还会不断的增加),可以在公众号中回复关键字“pdf”即可下载。 在过去的一年内,内卷这个词突然流行起来,不过大家不要激动,这个内卷不是你平时吃的这个卷,哈哈。 内卷,本意是指人类社会在一个发展阶段达到某种确定的形式后,停滞不前或无法转化为另一种高级模式的现象。当社会资源无法满足所有人的需求时,人们通过竞争来获取更多资..

数据结构和算法 1701

当程序员的好处和坏处,我用七年经历来和大家聊一聊

现在这些库都比较丰富,你可能需要知道一些一定的概念,然后再调用这些库函数或者方法,理论上你也能做出来,但是如果这些库存在一定的问题的话,你就几乎很难去改动他们。当然,这可能因人而异。总之,作为一名Python程序员,需要掌握好Python语言和相关技术,了解Python在不同领域的应用,保持良好的编码习惯和团队协作能力,不断学习和更新自己的知识和技能,以实现自己的职业发展和成长。还有一个对程序员来说比较重要的理论支持是数据结构,比如二叉数这些平衡数,虽然用到的概率不是太大,但是对你理论知识是有帮助的。

2301_77139641的博客 7205

女程序员做了个梦,神评论。。。

豆瓣上发现一篇神帖,激起了我作为一个程序员的共鸣! 大概意思是这样的: 昨晚梦见男朋友和别的女人在逛街,梦里我的第一反应是查源代码…结果调试半天查不出来为什么显示的是那个女人不是我,最后含泪把那个女人给注释掉了,再一运行就是我男朋友自己逛街了…醒来囧字脸呆了很久…囧rz 为了应景,我今天特意用了绿油油的主题颜色。 重点来了,看看神级评论: 亡羊补牢型 把那个女人的指针指向你即可; 谁让你把男朋友设成 public 的; 心真软,就该把他的接口屏蔽掉; protected 逛街(youOnly);

m0_59164304的博客 6435
上一篇: 聊一聊那些神一样的程序员们(上)
下一篇: 那些永不过时的书,你看过几本吗?
码农翻身
码农翻身 《码农翻身》作者 《码农翻身》作者
博客等级 码龄8年 3万+粉丝 1084原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值