Linux誕生故事以及不同版本的區別

一、Linux的誕生

Multics計劃

上世紀六十年代,人們還在用批處理計算機,也就是一次性給一批任務到計算機,然後等待結果,中途不能和計算機進行交互,而且準備作業需要耗費大量時間。於是1965年,貝爾實驗室(Bell),麻省理工學院(MIT)和通用電氣(GE)準備聯手開發“分時多任務處理系統”,即300臺以上終端機可以同時連接一臺大型計算機進行作業,並取名為Multics(Multiplexed Information and Computing System,多路信息計算系統)。但由於項目進度落後,資金短缺,1969年,貝爾實驗室放棄了這個項目,決定退出(後來Multics成功開發完成,儘管沒有再被重視)。

Unix的誕生與打飛機遊戲

調回到貝爾實驗室的工程師看到費時的批處理機器,十分懷念先進的Multics。一位工程師Ken Thompson在研發Multics的時候,寫了一個叫太空大戰(SpaceTravel),是飛機發射子彈那種類型的遊戲,然而這個遊戲只能運行在Multics上面,他很想要移植這個遊戲繼續玩。1969年8月,Thompson在庫房發現了一臺閒置的PDP-7,剛好此時休假並且妻兒都去加利福尼亞探親度假去了,經過四個星期的努力,用BCPL(Basic Combined Programming Language,基本組合編程語言)彙編語言編寫了一組內核程序,還包括內核工具程序,以及一個小的文件系統。完成之後,Thompson激動地把身邊的同時叫過來,讓他們來玩他的遊戲。由於這個系統是由Multics簡化而來,同事們就戲稱這個系統為"UNiplexed Information and Computing Service”,即沒路信息計算系統,縮寫為Unics,取其諧音Unix。這時已經是1970年了,於是就將1970年定為Unix元年,現代計算機的計時也就是這個時候開始的(比如mysql數據庫的TIMESTAMP)。

Linux誕生故事以及不同版本的區別

Thompson使用的DEC PDP-7計算機

Unix的發展

Unix實在太好用了,這套系統在Bell實驗室廣為流傳。但Unix是用匯編語言寫的,高度依賴硬件,於是Thompson和Dennis Ritchie合作準備用更高級的語言改寫,提高可移植性。Thompson改進了BCPL,稱為了B語言,然而這套語言在內存方面有限制,一籌莫展。又和Ritchie嘗試了Pascal,發現編譯出來的內核性能並不好。最終Ritchie決定再對B語言進行改進,成為了大名鼎鼎的C語言,重新改寫了Unix。1974年7月,Bell實驗室公開了Unix,引起了學術界的廣泛討論,並大量應用於教育目的。1978年學術界老大伯克利大學,推出了以Unix第六版為基礎並加入改進的新Unix,並命名為BSD(Berkeley Software Distribution伯克利分發版),於是Unix的分支BSD系列就誕生了。由於Unix的高度可移植性與強大的性能,加上當時並沒有版權的糾紛,所以讓很多商業公司開始了Unix操作系統的開發。然而當時Bell屬於AT&T,AT&T被《謝爾曼反托拉斯法》規定了不能銷售除了電話機電報機等之外的商品,後來隨著AT&T的分解,Bell可以賣出Unix了,第七版Unix明確提出“不可對學生提供源碼”,Unix走向了商業化。高昂的授權費導致很多大學停止了對Unix的研究。

Minix操作系統

Unix進行了商業化,教師們都用不起了,1987年,身為ACM和IEEE兩會資深會員的荷蘭數學與計算機科學系統教授Andrew S. Tanenbaum開發了Minix操作系統,是Unix的縮小版,用於學生學習操作系統原理,很多技術大牛希望改進Minix,但遭到了AST教授的醜拒,他認為Minix就是為了教學,讓學生一學期學完,並不想被加入雜亂的東西。

GNU計劃

Richard M.Stallman看不慣版權收費,於1984年創立自由軟件體系GNU(Gun is Not Unix),擬定了普遍公用版權協議(General Public License,GPL),所有GPL協議下的自由軟件都遵循著Copyleft(非版權)原則:自由軟件允許用戶自由拷貝、修改和銷售,但是對其源代碼的任何修改都必須向所有用戶公開 。GNU希望開發一個類似UNIX並且是自由軟件的完整操作系統——GNU系統。到90年代初,GNU項目開發出許多高質量的免費軟件,包括emacs編輯器(已經在博哥的帶領下中毒……)、bash shell程序、gcc系列編譯程序、gdb調試程序。

POSIX標準

POSIX(Portable Operating System Interface for Computing Systems)是由IEEE 和ISO/IEC 開發的一簇標準,該標準是基於現有的UNIX 實踐和經驗,描述了操作系統的調用服務接口,用於保證編制的應用程序可以在源代碼一級上在多種操作系統上移植和運行。

