前言

在计算机软件领域,做出过重大贡献的神人很多,比如:《计算机程序设计艺术》(The Art of Computer Programming)一书的作者- Donald Knuth;Pascal 的作者 Anders Hejlsberg;Unix ,Go程序语言 , B程序语言,UTF-8编码,ed文本编辑器的创造者、设计者Ken Thompson;GNU项目发起人,Emacs,GCC,GDB发明者和GU Make Free Software公司创始人 Richard Stallman;java之父James Gosling,linux,git作者林纳斯托瓦兹;c语言、unix作者丹尼斯里奇等等。

我们可以列举出非常多大神,在这闪耀的明星中,最为闪耀的莫过于Linus Torvalds和Dennis Ritchie。

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

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

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

一、Dennis Ritchie

C语言之父,UNIX之父。

1) Dennis Ritchie(1941年- 2011年10月12日)

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

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

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

2) C语言

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

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

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

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

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

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

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

1978年,K&R编写的《The C Programming Language》出版,进一步推动了C语言的普及。

3) unix

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

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

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

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

Unix分支,实在太震撼了。

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

足可见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语言,还亲自从头到尾设计这一整套的工具。

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

二、 Linus Torvalds(1969年12月28日- )

Linux之父、Git之父。

1) Linus Torvalds(1969年12月28日- )

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

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

跟随着我爷爷的学院教学生涯,我也成了赫尔辛基大学的一名助教,被分配在这年秋季学期里开始用瑞典语教授《计算机科学入门》课程。

就这样,我遇上了塔芙。 她对我一生的影响甚至比 《操作系统:设计与执行》 一书对我的影响还要大。不过,我不会用这种影响的细节来让你烦恼的。

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

---出自linux自传《just for fun》。

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

2) Git

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

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

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

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

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

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

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

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

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

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

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

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

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

通过commit来研究和学习一个软件产品如何从最初code base慢慢迭代成一个成熟的产品,这是提升自己技术水平最快捷之路。

3) Linux

Linux时间线比较庞大,详情请复制下面链接到浏览器:

https://upload.wikimedia.org/wikipedia/commons/1/1b/Linux_Distribution_Timeline.svg

1991

8月25号 : 21岁的芬兰学生Linus Benedict Torvalds 在comp.os.minix 新闻组上宣布了它正在编写一个免费的操作系统。

9月1号 : Linux 0.01在网上发布。

1992

1月5号 : Linux v0.12 release 版本的内核重新以GUN GPL的协议发布。原来的许可证是禁止任何商业用途的。通过这次协议变更,发布和出售修改或未修改版的Linux成为了可能,只要你将这些复制版本以相同的GPL许可证发布,并且有相对应完整的源代码。在后来的一次采访中,Linus对这次许可证的更改说了这样一句话(让Linux遵守GPL绝对是我干过的最正确的事):

" Making Linux GPL'd was definitely the best thing I ever did."

1月29号 : Andrew S. Tanenbaum向comp.os.minix邮件列表发送了一封名为LINUX is obsolete的邮件。总的来说,这次被一些人升级为“战火”的争论是关于Linux和内核架构的。Tanenbaum争辩说微内核比宏内核更加高级,所以Linux是过时的。

4月5号 : 第一个Linux新闻组,comp.os.linux由Ari Lemmke提议和开通。

5月21号 : Peter MacDonald 发布第一个独立的Linux安装包SLS。可以通过软盘安装,包括比较前沿的TCP-IP网络支持和X Window系统。建议至少预留10M的磁盘空间来安装。

1993

6月17号 : Slackware Linux由Patrick Volkerding发布。Slackware被认为是第一个取得广泛成功的Linux发行版,而且它现在还在使用。

8月16号 : Ian Murdock(Debian中的'ian')发布了第一个Debian Linux的发行版。Debian是最有影响力的Linux发行版之一,是MEPIS,Mint,Ubuntu和很多其它发行版的鼻祖。

8月19号 : Matt Welsh写的《Linux Installation and Getting Started》第1版出版,这是第一本关于Linux的书籍。

1994

3月14号 : Linux内核V1.0发布。它支持基于i386单处理器的计算机系统。这3年来,内核代码库已经增长到了176,250行。

3月26号 : 第一期《Linux Journal》杂志发行。这一期杂志的特点是发表了一篇对Linus Torvalds的采访和一些Phil Hughes, Robert “Bob” Young, Michael K. Johnson, Arnold Robbins, Matt Welsh, Ian A写的文章。

8月15号 : Willian R. Della Croce, Jr. 申请了“Linux”商标,9月进行了注册。Della Croce在不知道Linux社区财政窘迫的前提下,向煊赫的“Linux公司”写了一封信,要求他们为“Linux”商标使用支付费用。直到1997年,这次风波以将商标转让给代表所有请愿者和Linux使用者的Linus Torvalds而告终。

11月3号 : Red Hat的共同创始人Marc Ewing宣布可以以49.95美元的零售价格获得Red Hat Software Linux的CD-ROM和30天的安装支持。2012年Red Hat成为第一家市值达10亿美元的开源公司。

1995

4月4号 : 开展了第一个专门针对Linux的贸易展和会议系列,名字叫Linux Expo。这成为接下来几年中,最流行和备受关注的年度Linux盛会。贸易展和会议的入场券价格是4美元。3年后,Red Hat接管了组织工作,同时也是主要的赞助商。

1996

5月9号 : 最初由Alan Cox提议,之后又经Linus Torvalds改良,Larry Ewing在1996年创造了现在看到的这只叫做Tux的吉祥物。选定企鹅作为Linux吉祥物的主意来自Linus Torvalds,他说自己被一只企鹅轻轻地咬了一口之后就具有了企鹅的特征。(这是要变成企鹅侠吗?估计是原作者调皮了?--译注)

6月9号 : Linux内核V2.0发布。相比更早的版本这是一次意义重大的提升,这是第一个在单系统中支持多处理器的稳定内核版本,也支持更多的处理器类型。Linux从此以后成了很多公司一个郑重选择的对象。你可以阅读1996年8月在Linux Journal上发布的回顾Linux V2.0来了解更多相关的提升。

10月14号 : 1996年Mattias Ettrich发起了KDE项目,因为他深受Unix桌面系统下应用程序的不一致之苦。(在此之前Unix和Linux都没有一个统一的桌面系统,编写桌面软件非常复杂--译注)

1997

1月9号 : 第一个“Linux病毒”Bliss被发现了。Bliss不危害系统的安全,它依赖于人们用特权干蠢事来感染系统,然后提醒用户只安装从可靠站点下载的可以验证数字签名的软件,并且安装之前一定要先验证签名(很多地方把这个算作第2个Linux病毒,因为之前还有一个更加“绿色”的病毒--译注)。 “事实上,在Linux上写一个病毒可能会更加的简单,因为Linux是开源的,所有的源代码都是可以获取的。所以,随着Linux变得更加通用和流行的时候,我们将看到更多的Linux病毒。”--来自McAfee的畅想。

1998

5月1号 : Google搜索引擎面世。它不仅仅是世界上最好的搜索引擎之一,更是基于Linux的,它的特征是有一个Linux的搜索页面。

12月4号 : 一份来自IDC的报告称1998年Linux的出货量至少上升了200%,市场占有率上升至少150%。Linux的市场占有率为17%,并且以其它任何操作系统无法企及的速度增长着。

1999

2月9号 : Linux和BSD使用者们发起了“Windows退款日”。他们联合起来造访了微软公司,希望退还他们在买电脑时绑定购买Windows许可证的钱,这些许可证他们从来没有用过。

3月3号 : 另一个颇具影响力的桌面系统进入了Linux的世界,就是GNOME桌面系统。在很多主要的Linux发行版比如Debian,Fedora,RedHad Enterprise Linux和SUSE Linux Enterprise Desktop中,GNOME是默认的桌面环境。

2000

2月4号 : 最新的IDC报告表明Linux现在排在“最受欢迎的服务器操作系统的第2位”,1999年服务器系统销售量占总量的25%。Windows NT以38%位列第1,NetWare以19%排在第3位。

3月11号 : 摩托罗拉公司宣布发行HA Linux。这个发行版专注于通信应用领域,对系统不关机连续运行时间要求非常高。它还包括了热交换能力和支持i386和PowerPC架构。

3月23号 : 爱立信公布了“Screen Phone HS210”,这是一款基于Linux的触屏手机,具备邮件和网页浏览等功能。爱立信和Opera Software公司同时宣布这款手机将会安装Opera的网页浏览器。

10月30号 : 第一个Linux live发行版由Linux咨询顾问Klaus Knopper发布,名字叫做Knoppix。

2001

1月3号 : 美国NAS(美国国家安全局)以GPL许可证发布了SELinux。SELinux提供了标准Unix权限管理系统以外的另一层安全检查。

2003

3月6号 : SCO Group公司宣布他们正在发起对IBM高达10亿美元的诉讼,他们声称IBM把SCO的商业机密整合到了Linux中。之后SCO公司发起了一系列的法律诉讼案,这威胁到了很多计算机行业的巨头包括惠普,微软,Novell,Silicon Graphics,Sun Microsystems和RedHat。这次案件在Novell公司的支持下于2010年3月30号判决完毕。(著名的SCO-Linux争议,SCO声称拥有System V的部分源码所有权,IBM将这部分源码整合到Linux中侵犯了SCO著作权。最后联邦法院裁定Novell才是Unix商标的合法拥有者。--译注)

2004

10月20号 : Ubuntu以一个不同寻常的版本号4.10和怪异的版本代号“Warty Warthog”(长满疙瘩的非洲疣猪)进入大家的生活。用这个版本号是因为发布日期是2004年10月。Ubuntu的开发由Cannonical Ltd公司主导,公司的创始人是Mark Shuttleworth(就是那个不到30岁的亿万富翁,钱多的不知道怎么花,只能烧钱上太空的游一圈的人--译注)。Ubuntu虽然不是内核的主要贡献者,然而对于Linux的台式机和笔记本电脑的普及,Ubuntu扮演着一个重要的角色。

2007

6月6号 : 华硕在2007的台北电脑展上展出了两款“易PC”(Eee PC):701和1001。第1批易PC预装的是Xandros Linux,这是一个基于Debian,轻量级的为适应小屏幕进行过优化的Linux发行版。

8月8号 : 2007年Linux基金会由开源发展实验室(OSDL)和自由标准组织(FSG)联合成立。这个基金会目的是赞助Linux创始人Linus的工作。基金会得到了主要的Linux和开源公司,包括富士通,HP,IBM,Intel,NEC,Oracle,Qualcomm,三星和来自世界各地的开发者的支持。

11月5号 : 与之前大家推测的发布Gphone不同,Google宣布组建开放手机联盟(Open Handset Alliance)和发布Android,它被称为“第一个真正开放的综合移动设备平台”。

2009

1月29号 : 2009年1月纽约时报称“现在预计有超过10亿人在运行Ubuntu系统”。

2011

5月11号 : 2011年Google I/O大会发布了Chrombook。这是一款运行着所谓云操作系统Chrome OS的笔记本。Chome OS是基于Linux内核的。

6月21号 : Linus Torvalds 发布了Linux3.0版本。

2013

12月13号 : Valve公司发布基于Linux的SteamOS操作系统,这是一个视频游戏控制台系统。

4)《大教堂与集市》

Linus发明Linux过程有点像将简陋的集市构建成一个宏伟壮丽的大教堂的一个过程。

《大教堂与集市》这本书分析了这种设计哲学。

世界上的建筑可以分两种:一种是集市,天天开放在那里,从无到有,从小到大;还有一种是大教堂,几代人呕心沥血,几十年才能建成,投入使用。

