1. 程式人生 > >      謝煙客-----Linux的發展史

      謝煙客-----Linux的發展史

www. mykernel.cn

框架

技術分享

1)Multics (GE,MIT,Bell)

2)UNIX(Ken,Denis Ritch)

3)BSD(Bill joy,BSRG)

4)CP/M

5)Microsoft (Billgates,美國西亞圖)

6)蘋果(Jobs,美國西亞圖)

7)Windows

8)OpenBSD,FreeBSD,NetBSD (首個PC兼容機的正統UNIX)

9)SUN公司(Solaris)

10)Windows NT

11)Minix (Andrew) 歐洲荷蘭大學

12)Linux (Linus) 歐洲赫爾辛基大學

13)MIT Ritch Stallman (GNU,GPL)


故事

1964年,貝爾實驗室麻省理工學院以及通用電氣公司聯合開發的Multics系統項目

1969年,因MULTICS項目的工作進度過於緩慢,最後終究遭裁撤的命運,貝爾實驗室退出此項目。

貝爾實驗室退出Multics計劃後,在開發Multics系統期間Ken編寫了一個名為“Space Travel”的遊戲。後來貝爾實驗室撤出了Multics計劃。不能在免費使用Multics系統。

Ken向bell實驗室的領導申請一臺計算機,要開發一個遊戲,領導肯定不樂意了。一日遊蕩於bell實驗室,在布滿灰塵的破布下面發現一臺pdp7主機,Ken就仿照Multics內核重新用匯編語言寫了一個內核,並且成功移植了"Space Travel"。

Ken向實驗室的人推廣自己的遊戲,然而都並不對他的遊戲感興趣,都對他的內核感興趣,要求移植一個內核,由於用匯編語言所寫的內核,與硬件緊密相關,移植困難,不過移植成功了。他的同事戲謔地稱之為”Unix“,與Multics相對,他的同事”丹尼斯·裏奇

Dennis Ritchie,說用一種高級語言重寫Unix內核,方便移植,Ken同意了,這對當時來說,是一個很大膽的想法,高級語言所有的程序,CPU難於理解,性能沒有匯編語言的好。他們基於b語言增加指針和靜態變量,開發出C語言,重寫了Unix內核。

1974年,聯合發表在美國計算機通信雜誌:UNIX內核,當時每年一度的全國各地的科學家、教授都會去參加這個會議,他們聽到這個UNIX後,都希望得到一份用於研究,當時的 美國AT&T公司的貝爾實驗室是電話電報,美國反隴斷法規定任何除了電話電報之外的貝爾實驗室的都不能收費,所以Ken和Dennis Ritchie不得不,不情願的提供給他們

在Bell實驗室有重大貢獻的人,每年都有一次年休,Ken在1975年休假時,並回到了他的母校加州大學伯克利分校。在那裏,之前也獲得過UNIX系統,有個叫Bill joy的人成立了一個小組叫BSRG,專門研究UNIX,由於Ken到了,所以"加州大學伯克利分校"成了研究的領頭羊。

美國軍方DARPA,需要能在網絡上傳輸數據報文的協議,TCP/IP協議,又想不是閉源的,當時的dec公司也有屬於自己的系統vax(vms),就找到bill joy,bill joy就基於UNIX系統和小組研發的一些程序打包成為一個新的系統BSD,並且打開售賣。

UNIX的Ken和Dennis Ritchie知道了,在Bell實驗室分拆後,UNIX就開始和BSD打官司,"你該賣還是我該賣?""你應該賠我多少錢?"原生的UNIX的名字叫system V,這一場官司持續了10年之久

80年時,IBM和康柏公司,生產PC兼容機,CPU是8060,8080,內核CP/M是美國科學家“加裏·基爾達爾“Gary Arlen Kildall所創建。

當時一個主機3-4萬,系統2-3萬,普通人幾乎沒有能力去承受這個價格的,它們也需求一個廉價的系統

