0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

在計算機軟件領(lǐng)域 C語言之父和Linux之父誰更偉大

Q4MP_gh_c472c21 ? 來源:嵌入式ARM ? 作者:土豆居士 ? 2021-01-10 09:13 ? 次閱讀

前言

在計算機軟件領(lǐng)域,做出過重大貢獻的神人很多,在這閃耀的明星中,最為閃耀的莫過于「Linus Torvalds和Dennis Ritchie」。

那么這兩位誰的貢獻更大呢?

這是一個很難回答的問題,就如同關(guān)公戰(zhàn)秦瓊,仁者見仁,智者見智。

還是先對兩位大神做個介紹吧。

一、Dennis Ritchie

C語言之父,UNIX之父。

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

Dennis Ritchie

Dennis Ritchie曾擔任朗訊科技公司貝爾實驗室下屬的計算機科學研究中心系統(tǒng)軟件研究部的主任一職。1978年與布萊恩·科爾尼干(Brian W. Kernighan)一起出版了名著《C程序設計語言(The C Programming Language)》。此書已翻譯成多種語言,被譽為c語言的圣經(jīng)。

2011年10月12日,共事20年的同事Rob Pike從加州到新澤西去拜訪他,才發(fā)現(xiàn)他已經(jīng)去世了。由于是獨居,無法知道準確的死亡時間。享年70歲。

ca198eee-528c-11eb-8b86-12bb97331649.png

丹尼斯·里奇生平

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

2) C語言

丹尼斯·里奇創(chuàng)建了C編程語言和Unix 操作系統(tǒng)。無論是這其中哪一個項目,都可以讓他在計算機界傲視群雄。而丹尼里奇開發(fā)了兩大項目,可以說是計算機史上獨一無二的。

事實上,C語言在各種軟件程序,嵌入式系統(tǒng)開發(fā),操作系統(tǒng)中,使用是最廣泛的。同時,C語言也影響了大多數(shù)現(xiàn)代主流的編程語言。

ca76269a-528c-11eb-8b86-12bb97331649.png

1960s年代后期,貝爾實驗室對計算機系統(tǒng)的研究進入繁盛時期。MIT、General Electric、Bell實驗室合作的Mutlics項目以失敗而告終(1969年左右)。

就是在這個時期,Ken Tompson開始寫Mutlics的替代品,他希望按照自己的設計構(gòu)造一個令人舒服的計算系統(tǒng)(也就是Unix)。

后來在寫出第一個版本的Unix時,覺得Unix上需要一個新的系統(tǒng)編程語言,他創(chuàng)造了一個B語言。B語言是沒有類型的C,準確說B語言是Tompson把BCPL擠進8K內(nèi)存,被其個人大腦過濾后的產(chǎn)生的語言。

由于B語言存在的一些問題,導致其只是被用來寫一些命令工具使用。恰好在這個時期,Ritchie在B語言的基礎上,進行了重新的設計改良,從而誕生了C語言。

1973年,C語言基本上已經(jīng)完備,從語言和編譯器層面已經(jīng)足夠讓Tompson和Ritchie使用C語言重寫Unix內(nèi)核。后來,Unix在一些研究機構(gòu)、大學、政府機關(guān)開始慢慢流行起來,進而帶動了C語言的發(fā)展。

1978年,K&R編寫的《The C Programming Language》出版,進一步推動了C語言的普及。

3) unix

caac8c9e-528c-11eb-8b86-12bb97331649.png

Unix的誕生與C語言被廣泛的傳播、使用,有著密切的聯(lián)系。

上圖時間線只顯示前幾個與C語言在相同時間段內(nèi)誕生的Unix版本。

后來學術(shù)和政府組織中都在使用Unix,也正是由于Unix的風靡與興盛,帶動了C語言被廣泛的傳播、使用。

在1980年代,C語言的使用廣泛傳播,并且?guī)缀跛袡C器體系結(jié)構(gòu)和操作系統(tǒng)都可以使用編譯器。尤其是,它已成為個人計算機的編程工具,無論是用于這些機器的商業(yè)軟件制造商,還是對編程感興趣的最終用戶,都非常受歡迎。

cacab8b8-528c-11eb-8b86-12bb97331649.png

Unix分支,實在太震撼了。

來看看其中最著名的幾個分支:BSD、minix、Linux、Mac OS X...

足可見unix對現(xiàn)在操作系統(tǒng)的影響,其地位就像《易經(jīng)》,為群經(jīng)之首。

4) 第一個C語言編譯器是怎樣編寫的?

不知道你有沒有想過,大家都用C語言或基于C語言的語言來寫編譯器,那么世界上第一個C語言編譯器又是怎么編寫的呢?這不是一個“雞和蛋”的問題……

回顧一下C語言歷史:Tomphson在BCPL的基礎上開發(fā)了B語言,Ritchie又在B語言的基礎上成功開發(fā)出了現(xiàn)在的C語言。在C語言被用作系統(tǒng)編程語言之前,Tomphson也用過B語言編寫過操作系統(tǒng)??梢娫贑語言實現(xiàn)以前,B語言已經(jīng)可以投入使用了。因此第一個C語言編譯器的原型完全可能是用B語言或者混合B語言與PDP匯編語言編寫的。

我們現(xiàn)在都知道,B語言的執(zhí)行效率比較低,但是如果全部用匯編語言來編寫,不僅開發(fā)周期長、維護難度大,更可怕的是失去了高級程序設計語言必需的移植性。