当你新建一座建筑时,你可以采用集市的模式,也可以采用大教堂的模式。

一般来说,集市的特点是开放式建设、成本低、周期短、品质平庸;大教堂的特点是封闭式建设、成本高、周期长、品质优异。

Eric Raymond总结了集市要变成大教堂,有几个前提条件:

1)你不能从零开始建设集市,你必须先有一个原始项目。(It's fairly clear that one cannot code from the ground up in bazaar style.)

2)你的原始项目可以有缺陷,但是它必须能运行。(It can be crude, buggy, incomplete, and poorly documented. What it must not fail to do is run.)

3)你必须向用户展示一个可行的前景,且让潜在的合作者相信在可预见的将来它会变成一个真正漂亮的东西。(When you start community-building, what you need to be able to present is a plausible promise, and convince potential co-developers that it can be evolved into something really neat in the foreseeable future.)

4)项目的主持者本身不一定是天才,但他一定要能够慧眼识别出他人的优秀想法。(it is not critical that the coordinator be able to originate designs of exceptional brilliance, but it is absolutely critical that the coordinator be able to recognize good design ideas from others.)

5)项目的主持者必须要有良好的人际关系、交流技能和人格魅力。这样才能吸引他人,使别人对你所做的事感兴趣,愿意帮助你。(A bazaar project coordinator or leader must have good people and communications skills.)

Eric Raymond同时也总结了一些成功的充分条件。

1)项目首先必须是你自己感兴趣的,但是最终能对其他人有用。

2)将用户当作合作者。

3)尽快地和经常地做出改进,多听取用户的意见。

4)健壮的结构远比精巧的设计来得重要。换句话说,结构是第一位的,功能是第二位的。

5)保持项目的简单性。设计达到完美的时候,不是无法再增加东西了,而是无法再减少东西了。

一个开放式的项目,如果加以良好的管理和运作,能取得比同等的封闭式项目大得多的成功。

三、比较

已经介绍了两位大神的生平的功绩,那下面我们来做个点评吧。

其实究竟谁更强,谁的贡献更大,作为一个晚辈程序员,对它们只有膜拜的分,岂敢随便下结论说他们谁更强,只能从他们的工作内容和主要成就来说说个人看法,不足之处,还请指正。

1. 成果

首先说说C语言之父丹尼斯•里奇(Dennis M. Ritchie),他对C语言的贡献大家有目共睹,不必多说。

除了是C语言的主要发明者之外,他还因为对Unix操作系统的重大贡献而被称为Unix之父。然而他的贡献远非如此,在Unix取得了巨大成功之后,他们在20世纪80年代开始研究一个名为Plan 9的操作系统,其目的就是解决Unix中的一些问题。

在之后的几十年中,该项目演变出了一个叫Inferno的项目以及一个名为Limbo的新语言,而该语言被公认为是目前火热的编程语言Go的前身。

从上面可以看出,丹尼斯•里奇的贡献是多方面的,除了编程语言还有操作系统,也正是因为如此,他获得了无数的奖项,其中最著名的就是图灵奖(1983)和计算机先驱奖(1994)。

再说说Linux之父,Linus Torvalds,他的贡献主要是开发了Linux操作系统的内核,然后将之开源公布于世,最后形成了对计算机行业影响巨大的一套操作系统,并且因此获得了计算机先驱奖(2014)。

2005年用两周的时间就研发出了Git,而这个软件版本管理软件影响了全球无数的软件开发者。

成果上来说,二位实在不相上下。

2. 难度

从难度上讲,编译器要比操作系统难度高很多,而且linux并不是从零起步的,它是继承unix系统内核的,使之适应PC兼容机,而我们知道,C语言之父Dennis M Ritchie同时也是unix的创建者之一,在发明C语言之后,他自己又重新用C写了一遍unix,linus对他就是小弟弟了,写个操作系统对他而言并不费事。

