當前位置:首頁 > 公眾號精選 > 嵌入式ARM
[導讀]前言 在計算機軟件領域,做出過重大貢獻的神人很多,在這閃耀的明星中,最為閃耀的莫過於「Linus  Torvalds和Dennis Ritchie」。 那麼,這兩位誰的貢獻更大呢?

前言

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

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

這是一個很難回答的問題,就如同關公戰秦瓊,仁者見仁,智者見智。

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

一、Dennis Ritchie

C語言之父,UNIX之父。

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

Dennis Ritchie

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日- )


Linus  Torvalds

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

Linus

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

跟隨着我爺爺的學院教學生涯,我也成了赫爾辛基大學的一名助教,被分配在這年秋季學期裏開始用瑞典語教授《計算機科學入門》課程。

就這樣,我遇上了塔芙。 她對我一生的影響甚至比 《操作系統:設計與執行》 
一書對我的影響還要大。不過,我不會用這種影響的細節來讓你煩惱的。

當時,塔芙是我的班上十五個學生中的一個。她已經有了一個學齡前教育學的學
位(不像在美國,芬蘭要求學齡前兒童的教師要有大學學歷),她還想學習計算機,卻不能取得像班上其他同學那樣的進步。當然,最後她還是?上去了。
我們交往的過程是如此簡單。

那是在 1993 年秋天,互聯網還沒有流行開來。 因此,有一天,我在這個班布
置的家庭作業就是給我發一個電子郵件(這要放在今天簡直要笑死人),我對學生説:“今天的家庭作業:發給我一個電子郵件。”
其他人的郵件不是一些供記錄的短語,就是一些沒什麼意思的筆記。

只有塔芙,她邀請我和她出去約會。

我娶了第一個通過電子方式走近我的女人。

塔芙是一個曾六次獲得過芬蘭空手道冠軍的幼兒園教師。 她的家庭很獨特,儘管
我認為還不如我們家那麼離奇。 她有許多朋友。

從我們在一起的第一刻起,她就像是最適合我的女人。 

經過了幾個月的約會,我和我的貓蘭迪就搬到她的公寓房間去了。

在搬進去後的最初兩週,我甚至都沒有動過一下我的計算機。

不算上我服兵役的時間,這兩週是我自從我十歲那一年坐在外祖父膝蓋上擺弄計算
機以來 ,
離開計算機最長的一段時間了。 

不必詳細描述,但這確實是除去服兵役之外我離開計算機最長的時間的記錄了。

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

just for fun

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

2) Git

Git是一個開源的分佈式版本控制系統,可以有效、高速地處理從很小到非常大的項目版本管理,它是目前世界上最先進的分佈式版本控制系統。Git 是用於 Linux內核開發的版本控制工具。

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

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

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

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

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

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

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

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

3) Linux

Linux時間線

Linux時間線比較龐大,詳情請複製下面鏈接到瀏覽器://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等系統軟件淘派集運app都推出的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  Torvalds怒懟英偉達

一起欣賞下祖師爺那性感的中指!!【淘派集運app】

要獲取電子書《大教堂與集市》,關注後台回覆 [ 大教堂與集市 ]。

部分圖片來自於網絡侵權刪。參考:知乎 騰訊技術工程 Linus自傳《just for fun》

END

來源:一口Linux,作者:土豆居士

版權歸原作者所有,如有侵權,請聯繫刪除。

推薦閲讀

成功為華為“續命:中國芯片之父張汝京

一個工程師的“噩夢”:剛分清CPU和GPU,卻發現還有……

這位“華為天才少年”,竟然要我用“充電寶”打《只狼》

免責聲明:本文內容由21ic獲得授權後發佈,版權歸原作者所有,本平台僅提供信息存儲服務。文章僅代表作者個人觀點,不代表本平台立場,如有問題,請聯繫我們,謝謝!

換一批

延伸閲讀

[嵌入式ARM] C語言之父和Linux之父誰更偉大?

前言 在計算機軟件領域,做出過重大貢獻的神人很多,在這閃耀的明星中,最為閃耀的莫過於「Linus  Torvalds和Dennis Ritchie」。 那麼這兩位誰...

關鍵字: C語言 Linux

[嵌入式ARM] 20個成熟軟件中常用的宏定義,趕快收藏!

  1#ifndef COMDEF_H 2#define COMDEF_H 3//頭文件內容 4#endif 2. 重新定義一些類型,防止由於各種平台和編譯器的不同,...

關鍵字: 宏定義 C語言

[嵌入式ARM] 單片機程序開發時,常見錯誤

這裏利用一個實際發生的例子,針對初級工程師經常犯的一個小錯誤,或者經常要走的一個彎路,做了針對性的糾正。希望可以幫到大家,文筆不好文章中有敍述不清的地方大家多多指教。...

關鍵字: 單片機 C語言

[strongerHuang] Linux中文件系統分類,以及基礎使用方法

作者 | ZhengN 轉自 | 嵌入式大雜燴 Linux一個重要的哲學是:一切皆文件。而文件與文件系統是密切相關的,...

關鍵字: 文件 文件系統 Linux
更多

論壇熱帖

關閉