當時UNIX系統並沒有向PC兼容機移植,PC兼容機,剛出現,性能不咋的,UNIX用高級語言研發,對機器性能要不高,UNIX也不屑於向一個非常醜陋的機器上移植。

81年,美國西亞圖的小公司,bill gates 開始賣BASIC編程語言,和封裝發行UNIX取名,XENIX

不到幾個月,他的朋友bob ali 的公司的一個小程序員用6周時間寫了一個叫QDOS(Quick and Dirty Operating System),能運行在PC兼容機上,bill gates 敏銳的發現了這個商機,就通過自己的母親,IBM董事會的董事長的關系找到IBM的董事長沃森,告訴他,"我有一個能運行在PC兼容機的系統,不收費,只要賣出一個系統給我幾美分的授權費即可",沃森覺得這有前景、看在他母親的面子上,就答應了bill gates 簽了合同,bill gates此時仍然自己的系統,就托朋友花了5萬美元買斷那個小程序員的操作系統,程序員一聽"我花了幾周研發的系統,你們一群瘋子,花5買,連忙忙不叠的答應",bill gates和bob ali 拿到系統後對系統敲敲打打,叫做"dos"系統。

由於系統便宜了,很多人,都能買的起這個系統了,bill gates的生意也很好,直到另外3個人的出現。


美國西亞圖,jobs,成立了一個公司,叫蘋果公司,力圖生產超越PC兼容的機器,機器在名為蘋果機,用的是unix系統

jobs到Xerox PARC公司看到了圖形程序和鼠標,心中預感這個東西將來必火,就找到PARC的領導,領導對這個東西非常厭惡(施樂是生產打印機的,別人都用圖形程序顯示文本了,誰還用打印機,作為輸出設備?),就用很低的價格買到手了。

bill gates聽說了,感覺到了危機,就找到喬布斯,說"你看你的研發團隊那麽忙,也沒有研究出什麽成果,不如我也來幫你研發,研發成果都是你的“喬布斯就給了他一份系統,不是完整的。


bill gates拿到系統後,回到公司讓自己的研發團隊研發,基於DOS + 圖形程序,叫做 windows,並用更低的價格撬走了jobs的一個準備購買圖形的unix系統的主機生產商,喬布斯就大罵"bill gates是小偷" bill gates就告訴他:”你能從我的代碼找到屬於你的程序的痕跡嗎?" 當初Jobs並沒有給所有圖形程序的代碼,他們邊研發邊修改,其內部完全都不一樣了。


bill gates又賺到很多,


BSD和UNIX還在打官司,有程序員轉向BSD,又轉向UNIX,有的已經放棄了UNIX,UNIX此時被NOVALL收購,novall也很為難,就說你們把屬於我的代碼還給我,就行了。


BSD將所有UNIX的代碼還給了UNIX,當然BSD的研究小組BSRG也在此時解散了,有的成員不甘心,就研發出能PC兼容機上運行首個UNIX正統UNIX系統,OpenBSD,FreeBSD,NETBSD


在BSD小組接受DARPA的項目時,斯坦福捐給了CPU的精巧的指令集,Bill joy和另外幾個人,成立了一家公司,Sun,用的是自己的系統BSD,後來System V打官司,為了避免糾紛就改用UNIX,並移植到自己的硬件上,經過特殊的優化後叫做"Solaris"


dec公司生產pdp7 pdp11小型機和vax,當ken在pdp7上實現了unix內核後,並且非常流行,所有買vax的買家都要求安裝unix內核,vax本身安裝的自己所獨有的內核vms,一開始就不賣,到後來,"不裝不買,不賣不行",後來公司越來越不行了,被康白收購,康柏被惠普收購

公司被收購後,研發vms內核的一群程序員都沒有工作了,被bill gates發現,將它們拉到微軟公司,說:“來跟我幹,大秤分金,大口吃肉,大碗喝酒”,於是到了微軟公司後,基於vms內核和圖形程序開發出了,windowsnt,vms服務器本身就有服務功能,並且是圖形化的,所以當這個系統出來後,一年之內,當時的novall公司的服務器的市場份額被奪去半壁江山,兩年之後,novall的服務器,銷聲匿跡了。