现代的windows、linux给人感觉很庞大,因为它们是个平台,上面有海量应用和中间件,编译器给人感觉很小,但对内行来说,编译器的难度要远高于操作系统

操作系统是需要耗费很多人工开发上面的应用,是软件界的劳动密集产品,而编译器更像是大师的艺术品,编译器是生产其它软件的工厂,对它的要求非常高。

我们国家其实早就能做操作系统了,985大学里专业的本科学生就能交一份非商用的操作系统作业,但自己的编译器还是零,并不是学了编译原理就写的来编译器的。

3. 编程水平

从他们的工作成就来看,我认为丹尼斯•里奇更厉害一些,他的成就是多方面的,而且最关键的一点,Linux的系统原型(Unix的变体minix)和编程语言(C语言)都来自于丹尼斯•里奇的贡献的。但是如果仅仅从编程能力来说,到他们那种级别对编程都已经是炉火纯青,很难分出高下!

C语言之父相当于自己动手造了一台挖掘机。人们可用他的挖掘机做能做的事。

linux之父相当于自己带头挖了几个基坑,然后有一大票自带砖瓦、钢筋、混凝土的小伙伴共同建起一座大厦。又因为是linus是带头人,所以大厦名字由他起且看门大爷是他当。

况且,盖大厦(写操作系统)这种事,里奇同志早就干过了,而且是用自家造的机器和两个小伙伴就干成了!

应该说在Dennis M Ritchie面前Linus就是弟弟。

4. 对社会直接贡献

两位都为社会进步做了很大贡献。如果硬要比较的话,个人觉得linux和git的直接贡献更大一些。

没什么好说的,去各大软件公司走一圈就知道了,几乎没有不用Linux的。

Linux应用的领域非常之广:

  1. Linux在服务器领域的发展

随着开源软件在世界范围内影响力日益增强,Linux服务器操作系统在整个服务器操作系统市场格局中占据了越来越多的市场份额,已经形成了大规模市场应用的局面。并且保持着快速的增长率。尤其在政府、金融、农业、交通、电信等国家关键领域。此外,考虑到Linux的快速成长性以及国家相关政策的扶持力度,Linux服务器产品一定能够冲击更大的服务器市场。

据权威部门统计,目前Linux在服务器领域已经占据75%的市场份额,同时,Linux在服务器市场的迅速崛起,已经引起全球IT产业的高度关注,并以强劲的势头成为服务器操作系统领域中的中坚力量。

  1. Linux在桌面领域的发展

近年来,特别在国内市场,Linux桌面操作系统的发展趋势非常迅猛。国内如中标麒麟Linux、红旗Linux、深度Linux等系统软件厂商都推出的Linux桌面操作系统,目前已经在政府、企业、OEM等领域得到了广泛应用。另外SUSE、Ubuntu也相继推出了基于Linux的桌面系统,特别是Ubuntu Linux,已经积累了大量社区用户。但是,从系统的整体功能、性能来看,Linux桌面系统与Windows系列相比还有一定的差距,主要表现在系统易用性、系统管理、软硬件兼容性、软件的丰富程度等方面。

  1. Linux在移动嵌入式领域的发展

Linux的低成本、强大的定制功能以及良好的移植性能,使得Linux在嵌入式系统方面也得到广泛应用,目前Linux以广泛应用于手机、平板电脑、路由器、电视和电子游戏机等领域。在移动设备上广泛使用的Android操作系统就是创建在Linux内核之上的。目前,Android已经成为全球最流行的智能手机操作系统,据2015年权威部门最新统计,Android操作系统的全球市场份额已达84.6%

此外,思科在网络防火墙和路由器也使用了定制的Linux,阿里云也开发了一套基于Linux的操作系统“YunOS”,可用于智能手机、平板电脑和网络电视;常见的数字视频录像机、舞台灯光控制系统等都在逐渐采用定制版本的Linux来实现,而这一切均归功与Linux与开源的力量

  1. Linux在云计算/大数据领域的发展