所以早期的C語言編譯器就采取了一個取巧的辦法:先用匯編語言編寫一個C語言的一個子集的編譯器,再通過這個子集去遞推,進而完成完整的C語言編譯器。

所以創(chuàng)建第一個C編譯器的難度不亞于創(chuàng)造C語言的難度。

如果還不理解,舉個例子,我們要建一個大廈,圖紙什么的都已經(jīng)設計好了,要開工建設。

那么用于建造大樓的各種設備和工具:塔吊、腳手架、鉗子、螺絲刀、水平儀、卷尺等等,這些所有用到的所有工具,都是無數(shù)的公司的公司經(jīng)過多年不斷研發(fā)積累才達到今天的標準。

而編譯c語言的編譯器,就相當于建設大樓所需要的各種工具,丹尼斯不光親自設計了C語言,還親自從頭到尾設計這一整套的工具。

這個工作是創(chuàng)造性的,可參考內(nèi)容并不是很多,其難度可想而知。

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

Linux之父、Git之父。

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

Linus Torvalds

芬蘭赫爾辛基人,著名的電腦程序員,Linux內(nèi)核的發(fā)明人及該計劃的合作者 ,畢業(yè)于赫爾辛基大學計算機系,1997年至2003年在美國加州硅谷任職于全美達公司(Transmeta Corporation),現(xiàn)受聘于開放源代碼開發(fā)實驗室(OSDL:Open Source Development Labs, Inc),全力開發(fā)Linux內(nèi)核。與**妻子托芙(Tove,芬蘭前女子空手道冠軍)**育有三個女孩。

cbbd247c-528c-11eb-8b86-12bb97331649.png

Linus

劃重點:「妻子托芙(Tove,芬蘭前女子空手道冠軍)」。

跟隨著我爺爺?shù)膶W院教學生涯,我也成了赫爾辛基大學的一名助教,被分配在這年秋季學期里開始用瑞典語教授《計算機科學入門》課程。 就這樣,我遇上了塔芙。 她對我一生的影響甚至比 《操作系統(tǒng):設計與執(zhí)行》 一書對我的影響還要大。不過,我不會用這種影響的細節(jié)來讓你煩惱的。

當時,塔芙是我的班上十五個學生中的一個。她已經(jīng)有了一個學齡前教育學的學位(不像在美國,芬蘭要求學齡前兒童的教師要有大學學歷),她還想學習計算機,卻不能取得像班上其他同學那樣的進步。當然,最后她還是?上去了。 我們交往的過程是如此簡單。 那是在 1993 年秋天,互聯(lián)網(wǎng)還沒有流行開來。

因此,有一天,我在這個班布置的家庭作業(yè)就是給我發(fā)一個電子郵件(這要放在今天簡直要笑死人),我對學生說:“今天的家庭作業(yè):發(fā)給我一個電子郵件?!?其他人的郵件不是一些供記錄的短語,就是一些沒什么意思的筆記。 只有塔芙,她邀請我和她出去約會。 我娶了第一個通過電子方式走近我的女人。 塔芙是一個曾六次獲得過芬蘭空手道冠軍的幼兒園教師。 她的家庭很獨特,盡管我認為還不如我們家那么離奇。

她有許多朋友。 從我們在一起的第一刻起,她就像是最適合我的女人。 經(jīng)過了幾個月的約會,我和我的貓?zhí)m迪就搬到她的公寓房間去了。 在搬進去后的最初兩周,我甚至都沒有動過一下我的計算機。 不算上我服兵役的時間,這兩周是我自從我十歲那一年坐在外祖父膝蓋上擺弄計算機以來 , 離開計算機最長的一段時間了。 不必詳細描述,但這確實是除去服兵役之外我離開計算機最長的時間的記錄了。

---出自linus自傳《just for fun》。

祖師爺和祖師奶奶的相遇居然這么浪漫,他們的第一個孩子應該就是那兩個星期造出來的吧。

2) Git

Git是一個開源的分布式版本控制系統(tǒng),可以有效、高速地處理從很小到非常大的項目版本管理,它是目前世界上最先進的分布式版本控制系統(tǒng)。Git 是用于 Linux內(nèi)核開發(fā)的版本控制工具。

與常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本庫的方式,不必服務器端軟件支持,使源代碼的發(fā)布和交流極其方便。Git 的速度很快,這對于諸如 Linux kernel 這樣的大項目來說自然很重要。Git 最為出色的是它的合并跟蹤(merge tracing)能力。

Git是一種非常流行的分布式版本控制系統(tǒng),它和其他版本控制系統(tǒng)的主要差別在于Git只關(guān)心文件數(shù)據(jù)的整體是否發(fā)生變化,而大多數(shù)版本其他系統(tǒng)只關(guān)心文件內(nèi)容的具體差異,這類系統(tǒng)(CVS,Subversion,Perforce,Bazaar 等等)每次記錄有哪些文件作了更新,以及都更新了哪些行的什么內(nèi)容。

Git另一個比較好的地方在于絕大多數(shù)操作都可以在本地執(zhí)行,而每個本地都可以從服務器獲取一份完整的倉庫代碼,而且在沒網(wǎng)的時候仍然可以修改和使用大部分命令,在方便的時候再跟服務器進行同步,這樣可以更好的實現(xiàn)多人聯(lián)合編程。