在UNIX開始收費時,所有曾經使用UNIX的大學將不能在免費使用UNIX了,其中有一位教授是 歐洲荷蘭Andrew 就自己用4000行代碼寫了一個操作系統,名為Minix驅動程序用匯編所寫的,當時許多黑客比較看好Minix系統,所有上課的學生都要手動為自己的電腦硬件編譯驅動,有的學生甚至寫了許多驅動,告訴教授要為他完善Minix,教授說:"不能用你們的代碼汙染我的系統",教授到歐洲各地任教,在芬蘭赫爾辛基大學任教時,Linus也是這其中的一位,在Linus20歲生日時,他的外公送給他一個80386主機,1991年8月25日,他在上面實現了LINUX,並發布到網上,說:“我不像那個怪老頭,你們隨意使用,隨意修改,只要將修改的結果反饋給我就可以了” 於是在1991年 0.01版本發布,1993年1.0就出現


在1985年時,Ritch Stallman MIT的教授,當時UNIX收費,他就不樂意了,就說軟件是全人類的結晶,不是你們個人獨有的,當時有許多黑客都支持他的想法,於是他成立了一個組織:GNU(Gnu is Not Unix) ,宣言是 GPL(General Public License),當時GNU組織的軟件是在UNIX上實現的,正好與自己的組織相違背,並且它承諾會有一個系統的,過了幾年都沒有出現。


直到1991年,Linux出現,兩者相遇,山無棱,天地合,才敢與君絕,驚天地,泣鬼神,原來你也在這裏。。。


當時用GNU組織的C庫,glibc,和GNU的bash程序,linus內核,組成一個系統,GNU/LINUX

遵循GPL開源協定

開源軟件:自由下載、安裝、使用、學習、修改、開放源代碼、可以收取服務費

自由軟件自由軟件受到選定的“自由軟件許可協議協議”保護而發布(或是放置在公有領域),其發布以源代碼為主,二進制文件可有可無。自由軟件許可證的類型主要有GPL許可證BSD許可證兩種


GPL協定:任何采用GPL任意行代碼的程序都要將所有的源碼公開

LGPL lesser GPL : 采用GPL庫調用接口的程序不用公開源碼

ApacheBSD: 采用我的代碼可商業化,源碼中必須有相關協定,不能以我的組織名義發行代碼。


GNU/Linux 只是提供源碼,對於一個新的用戶來講,是不是過於有難度了?

所以就出現了一些組織,"世俗的、入流的、食人間煙火的"組織封裝LInux系統,發行Linux系統,只不過各有各的特點:有的比較戀舊、有的追求新穎、Log不同罷了

Redhat 公司:美國 北卡羅來納州

個人版本企業版本,當個人版本到達0.7時,企業版本才發行0.1,在9.0時,紅帽才放棄個人版,因為只有企業版才能有更好的發展,才能賺到錢。但是不能將個人版廢棄,捐給Fedora社區,專門為紅帽提供新軟件測試使用:Fedora 6個月發行一次,redhat 18個月發行一次

Redhat是GPL協定,不同作為閉源軟件,但是每次發行的redhat系統提供無償提供後,出現BUG,補丁可以不提供給你,又或者就提供給你源代碼,對於沒有基礎的人來說這也無濟於是。

於是有一個組織就專門編譯Redhat提供的源代碼。CentOS在紅帽提供補丁、發行一個版本後,一般一周後CentOS社區也會出現兼容格式的改造版,只是 Log不同。內部實現都相同

Debian 二次發行版Ubuntu基於Ubuntu的二次發行版mint

slackware 二次發行版S.U.S.E

基於SUSE的二次發行版

opensuse

sle SUSE Linux Enterprise

ARCH

Gentoo

LFS

Andorid Linux + busybox + java + java程序

本文出自 “Reading” 博客,請務必保留此出處http://sonlich.blog.51cto.com/12825953/1951812

      謝煙客-----Linux的發展史