1. 程式人生 > 實用技巧 >C語言之父和Linux之父誰更偉大?

C語言之父和Linux之父誰更偉大?

前言

在計算機軟體領域,做出過重大貢獻的神人很多,比如:《計算機程式設計藝術》(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》