2002年,Linux系統(tǒng)已經(jīng)發(fā)展了十年了,代碼庫之大讓Linus很難繼續(xù)通過手工方式管理了,社區(qū)的弟兄們也對這種方式表達了強烈不滿,于是Linus選擇了一個商業(yè)的版本控制系統(tǒng)BitKeeper,BitKeeper的東家BitMover公司出于人道主義精神,授權(quán)Linux社區(qū)免費使用這個版本控制系統(tǒng)。

安定團結(jié)的大好局面在2005年就被打破了,原因是Linux社區(qū)牛人聚集,不免沾染了一些梁山好漢的江湖習氣。

「開發(fā)Samba的Andrew試圖破解BitKeeper的協(xié)議(這么干的其實也不只他一個),被BitMover公司發(fā)現(xiàn)了」(監(jiān)控工作做得不錯?。?,于是BitMover公司怒了,要「收回Linux社區(qū)的免費使用權(quán)」。

Linus本可以向BitMover公司道個歉,保證以后嚴格管教弟兄們,嗯,但是Linus不是一般人,「道歉是不可能的,這輩子都不可能的」。

于是Linus花了「兩周時間」自己用C寫了一個分布式版本控制系統(tǒng),這就是Git!一個月之內(nèi),Linux系統(tǒng)的源碼已經(jīng)由Git管理了!

「?!故窃趺炊x的呢?大家可以體會一下。

cce0d0b0-528c-11eb-8b86-12bb97331649.png

Git

Git迅速成為最流行的分布式版本控制系統(tǒng),尤其是2008年,GitHub網(wǎng)站上線了,它為開源項目免費提供Git存儲,無數(shù)開源項目開始遷移至GitHub,包括jQuery,PHP,Ruby等等。

GitHub,全世界開發(fā)者的安全空間,在這里,你可以分享你的代碼為大家所用,也可以和全世界的開發(fā)者一起共建完善你的代碼?,F(xiàn)在有越來越多的公司都把代碼放在了Github服務器上。

一口君從第一次用過之后就愛不釋手,被其中的設計哲學深深折服,因為Git管理軟件版本實在太過方便了。

通過commit來研究和學習一個軟件產(chǎn)品如何從最初code base慢慢迭代成一個成熟的產(chǎn)品,這是提升自己技術(shù)水平最快捷之路。

3) Linux

ce42c0a8-528c-11eb-8b86-12bb97331649.png

Linux時間線

Linux時間線比較龐大,詳情請復制下面鏈接到瀏覽器:https://upload.wikimedia.org/wikipedia/commons/1/1b/Linux_Distribution_Timeline.svg

1991

8月25號 : 21歲的芬蘭學生Linus Benedict Torvalds 在comp.os.minix 新聞組上宣布了它正在編寫一個免費的操作系統(tǒng)。

9月1號 : Linux 0.01在網(wǎng)上發(fā)布。

1992

1月5號 : Linux v0.12 release 版本的內(nèi)核重新以GUN GPL的協(xié)議發(fā)布。原來的許可證是禁止任何商業(yè)用途的。通過這次協(xié)議變更,發(fā)布和出售修改或未修改版的Linux成為了可能,只要你將這些復制版本以相同的GPL許可證發(fā)布,并且有相對應完整的源代碼。在后來的一次采訪中,Linus對這次許可證的更改說了這樣一句話(讓Linux遵守GPL絕對是我干過的最正確的事):

"MakingLinuxGPL'dwasdefinitelythebestthingIeverdid."

1月29號 : Andrew S. Tanenbaum向comp.os.minix郵件列表發(fā)送了一封名為LINUX is obsolete的郵件??偟膩碚f,這次被一些人升級為“戰(zhàn)火”的爭論是關(guān)于Linux和內(nèi)核架構(gòu)的。Tanenbaum爭辯說微內(nèi)核比宏內(nèi)核更加高級,所以Linux是過時的。

4月5號 : 第一個Linux新聞組,comp.os.linux由Ari Lemmke提議和開通。

5月21號 : Peter MacDonald 發(fā)布第一個獨立的Linux安裝包SLS??梢酝ㄟ^軟盤安裝,包括比較前沿的TCP-IP網(wǎng)絡支持和X Window系統(tǒng)。建議至少預留10M的磁盤空間來安裝。

1993

6月17號 : Slackware Linux由Patrick Volkerding發(fā)布。Slackware被認為是第一個取得廣泛成功的Linux發(fā)行版,而且它現(xiàn)在還在使用。

8月16號 : Ian Murdock(Debian中的'ian')發(fā)布了第一個Debian Linux的發(fā)行版。Debian是最有影響力的Linux發(fā)行版之一,是MEPIS,Mint,Ubuntu和很多其它發(fā)行版的鼻祖。

8月19號 : Matt Welsh寫的《Linux Installation and Getting Started》第1版出版,這是第一本關(guān)于Linux的書籍。

1994

3月14號 : Linux內(nèi)核V1.0發(fā)布。它支持基于i386單處理器的計算機系統(tǒng)。這3年來,內(nèi)核代碼庫已經(jīng)增長到了176,250行。

3月26號 : 第一期《Linux Journal》雜志發(fā)行。這一期雜志的特點是發(fā)表了一篇對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社區(qū)財政窘迫的前提下,向煊赫的“Linux公司”寫了一封信,要求他們?yōu)椤癓inux”商標使用支付費用。直到1997年,這次風波以將商標轉(zhuǎn)讓給代表所有請愿者和Linux使用者的Linus Torvalds而告終。

11月3號 : Red Hat的共同創(chuàng)始人Marc Ewing宣布可以以49.95美元的零售價格獲得Red Hat Software Linux的CD-ROM和30天的安裝支持。2012年Red Hat成為第一家市值達10億美元的開源公司。

1995

4月4號 : 開展了第一個專門針對Linux的貿(mào)易展和會議系列,名字叫Linux Expo。這成為接下來幾年中,最流行和備受關(guān)注的年度Linux盛會。貿(mào)易展和會議的入場券價格是4美元。3年后,Red Hat接管了組織工作,同時也是主要的贊助商。

1996

5月9號 : 最初由Alan Cox提議,之后又經(jīng)Linus Torvalds改良,Larry Ewing在1996年創(chuàng)造了現(xiàn)在看到的這只叫做Tux的吉祥物。選定企鵝作為Linux吉祥物的主意來自Linus Torvalds,他說自己被一只企鵝輕輕地咬了一口之后就具有了企鵝的特征。(這是要變成企鵝俠嗎?估計是原作者調(diào)皮了?--譯注)

6月9號 : Linux內(nèi)核V2.0發(fā)布。相比更早的版本這是一次意義重大的提升,這是第一個在單系統(tǒng)中支持多處理器的穩(wěn)定內(nèi)核版本,也支持更多的處理器類型。Linux從此以后成了很多公司一個鄭重選擇的對象。你可以閱讀1996年8月在Linux Journal上發(fā)布的回顧Linux V2.0來了解更多相關(guān)的提升。

10月14號 : 1996年Mattias Ettrich發(fā)起了KDE項目,因為他深受Unix桌面系統(tǒng)下應用程序的不一致之苦。(在此之前Unix和Linux都沒有一個統(tǒng)一的桌面系統(tǒng),編寫桌面軟件非常復雜--譯注)

1997

1月9號 : 第一個“Linux病毒”Bliss被發(fā)現(xiàn)了。Bliss不危害系統(tǒng)的安全,它依賴于人們用特權(quán)干蠢事來感染系統(tǒng),然后提醒用戶只安裝從可靠站點下載的可以驗證數(shù)字簽名的軟件,并且安裝之前一定要先驗證簽名(很多地方把這個算作第2個Linux病毒,因為之前還有一個更加“綠色”的病毒--譯注)?!笆聦嵣?,在Linux上寫一個病毒可能會更加的簡單,因為Linux是開源的,所有的源代碼都是可以獲取的。所以,隨著Linux變得更加通用和流行的時候,我們將看到更多的Linux病毒?!?-來自McAfee的暢想。

1998

5月1號 : Google搜索引擎面世。它不僅僅是世界上最好的搜索引擎之一,更是基于Linux的,它的特征是有一個Linux的搜索頁面。

12月4號 : 一份來自IDC的報告稱1998年Linux的出貨量至少上升了200%,市場占有率上升至少150%。Linux的市場占有率為17%,并且以其它任何操作系統(tǒng)無法企及的速度增長著。

1999

2月9號 : Linux和BSD使用者們發(fā)起了“Windows退款日”。他們聯(lián)合起來造訪了微軟公司,希望退還他們在買電腦時綁定購買Windows許可證的錢,這些許可證他們從來沒有用過。

3月3號 : 另一個頗具影響力的桌面系統(tǒng)進入了Linux的世界,就是GNOME桌面系統(tǒng)。在很多主要的Linux發(fā)行版比如Debian,F(xiàn)edora,RedHad Enterprise Linux和SUSE Linux Enterprise Desktop中,GNOME是默認的桌面環(huán)境。

2000

2月4號 : 最新的IDC報告表明Linux現(xiàn)在排在“最受歡迎的服務器操作系統(tǒng)的第2位”,1999年服務器系統(tǒng)銷售量占總量的25%。Windows NT以38%位列第1,NetWare以19%排在第3位。

3月11號 : 摩托羅拉公司宣布發(fā)行HA Linux。這個發(fā)行版專注于通信應用領(lǐng)域,對系統(tǒng)不關(guān)機連續(xù)運行時間要求非常高。它還包括了熱交換能力和支持i386和PowerPC架構(gòu)。

3月23號 : 愛立信公布了“Screen Phone HS210”,這是一款基于Linux的觸屏手機,具備郵件和網(wǎng)頁瀏覽等功能。愛立信和Opera Software公司同時宣布這款手機將會安裝Opera的網(wǎng)頁瀏覽器。

10月30號 : 第一個Linux live發(fā)行版由Linux咨詢顧問Klaus Knopper發(fā)布,名字叫做Knoppix。

2001

1月3號 : 美國NAS(美國國家安全局)以GPL許可證發(fā)布了SELinux。SELinux提供了標準Unix權(quán)限管理系統(tǒng)以外的另一層安全檢查。

2003

3月6號 : SCO Group公司宣布他們正在發(fā)起對IBM高達10億美元的訴訟,他們聲稱IBM把SCO的商業(yè)機密整合到了Linux中。之后SCO公司發(fā)起了一系列的法律訴訟案,這威脅到了很多計算機行業(yè)的巨頭包括惠普,微軟,Novell,Silicon Graphics,Sun Microsystems和RedHat。這次案件在Novell公司的支持下于2010年3月30號判決完畢。(著名的SCO-Linux爭議,SCO聲稱擁有System V的部分源碼所有權(quán),IBM將這部分源碼整合到Linux中侵犯了SCO著作權(quán)。最后聯(lián)邦法院裁定Novell才是Unix商標的合法擁有者。--譯注)

2004

10月20號 : Ubuntu以一個不同尋常的版本號4.10和怪異的版本代號“Warty Warthog”(長滿疙瘩的非洲疣豬)進入大家的生活。用這個版本號是因為發(fā)布日期是2004年10月。Ubuntu的開發(fā)由Cannonical Ltd公司主導,公司的創(chuàng)始人是Mark Shuttleworth(就是那個不到30歲的億萬富翁,錢多的不知道怎么花,只能燒錢上太空的游一圈的人--譯注)。Ubuntu雖然不是內(nèi)核的主要貢獻者,然而對于Linux的臺式機和筆記本電腦的普及,Ubuntu扮演著一個重要的角色。

2007

6月6號 : 華碩在2007的臺北電腦展上展出了兩款“易PC”(Eee PC):701和1001。第1批易PC預裝的是Xandros Linux,這是一個基于Debian,輕量級的為適應小屏幕進行過優(yōu)化的Linux發(fā)行版。

8月8號 : 2007年Linux基金會由開源發(fā)展實驗室(OSDL)和自由標準組織(FSG)聯(lián)合成立。這個基金會目的是贊助Linux創(chuàng)始人Linus的工作?;饡玫搅酥饕腖inux和開源公司,包括富士通,HP,IBM,Intel,NEC,Oracle,Qualcomm,三星和來自世界各地的開發(fā)者的支持。

「11月5號 : 與之前大家推測的發(fā)布Gphone不同,Google宣布組建開放手機聯(lián)盟(Open Handset Alliance)和發(fā)布Android,它被稱為“第一個真正開放的綜合移動設備平臺”?!?/p>

2009

1月29號 : 2009年1月紐約時報稱“現(xiàn)在預計有超過10億人在運行Ubuntu系統(tǒng)”。

2011

5月11號 : 2011年Google I/O大會發(fā)布了Chrombook。這是一款運行著所謂云操作系統(tǒng)Chrome OS的筆記本。Chome OS是基于Linux內(nèi)核的。

6月21號 : Linus Torvalds 發(fā)布了Linux3.0版本。

2013

12月13號 : Valve公司發(fā)布基于Linux的SteamOS操作系統(tǒng),這是一個視頻游戲控制臺系統(tǒng)。

4)《大教堂與集市》

Linus發(fā)明Linux過程有點像將簡陋的集市構(gòu)建成一個宏偉壯麗的大教堂的一個過程。

《大教堂與集市》這本書分析了這種設計哲學。

世界上的建筑可以分兩種:「一種是集市」,天天開放在那里,從無到有,從小到大;還有一種是「大教堂」,幾代人嘔心瀝血,幾十年才能建成,投入使用。

「當你新建一座建筑時,你可以采用集市的模式,也可以采用大教堂的模式?!?/p>

一般來說,集市的特點是開放式建設、成本低、周期短、品質(zhì)平庸;大教堂的特點是封閉式建設、成本高、周期長、品質(zhì)優(yōu)異。

Eric Raymond總結(jié)了集市要變成大教堂,有幾個前提條件:

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)項目的主持者本身不一定是天才,但他一定要能夠慧眼識別出他人的優(yōu)秀想法。(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)項目的主持者必須要有良好的人際關(guān)系、交流技能和人格魅力。這樣才能吸引他人,使別人對你所做的事感興趣,愿意幫助你。(A bazaar project coordinator or leader must have good people and communications skills.)

Eric Raymond同時也總結(jié)了一些成功的充分條件。

1)項目首先必須是你自己感興趣的,但是最終能對其他人有用。

2)將用戶當作合作者。

3)盡快地和經(jīng)常地做出改進,多聽取用戶的意見。

4)健壯的結(jié)構(gòu)遠比精巧的設計來得重要。換句話說,結(jié)構(gòu)是第一位的,功能是第二位的。

5)保持項目的簡單性。設計達到完美的時候,不是無法再增加東西了,而是無法再減少東西了。

一個開放式的項目,如果加以良好的管理和運作,能取得比同等的封閉式項目大得多的成功。

三、比較

已經(jīng)介紹了兩位大神的生平的功績,那下面我們來做個點評吧。

其實究竟誰更強,誰的貢獻更大,作為一個晚輩程序員,對他們只有膜拜的分,豈敢隨便下結(jié)論說他們誰更強,只能從他們的工作內(nèi)容和主要成就來說說個人看法,不足之處,還請指正。

1. 成果

首先說說C語言之父丹尼斯?里奇(Dennis M. Ritchie),他對C語言的貢獻大家有目共睹,不必多說。

除了是C語言的主要發(fā)明者之外,他還因為對Unix操作系統(tǒng)的重大貢獻而被稱為Unix之父。然而他的貢獻遠非如此,在Unix取得了巨大成功之后,他們在20世紀80年代開始研究一個名為Plan 9的操作系統(tǒng),其目的就是解決Unix中的一些問題。

在之后的幾十年中,該項目演變出了一個叫Inferno的項目以及一個名為Limbo的新語言,而該語言被公認為是目前火熱的編程語言Go的前身。

從上面可以看出,丹尼斯?里奇的貢獻是多方面的,除了編程語言還有操作系統(tǒng),也正是因為如此,他獲得了無數(shù)的獎項,其中最著名的就是「圖靈獎」(1983)和「計算機先驅(qū)獎」(1994)。

再說說Linux之父,Linus Torvalds,他的貢獻主要是開發(fā)了Linux操作系統(tǒng)的內(nèi)核,然后將之開源公布于世,最后形成了對計算機行業(yè)影響巨大的一套操作系統(tǒng),并且因此獲得了計算機先驅(qū)獎(2014)。

2005年用兩周的時間就研發(fā)出了Git,而這個軟件版本管理軟件影響了全球無數(shù)的軟件開發(fā)者。

成果上來說,二位實在不相上下。

2. 難度

從難度上講,編譯器要比操作系統(tǒng)難度高很多,而且linux并不是從零起步的,它是繼承unix系統(tǒng)內(nèi)核的,使之適應PC兼容機,而我們知道,C語言之父Dennis M Ritchie同時也是unix的創(chuàng)建者之一,在發(fā)明C語言之后,他自己又重新用C寫了一遍unix,linus對他就是小弟弟了,寫個操作系統(tǒng)對他而言并不費事。

現(xiàn)代的windows、linux給人感覺很龐大,因為它們是個平臺,上面有海量應用和中間件,編譯器給人感覺很小,但對內(nèi)行來說,「編譯器的難度要遠高于操作系統(tǒng)」。

操作系統(tǒng)是需要耗費很多人工開發(fā)上面的應用,是軟件界的勞動密集產(chǎn)品,而編譯器更像是大師的藝術(shù)品,編譯器是生產(chǎn)其它軟件的工廠,對它的要求非常高。

我們國家其實早就能做操作系統(tǒng)了,985大學里專業(yè)的本科學生就能交一份非商用的操作系統(tǒng)作業(yè),但自己的編譯器還是零,并不是學了編譯原理就寫的來編譯器的。

3. 編程水平

從他們的工作成就來看,我認為丹尼斯?里奇更厲害一些,他的成就是多方面的,而且最關(guān)鍵的一點,Linux的系統(tǒng)原型(Unix的變體minix)和編程語言(C語言)都來自于丹尼斯?里奇的貢獻的。但是如果僅僅從編程能力來說,到他們那種級別對編程都已經(jīng)是爐火純青,很難分出高下!

C語言之父相當于自己動手造了一臺挖掘機。人們可用他的挖掘機做能做的事。

linux之父相當于自己帶頭挖了幾個基坑,然后有一大票自帶磚瓦、鋼筋、混凝土的小伙伴共同建起一座大廈。又因為是linus是帶頭人,所以大廈名字由他起且看門大爺是他當。

況且,蓋大廈(寫操作系統(tǒng))這種事,里奇同志早就干過了,而且是用自家造的機器和兩個小伙伴就干成了!

應該說在Dennis M Ritchie面前Linus就是弟弟。

4. 對社會直接貢獻

兩位都為社會進步做了很大貢獻。如果硬要比較的話,個人覺得linux和git的直接貢獻更大一些。

沒什么好說的,去各大軟件公司走一圈就知道了,幾乎沒有不用Linux的。

Linux應用的領(lǐng)域非常之廣:

Linux在服務器領(lǐng)域的發(fā)展

隨著開源軟件在世界范圍內(nèi)影響力日益增強,Linux服務器操作系統(tǒng)在整個服務器操作系統(tǒng)市場格局中占據(jù)了越來越多的市場份額,已經(jīng)形成了大規(guī)模市場應用的局面。并且保持著快速的增長率。尤其在政府、金融、農(nóng)業(yè)、交通、電信等國家關(guān)鍵領(lǐng)域。此外,考慮到Linux的快速成長性以及國家相關(guān)政策的扶持力度,Linux服務器產(chǎn)品一定能夠沖擊更大的服務器市場。

據(jù)權(quán)威部門統(tǒng)計,目前Linux在服務器領(lǐng)域已經(jīng)占據(jù)75%的市場份額,同時,Linux在服務器市場的迅速崛起,已經(jīng)引起全球IT產(chǎn)業(yè)的高度關(guān)注,并以強勁的勢頭成為服務器操作系統(tǒng)領(lǐng)域中的中堅力量。

Linux在桌面領(lǐng)域的發(fā)展

近年來,特別在國內(nèi)市場,Linux桌面操作系統(tǒng)的發(fā)展趨勢非常迅猛。國內(nèi)如中標麒麟Linux、紅旗Linux、深度Linux等系統(tǒng)軟件廠商都推出的Linux桌面操作系統(tǒng),目前已經(jīng)在政府、企業(yè)、OEM等領(lǐng)域得到了廣泛應用。另外SUSE、Ubuntu也相繼推出了基于Linux的桌面系統(tǒng),特別是Ubuntu Linux,已經(jīng)積累了大量社區(qū)用戶。但是,從系統(tǒng)的整體功能、性能來看,Linux桌面系統(tǒng)與Windows系列相比還有一定的差距,主要表現(xiàn)在系統(tǒng)易用性、系統(tǒng)管理、軟硬件兼容性、軟件的豐富程度等方面。

Linux在移動嵌入式領(lǐng)域的發(fā)展

Linux的低成本、強大的定制功能以及良好的移植性能,使得Linux在嵌入式系統(tǒng)方面也得到廣泛應用,目前Linux以廣泛應用于手機、平板電腦、路由器、電視和電子游戲機等領(lǐng)域。在移動設備上廣泛使用的Android操作系統(tǒng)就是創(chuàng)建在Linux內(nèi)核之上的。目前,Android已經(jīng)成為全球最流行的智能手機操作系統(tǒng),據(jù)2015年權(quán)威部門最新統(tǒng)計,Android操作系統(tǒng)的全球市場份額已達84.6%

此外,思科在網(wǎng)絡防火墻和路由器也使用了定制的Linux,阿里云也開發(fā)了一套基于Linux的操作系統(tǒng)“YunOS”,可用于智能手機、平板電腦和網(wǎng)絡電視;常見的數(shù)字視頻錄像機、舞臺燈光控制系統(tǒng)等都在逐漸采用定制版本的Linux來實現(xiàn),而這一切均歸功于Linux與開源的力量

Linux在云計算/大數(shù)據(jù)領(lǐng)域的發(fā)展

互聯(lián)網(wǎng)產(chǎn)業(yè)的迅猛發(fā)展,促使云計算、大數(shù)據(jù)產(chǎn)業(yè)的形成并快速發(fā)展,云計算、大數(shù)據(jù)作為一個基于開源軟件的平臺,Linux占據(jù)了核心優(yōu)勢;據(jù)Linux基金會的研究,86%的企業(yè)已經(jīng)使用Linux操作系統(tǒng)進行云計算、大數(shù)據(jù)平臺的構(gòu)建,目前,Linux已開始取代Unix成為最受青睞的云計算、大數(shù)據(jù)平臺操作系統(tǒng)

國內(nèi) Linux 操作系統(tǒng)發(fā)展現(xiàn)狀

國內(nèi)目前涉足Linux操作系統(tǒng)研發(fā)除學校、研發(fā)機構(gòu)外,主要 Linux 發(fā)行版包括紅旗、中標、共創(chuàng)、新華、拓林思等,均有桌面和服務器兩個版本;國內(nèi)各發(fā)行版均基于國際社區(qū)版本發(fā)展而來,基于國際社區(qū)成果,在界面定制上做了一些工作,并沒有掌握核心技術(shù),且與國際Linux 操作系統(tǒng)發(fā)行版之間存在一定的技術(shù)差距,缺少技術(shù)積累,面臨Linux發(fā)展后勁不足等問題

國外Linux操作系統(tǒng)發(fā)展現(xiàn)狀

國外 Linux 操作系統(tǒng)發(fā)展現(xiàn)狀 國外主要發(fā)行版包括redhat、ubuntu、Suse 等,均提供桌面和服務器兩個不同版本。服務器領(lǐng)域 Linux 操作系統(tǒng)發(fā)展比較成熟,桌面發(fā)展比較緩慢,嵌入式領(lǐng)域發(fā)展較快。

可以說我們的生活已經(jīng)無法離開Linux,絕大部分軟件工程師都會用到Linux,但一定要記住這些都是建立在C語言的基礎之上。

5. 個人理解

其實2人都不是從0開始的, 一個是基于B語言和unix系統(tǒng)的需求出發(fā)創(chuàng)造了c語言,

一個是基于minix和unix思想還有當時的機遇開發(fā)了linux。都是站在前任的肩膀上成功的。

在彭老師心里,Dennis Ritchie更加重要一些,因為他用C語言開辟了一個新的世界,從誕生開始到現(xiàn)在,一直穩(wěn)居語言榜前三位,都快50年了,我們依然在用它。

而Linux在服務器和移動端的占有率實在太高,直接貢獻更多一些,而linus最厲害的一點是他做到了協(xié)調(diào)世界各地數(shù)以百萬計的開發(fā)者開發(fā)維護linux,這難度更大些。

彭老師內(nèi)心可能更崇拜linus多一些,尤其他那一句“「Talk is cheap!Show me your code!」”!

責任編輯:xj

原文標題:C語言之父和Linux之父誰更偉大?

文章出處:【微信公眾號:嵌入式ARM】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11215

    瀏覽量

    208748
  • 計算機
    +關(guān)注

    關(guān)注

    19

    文章

    7383

    瀏覽量

    87643
  • C語言
    +關(guān)注

    關(guān)注

    180

    文章

    7595

    瀏覽量

    135932

原文標題:C語言之父和Linux之父誰更偉大?

