php发展

首页 » 常识 » 诊断 » C语言之父和Linux之父谁更伟大
TUhjnbcbe - 2021/5/13 13:29:00
北京中科白殿医院官网 http://m.39.net/pf/bdfyy/zqbdf/
前言

在计算机软件领域,做出过重大贡献的神人很多,在这闪耀的明星中,最为闪耀的莫过于「LinusTorvalds和DennisRitchie」。

那么这两位谁的贡献更大呢?

这是一个很难回答的问题,就如同关公战秦琼,仁者见仁,智者见智。

还是先对两位大神做个介绍吧。

一、DennisRitchie

C语言之父,UNIX之父。

1)DennisRitchie(年-年10月12日)DennisRitchie

DennisRitchie曾担任朗讯科技公司贝尔实验室下属的计算机科学研究中心系统软件研究部的主任一职。年与布莱恩·科尔尼干(BrianW.Kernighan)一起出版了名著《C程序设计语言(TheCProgrammingLanguage)》。此书已翻译成多种语言,被誉为c语言的圣经。

年10月12日,共事20年的同事RobPike从加州到新泽西去拜访他,才发现他已经去世了。由于是独居,无法知道准确的死亡时间。享年70岁。

丹尼斯·里奇生平

丹尼斯·里奇因为一直都是单身(大神的思想境界真的)

2)C语言

丹尼斯·里奇创建了C编程语言和Unix操作系统。无论是这其中哪一个项目,都可以让他在计算机界傲视群雄。而丹尼里奇开发了两大项目,可以说是计算机史上独一无二的。

事实上,C语言在各种软件程序,嵌入式系统开发,操作系统中,使用是最广泛的。同时,C语言也影响了大多数现代主流的编程语言。

s年代后期,贝尔实验室对计算机系统的研究进入繁盛时期。MIT、GeneralElectric、Bell实验室合作的Mutlics项目以失败而告终(年左右)。

就是在这个时期,KenTompson开始写Mutlics的替代品,他希望按照自己的设计构造一个令人舒服的计算系统(也就是Unix)。

后来在写出第一个版本的Unix时,觉得Unix上需要一个新的系统编程语言,他创造了一个B语言。B语言是没有类型的C,准确说B语言是Tompson把BCPL挤进8K内存,被其个人大脑过滤后的产生的语言。

由于B语言存在的一些问题,导致其只是被用来写一些命令工具使用。恰好在这个时期,Ritchie在B语言的基础上,进行了重新的设计改良,从而诞生了C语言。

年,C语言基本上已经完备,从语言和编译器层面已经足够让Tompson和Ritchie使用C语言重写Unix内核。后来,Unix在一些研究机构、大学、*府机关开始慢慢流行起来,进而带动了C语言的发展。

年,KR编写的《TheCProgrammingLanguage》出版,进一步推动了C语言的普及。

3)unix

Unix的诞生与C语言被广泛的传播、使用,有着密切的联系。

上图时间线只显示前几个与C语言在相同时间段内诞生的Unix版本。

后来学术和*府组织中都在使用Unix,也正是由于Unix的风靡与兴盛,带动了C语言被广泛的传播、使用。

在年代,C语言的使用广泛传播,并且几乎所有机器体系结构和操作系统都可以使用编译器。尤其是,它已成为个人计算机的编程工具,无论是用于这些机器的商业软件制造商,还是对编程感兴趣的最终用户,都非常受欢迎。Unix分支,实在太震撼了。

来看看其中最著名的几个分支:BSD、minix、Linux、MacOSX...

足可见unix对现在操作系统的影响,其地位就像《易经》,为群经之首。

易经4)第一个C语言编译器是怎样编写的?

不知道你有没有想过,大家都用C语言或基于C语言的语言来写编译器,那么世界上第一个C语言编译器又是怎么编写的呢?这不是一个“鸡和蛋”的问题……

回顾一下C语言历史:Tomphson在BCPL的基础上开发了B语言,Ritchie又在B语言的基础上成功开发出了现在的C语言。在C语言被用作系统编程语言之前,Tomphson也用过B语言编写过操作系统。可见在C语言实现以前,B语言已经可以投入使用了。因此第一个C语言编译器的原型完全可能是用B语言或者混合B语言与PDP汇编语言编写的。

我们现在都知道,B语言的执行效率比较低,但是如果全部用汇编语言来编写,不仅开发周期长、维护难度大,更可怕的是失去了高级程序设计语言必需的移植性。

所以早期的C语言编译器就采取了一个取巧的办法:先用汇编语言编写一个C语言的一个子集的编译器,再通过这个子集去递推,进而完成完整的C语言编译器。

所以创建第一个C编译器的难度不亚于创造C语言的难度。

如果还不理解,举个例子,我们要建一个大厦,图纸什么的都已经设计好了,要开工建设。

那么用于建造大楼的各种设备和工具:塔吊、脚手架、钳子、螺丝刀、水平仪、卷尺等等,这些所有用到的所有工具,都是无数的公司的公司经过多年不断研发积累才达到今天的标准。

而编译c语言的编译器,就相当于建设大楼所需要的各种工具,丹尼斯不光亲自设计了C语言,还亲自从头到尾设计这一整套的工具。

这个工作是创造性的,可参考内容并不是很多,其难度可想而知。

二、LinusTorvalds(年12月28日-)