互联网产业的迅猛发展,促使云计算、大数据产业的形成并快速发展,云计算、大数据作为一个基于开源软件的平台,Linux占据了核心优势;据Linux基金会的研究,86%的企业已经使用Linux操作系统进行云计算、大数据平台的构建,目前,Linux已开始取代Unix成为最受青睐的云计算、大数据平台操作系统

  1. 国内 Linux 操作系统发展现状

国内目前涉足Linux操作系统研发除学校、研发机构外,主要 Linux 发行版包括红旗、中标、共创、新华、拓林思等,均有桌面和服务器两个版本; 国内各发行版均基于国际社区版本发展而来,基于国际社区成果,在界面定制上做了一些工作,并没有掌握核心技术,且与国际Linux 操作系统发行版之间存在一定的技术差距,缺少技术积累,面临Linux发展后劲不足等问题

  1. 国外Linux操作系统发展现状

国外 Linux 操作系统发展现状 国外主要发行版包括redhat、ubuntu、Suse 等,均提供桌面和服务器两个不同版本。服务器领域 Linux 操作系统发展比较成熟,桌面发展比较缓慢,嵌入式领域发展较快。

可以说我们的生活已经无法离开Linux,绝大部分软件工程师都会用到Linux,但一定要记住这些都是建立在C语言的基础之上。

5. 个人理解

其实2人都不是从0开始的, 一个是基于B语言和unix系统的需求出发创造了c语言,

一个是基于minix和unix思想还有当时的机遇开发了linux。 都是站在前任的肩膀上成功的。

在彭老师心里,Dennis Ritchie更加重要一些,因为他用C语言开辟了一个新的世界,从诞生开始到现在,一直稳居语言榜前三位,都快50年了,我们依然在用它。

而Linux在服务器和移动端的占有率实在太高,直接贡献更多一些,而linus最厉害的一点是他做到了协调世界各地数以百万计的开发者开发维护linux,这难度更大些。

彭老师内心可能更崇拜linus多一些,尤其他那一句“Talk is cheap!Show me your code!”!

一起欣赏下祖师爷那性感的中指!!

要获取电子书《大教堂与集市》,关注后台回复 [ 大教堂与集市 ]。

部分图片来自于网络侵权删。

参考:

知乎 腾讯技术工程

Linus自传《just for fun》