文章出處:【微信號:gh_c472c2199c88,微信公眾號:嵌入式微處理器】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    計算機接口位于什么之間

    計算機接口是計算機硬件和軟件之間、計算機與外部設備之間以及計算機各部件之間傳輸數(shù)據(jù)、控制信息和狀態(tài)信息的硬件設備和
    的頭像 發(fā)表于 10-14 14:02 ?184次閱讀

    晶體管計算機的誕生和特點

    晶體管計算機的誕生標志著計算機技術(shù)的一個重要里程碑,它不僅推動了計算機硬件的革新,還促進了計算機軟件技術(shù)的發(fā)展。以下是對晶體管計算機誕生及其
    的頭像 發(fā)表于 08-23 15:06 ?1640次閱讀

    DRAM計算機中的應用

    DRAM(Dynamic Random Access Memory,動態(tài)隨機存取存儲器)計算機系統(tǒng)中扮演著至關(guān)重要的角色。它是一種半導體存儲器,用于存儲和快速訪問數(shù)據(jù),是計算機主內(nèi)存的主要組成部分。以下是對DRAM
    的頭像 發(fā)表于 07-24 17:04 ?851次閱讀

    計算機系統(tǒng)軟件的主要分類及其功能

    計算機系統(tǒng)軟件計算機運行的基礎和關(guān)鍵,它們?yōu)?b class='flag-5'>計算機提供了各種基礎服務和管理功能,使得計算機能夠高效地工作。
    的頭像 發(fā)表于 07-15 18:26 ?2592次閱讀

    計算機視覺人工智能領(lǐng)域有哪些主要應用?

    計算機視覺是人工智能領(lǐng)域的一個重要分支,它主要研究如何讓計算機能夠像人類一樣理解和處理圖像和視頻數(shù)據(jù)。計算機視覺技術(shù)許多
    的頭像 發(fā)表于 07-09 09:14 ?1111次閱讀

    自然語言處理技術(shù)計算機系統(tǒng)中的應用

    自然語言處理(Natural Language Processing, NLP)作為計算機科學與人工智能領(lǐng)域中的一個重要分支,其目標是讓計算機能夠理解、處理并生成人類
    的頭像 發(fā)表于 07-04 14:35 ?429次閱讀

    深度學習計算機視覺領(lǐng)域的應用

    隨著人工智能技術(shù)的飛速發(fā)展,深度學習作為其中的核心技術(shù)之一,已經(jīng)計算機視覺領(lǐng)域取得了顯著的成果。計算機視覺,作為計算機科學的一個重要分支,
    的頭像 發(fā)表于 07-01 11:38 ?644次閱讀

    工業(yè)控制計算機的特點 工業(yè)控制計算機的應用領(lǐng)域

    計算機通常采用高質(zhì)量的硬件組件,以確保惡劣的工業(yè)環(huán)境中穩(wěn)定運行。 實時性 :工業(yè)控制計算機能夠快速響應外部事件,具有高度的實時性,確保生產(chǎn)過程的連續(xù)性和穩(wěn)定性。 穩(wěn)定性 :長時間運
    的頭像 發(fā)表于 06-16 11:30 ?1367次閱讀

    工業(yè)計算機與普通計算機的區(qū)別

    信息化和自動化日益發(fā)展的今天,計算機已經(jīng)成為了我們?nèi)粘I詈凸ぷ髦胁豢苫蛉钡墓ぞ?。然而?b class='flag-5'>在計算機領(lǐng)域中,工業(yè)
    的頭像 發(fā)表于 06-06 16:45 ?1115次閱讀

    上位機軟件開發(fā)用什么語言

    上位機軟件開發(fā)是指開發(fā)用于與下位機(如PLC、單片機等)進行通信、控制和數(shù)據(jù)處理的計算機軟件。上位機軟件工業(yè)自動化、物聯(lián)網(wǎng)、智能家居等領(lǐng)域
    的頭像 發(fā)表于 06-06 10:44 ?1388次閱讀

    【量子計算機重構(gòu)未來 | 閱讀體驗】 跟我一起漫步量子計算

    的未來。首先,量子計算機藥物研發(fā)領(lǐng)域具有顛覆性的潛力。通過模擬分子的復雜相互作用,量子計算機可以加速新藥的研發(fā)過程,這不僅可以更快地找到治療各種疾病的藥物,而且可能推動個性化醫(yī)療的普
    發(fā)表于 03-13 19:28

    【量子計算機重構(gòu)未來 | 閱讀體驗】+ 初識量子計算機

    語言模型訓練會是一個怎樣的情景。。。。。。 希望量子計算機盡快走出實驗室,能夠早日進入尋常百姓家,希望我國的量子計算機取得突破,蓬勃發(fā)展,也能遙遙領(lǐng)先! 今天先研讀至此,后續(xù)所讀所
    發(fā)表于 03-05 17:37

    量子計算機 未來希望

    自己從事語音識別產(chǎn)品設計開發(fā),而量子技術(shù)和量子計算機必將在自然語言處理方面實現(xiàn)重大突破,想通過此書學習量子計算技術(shù),儲備知識,謝謝!
    發(fā)表于 02-01 12:51

    計算機系統(tǒng)如何應對大模型時代的挑戰(zhàn)與機遇

    “操作系統(tǒng)管理著計算機的資源和進程,以及所有的硬件和軟件。計算機的操作系統(tǒng)讓用戶不需要了解計算機語言的情況下與
    發(fā)表于 01-23 11:06 ?499次閱讀
    <b class='flag-5'>計算機</b>系統(tǒng)如何應對大模型時代的挑戰(zhàn)與機遇

    工業(yè)計算機和PLC的區(qū)別

    存在一些區(qū)別。 首先,工業(yè)計算機是一種高性能的通用計算機,它具有強大的計算、存儲和通信能力。工業(yè)計算機一般采用標準的x86架構(gòu),可以運行各類通用操作系統(tǒng)(如Windows、
    的頭像 發(fā)表于 12-15 10:10 ?840次閱讀