Linux之父、Git之父。

1)LinusTorvalds(年12月28日-)LinusTorvalds

芬兰赫尔辛基人,著名的电脑程序员,Linux内核的发明人及该计划的合作者,毕业于赫尔辛基大学计算机系,年至年在美国加州硅谷任职于全美达公司(TransmetaCorporation),现受聘于开放源代码开发实验室(OSDL:OpenSourceDevelopmentLabs,Inc),全力开发Linux内核。与**妻子托芙(Tove,芬兰前女子空手道冠*)**育有三个女孩。

Linus

划重点:「妻子托芙(Tove,芬兰前女子空手道冠*)」。

跟随着我爷爷的学院教学生涯,我也成了赫尔辛基大学的一名助教,被分配在这年秋季学期里开始用瑞典语教授《计算机科学入门》课程。就这样,我遇上了塔芙。她对我一生的影响甚至比《操作系统:设计与执行》一书对我的影响还要大。不过,我不会用这种影响的细节来让你烦恼的。当时,塔芙是我的班上十五个学生中的一个。她已经有了一个学龄前教育学的学位(不像在美国,芬兰要求学龄前儿童的教师要有大学学历),她还想学习计算机,却不能取得像班上其他同学那样的进步。当然,最后她还是?上去了。我们交往的过程是如此简单。那是在年秋天,互联网还没有流行开来。因此,有一天,我在这个班布置的家庭作业就是给我发一个电子邮件(这要放在今天简直要笑死人),我对学生说:“今天的家庭作业:发给我一个电子邮件。”其他人的邮件不是一些供记录的短语,就是一些没什么意思的笔记。只有塔芙,她邀请我和她出去约会。我娶了第一个通过电子方式走近我的女人。塔芙是一个曾六次获得过芬兰空手道冠*的幼儿园教师。她的家庭很独特,尽管我认为还不如我们家那么离奇。她有许多朋友。从我们在一起的第一刻起,她就像是最适合我的女人。经过了几个月的约会,我和我的猫兰迪就搬到她的公寓房间去了。在搬进去后的最初两周,我甚至都没有动过一下我的计算机。不算上我服兵役的时间,这两周是我自从我十岁那一年坐在外祖父膝盖上摆弄计算机以来,离开计算机最长的一段时间了。不必详细描述,但这确实是除去服兵役之外我离开计算机最长的时间的记录了。

---出自linus自传《justforfun》。

justforfun

祖师爷和祖师奶奶的相遇居然这么浪漫,他们的第一个孩子应该就是那两个星期造出来的吧。

2)Git

Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理,它是目前世界上最先进的分布式版本控制系统。Git是用于Linux内核开发的版本控制工具。

与常用的版本控制工具CVS,Subversion等不同,它采用了分布式版本库的方式,不必服务器端软件支持,使源代码的发布和交流极其方便。Git的速度很快,这对于诸如Linuxkernel这样的大项目来说自然很重要。Git最为出色的是它的合并跟踪(mergetracing)能力。

Git是一种非常流行的分布式版本控制系统,它和其他版本控制系统的主要差别在于Git只关心文件数据的整体是否发生变化,而大多数版本其他系统只关心文件内容的具体差异,这类系统(CVS,Subversion,Perforce,Bazaar等等)每次记录有哪些文件作了更新,以及都更新了哪些行的什么内容。

Git另一个比较好的地方在于绝大多数操作都可以在本地执行,而每个本地都可以从服务器获取一份完整的仓库代码,而且在没网的时候仍然可以修改和使用大部分命令,在方便的时候再跟服务器进行同步,这样可以更好的实现多人联合编程。

Git

年,Linux系统已经发展了十年了,代码库之大让Linus很难继续通过手工方式管理了,社区的弟兄们也对这种方式表达了强烈不满,于是Linus选择了一个商业的版本控制系统BitKeeper,BitKeeper的东家BitMover公司出于人道主义精神,授权Linux社区免费使用这个版本控制系统。

安定团结的大好局面在年就被打破了,原因是Linux社区牛人聚集,不免沾染了一些梁山好汉的江湖习气。

「开发Samba的Andrew试图破解BitKeeper的协议(这么干的其实也不只他一个),被BitMover公司发现了」(监控工作做得不错!),于是BitMover公司怒了,要「收回Linux社区的免费使用权」。

Linus本可以向BitMover公司道个歉,保证以后严格管教弟兄们,嗯,但是Linus不是一般人,「道歉是不可能的,这辈子都不可能的」。

于是Linus花了「两周时间」自己用C写了一个分布式版本控制系统,这就是Git!一个月之内,Linux系统的源码已经由Git管理了!

「牛」是怎么定义的呢?大家可以体会一下。

Git

Git迅速成为最流行的分布式版本控制系统,尤其是年,GitHub网站上线了,它为开源项目免费提供Git存储,无数开源项目开始迁移至GitHub,包括jQuery,PHP,Ruby等等。

GitHub,全世界开发者的安全空间,在这里,你可以分享你的代码为大家所用,也可以和全世界的开发者一起共建完善你的代码。现在有越来越多的公司都把代码放在了Github服务器上。

一口君从第一次用过之后就爱不释手,被其中的设计哲学深深折服,因为Git管理软件版本实在太过方便了。

通过

1
查看完整版本: C语言之父和Linux之父谁更伟大