C语言之父和Linux之父谁更伟大?的更多相关文章

  1. 自由软件之父、Google+设计者、Java之父、Linux之父、万维网之父、Vi编辑器之父、苹果Lisa电脑界面设计、微软首席软件架构师

    自由软件之父.Google+设计者.Java之父.Linux之父.万维网之父.Vi编辑器之父.苹果Lisa电脑界面设计.微软首席软件架构师 理查德·斯托曼(Richard Stallman) 理查德· ...

  2. 《只是为了好玩:Linux之父林纳斯自传》

    <只是为了好玩:Linux之父林纳斯自传> 基本信息 作者: (美)Linus Torvalds    David Diamond 译者: 陈少芸 出版社:人民邮电出版社 ISBN:978 ...

  3. Linux之父访谈录:设计内核只为了好玩

    2010-09-20 10:36 “有 些人生来就具有统率百万人的领袖风范;另一些人则是为写出颠覆世界的软件而生.唯一一个能同时做到这两 者的人,就是Linus Torvalds.”这是美国<时 ...

  4. 调皮的程序员:Linux之父雕刻在Linux内核中的故事

    本文内容由公众号“格友”原创分享. 1.引言   (不羁的大神,连竖中指都这么帅) 因为LINUX操作系统的流行,Linus 已经成为地球人都知道的名人.虽然大家可能都听过钱钟书先生的名言:“假如你吃 ...

  5. Linux之父Linus的8个趣闻轶事

    博客中的文章均为 meelo 原创,请务必以链接形式注明本文地址 <只是为了好玩:Linux之父林纳斯自传>是一本很古老的书了,2001年就有了中文版,在2014的时候图灵图书又把它重新翻 ...

  6. Linux之父:除了写内核代码 别的真不会(转)

    Linus Torvalds 是 Linux 之父,被誉为活着的传奇. 其实很多人不了解他也并不奇怪,因为人是在是太低调了.现年 46 岁的他每天的工作仍然是编程,领导并推动着 Linux 的发展. ...

  7. 看Linux 之父是如何定义 Linux?

    看Linux 之父是如何定义 Linux? LINUX是什么? LINUX是一个免费类unix内核,适用于386-AT计算机,附带完整源代码.主要让黑客.计算机科学学生使用,学习和享受.它大部分用C编 ...

  8. Linux 小知识翻译 - 「Linux之父 Linus」

    作为新年的第一次,这次想简单介绍下Linus这个人.(这篇文章是作者新年初写的,所以有这么句话) Linux之父,同时也是现在linux内核开发最终决定的人物就是「Linus Torvalds」.「L ...

  9. jquery 获取父窗口的元素 父窗口 子窗口

    一.获取页面元素 取父窗口的元素方法:$(selector, window.parent.document); 那么你取父窗口的父窗口的元素就可以用:$(selector, window.parent ...

  10. jQuery 获取父窗口的元素 父窗口 子窗口(iframe)

    $("#父窗口元素ID",window.parent.document); 对应javascript版本为window.parent.document.getElementById ...

随机推荐

  1. mysql8的collate问题和修改

    环境 os:centos 7.6 数据库:8.0.22 64bit 问题: 字段a,b它们的collate不一样,结果关联的时候,发现错误. 查询了以下,发现挺多的,逐个修改挺麻烦的,于是整理了如下s ...

  2. Windows查看电源使用情况

    这里使用Windows自带的东西查看电源使用情况. 1.按Win键+R,输入cmd,回车. 2.输入Powercfg /batteryreport回车. 3.根据提示找到电池报告文件,双击打开即可.

  3. RuoYi-Cloud从配置到运行

    前期准备工作 若依微服务版(RuoYi-Cloud)代码下载:https://gitee.com/y_project/RuoYi-Cloud 注册中心(nacos)下载:https://www.ali ...

  4. [FLET] 02 route 测试

    from typing import Dict import flet from flet import AppBar, ElevatedButton, Page, Text, View, color ...

  5. MySql常用日期时间查询

    -- 某一天所在周的第一天: -- 我们知道国外的星期的第一天是从星期天开始的,所以DAYOFWEEK('2017-3-10')函数的第一天是星期天: SELECT CASE WHEN DAYNAME ...

  6. Java Executors类的9种创建线程池的方法及应用场景分析

    在Java中,Executors 类提供了多种静态工厂方法来创建不同类型的线程池.在学习线程池的过程中,一定避不开Executors类,掌握这个类的使用.原理.使用场景,对于实际项目开发时,运用自如, ...

  7. SQL去重distinct方法解析

    来源:https://www.cnblogs.com/lixuefang69/p/10420186.html SQL去重distinct方法解析 一 distinct 含义:distinct用来查询不 ...

  8. [MAUI 项目实战] 笔记App(二):数据库设计

    @ 目录 Sqlite配置 创建实体 笔记实体类 笔记分组实体 笔记片段实体 笔记片段负载实体 笔记片段仓库实体 笔记模板(场景)实体 笔记片段模板实体 笔记片段模板负载实体 配置EF 创建映射 迁移 ...

  9. jmeter目录结构含义

    backups :脚本备份目录.格式JMXbin目录∶存放Jmeter的启动脚本,配置文件.模块文件.jmeter.bat启动Jmeterjmeter.properties核心配置文件.docs:离线 ...

  10. 释放资源的方式try-with-resources

    1.try-catch-finally 2.try-with-resources 使用方法 try(//这里定义你要使用的资源){} catch(){} 注意:try()里只能存放流对象(资源对象), ...