Linux終於誕生了

此時,IBM公司開發的MS-DOS操作系統、Apple公司開發的Mac操作系統,Unix操作系統,Minix操作系統全都要收費。GNU儘管已經開發出最受期盼的GNU C編譯器,開發的操作系統HURD卻進度緩慢,渴求一款自由軟件操作系統誕生來證明自己存在的價值。與此同時,Linus利用聖誕的壓歲錢和貸款購買了一臺386兼容電腦,並從美國郵購了一套Minix系統軟件,在等待郵寄到達的期間,Linus認真學習了有關Intel 80386的硬件知識。為了能通過Modem撥號連接到學校的主機上,他使用匯編語言並利用80386CPU的多任務特性編制出了相關程序。甚至為了將老式電腦的軟件複製到新電腦上,為一些硬件編寫了驅動程序。Linus逐漸認識到了Minix的諸多限制,產生了自己編寫一個新的操作系統的想法。1991年4月,Linus花費了全部時間研究Minix-386系統,並嘗試移植GNU的gcc、bash、gdb到新系統上。1991年4月13日,Linus在comp.os.minix上發佈信息說自己成功將bash移植到了Minix上,而且已經愛不釋手,離不開這個shell軟件了。1991年7月3日,Linus在comp.os.minix上透露了正在進行Linux系統的開發,並已經開始考慮POSIX的兼容了。1991年8月25日,Linus在comp.os.minix上發佈了“What would you like to see in minix?”,透露出正在開發一個免費的386操作系統,新開發的系統會移植bash和gcc,並且聲明他開發的操作系統沒有用一行Minix的源代碼。1991年10月5日,Linus在comp.os.minix上發佈消息,正式向外宣佈Linux內核誕生(Free minix-like kernel sources for 386-AT)。Linux遵循GPL協議,也給GNU運動送上了一份最好的禮物。Linux提供內核,GNU提供外圍軟件,GNU/Linux就成了密不可分的體系。

二、Linux不同版本的區別

Linux誕生故事以及不同版本的區別

linux官網提供下載的linux版本

Red Hat系列:

Linux誕生故事以及不同版本的區別

1991年的Linux只是一個內核,安裝這個操作系統需要進行交叉編譯,入門難度實在太高了,於是出現了這樣的公司,他們將公開好的內核加上開源的周邊軟件編譯成二進制文件放到網上供人使用。Red Hat就是這樣的一家公司,盈利方式則是提供打補丁、安裝等收費服務。Red Hat一般以RPM包和YUM包進行管理,包分發方式是編譯好的二進制文件。

【運用建議】我們的操作系統實驗就是在Red Hat上完成的,因為操作系統的老師好像十分喜歡Red Hat……反正我是感覺比較老……不想用……

CentOS:

Linux誕生故事以及不同版本的區別

既然有人收費,那又有人不高興了。於是有一個社區把Red Hat源碼拿過來,然後編譯成操作系統放出去,並且Red Hat補丁包出來一個月後,就放出補丁包,這就是Cent OS。然而2014年Red Hat收編了Cent OS團隊。

【運用建議】搭建VPS用這個用得比較多,因為穩定。

Fedora

Linux誕生故事以及不同版本的區別

Fedora是Red Hat的桌面版本發展而來,免費,穩定性較差。

【運用建議】沒用過。

Debian:

Linux誕生故事以及不同版本的區別

apt-get/dpkg/deb包管理,deb會自動的分析依賴關係,力爭獲取所有的依賴包。是迄今為止最遵循GNU規定的linux系統,最早於1993年創立,有三個版本分支:stable(穩定)、testing(測試,相對穩定)、unstable(不穩定,最新)。Red Hat的YUM也是在模仿APT。

【運用建議】實習用過,非常好用,力薦。

Ubuntu:

Linux誕生故事以及不同版本的區別

屬於debian系列,是基於Debian的unstable版本加強而來, apt-get/dpkg/deb包管理 ,適合桌面系統,衍生版本Kubuntu(桌面採用KDE,比較華麗),Xubuntu(要求配置較低),eubuntu(面向兒童和教育)。

【運用建議】大學用來搭建Hadoop集群,感覺不太好用,適合新手和用windows用習慣了的用戶。

Gentoo:

Linux誕生故事以及不同版本的區別

最年輕的發行版本,被稱為最完美的Linux發行版本之一,首個穩定版發行於2002年,擁有FreeBSD廣受美譽的ports系統——Portage包管理系統,APT和YUM都是二進制文件分發的包管理系統,而Portage是基於源代碼分發的,必須編譯後才能運行,能將機器性能發揮到極致。

【運用建議】沒用過,據說Linux老鳥用起來非常順手。

Linux誕生故事以及不同版本的區別


分享到:


相關文章: