听一个内行人讲云原生简史
作者 | 呂建偉
責編?| 寇雪芹
頭圖?|?下載于視覺中國
引子
1999年,發生在我自己身上的幾件事:
1、買了兩張盜版光盤:Sun Solaris OS、紅帽Linux。
2、正在用COM+、MTS,開發三層架構的局域網內的大型企業商用套件,由Windows客戶端、中間層中間件、后臺SQLServer數據庫構成。
3、自己嘗試基于WebSphere,開發三層架構的互聯網的企業應用,由瀏覽器Web(HTML/CSS/JavaScript)、JSP/servlet、EJB中間件、Oracle 數據庫構成。我1997年學習Java,但一直沒嘗試開發點什么。
Unix
1964年,IBM發布劃時代的System360大型主機,里面包含了System/36O操作系統,這個操作系統可以說是人類計算機史上第一個操作系統,也真正做到了多用戶、多計算存儲環境隔離、多分時。
在那個年月,IT產業剛剛開啟,很多工業時代的巨頭都想進入信息時代。如通用電氣、霍尼韋爾等等,也都設計制造計算機。為了對抗IBM,通用電氣出錢,產學研聯合,1964年聯合AT&T貝爾實驗室、MIT麻省理工學院一起搞一個操作系統,這就是Multics。
但是由于IBM太厲害了,橫掃市場。1970年,通用電氣退出競爭,不干計算機業務了,所以也不資助這個項目了。
貝爾實驗室搞Multics項目的這幫人就開始無所事事了。于是,ken Tphmpson和Dennis Ritch這兩個人就開始瞎折騰。1971年,ken Tphmpson在一臺廢棄的DEC PDP-7小型機上用匯編語言花了一個月時間仿照Multics開發了簡化的、能夠在老舊性能的小型機上運行的操作系統。這就是UNIX。
1973年,Dennis Ritch感覺用匯編開發太麻煩了,于是他就從一個已經存在了很久的B語言做了改良,就叫它C語言,然后就用C語言重新開發了一版,這就是UNIX第三版。1974年,他們倆對外發了一篇文章,外界這才知道了有個東西叫UNIX。
由于當時貝爾實驗室的母公司AT&T正處于被反復K反復要搞反壟斷的時候,所以AT&T當時被美國裁定不能銷售除電話電報以外任何商品。因此,1975年,貝爾實驗室搞了一個開源教學版Unix,高校可以免費學習。此后,各大公司也開始研究這份開源代碼。
1978年,還在伯克利大學上學、后來的SUN公司的創始人Bill Joy,在高校開源教學版UNIX第六版的開源代碼基礎上進行改造,這就是大名鼎鼎的UNIX伯克利軟件分發版本,簡稱BSD。
1979年,最后一個開源教學版Unix第七版發布以后,AT&T宣布UNIX不再開源。AT&T專門成立了一個獨立公司:USG(Unix Support Group),準備將 Unix商業化。但AT&T能想到的招兒就是保留著作權和商標權,賣商業化的Unix源代碼。
1982年,HP買了UNIX商業源代碼,改造成了自己的HP-UX操作系統。1984年,IBM買了UNXI商業源代碼,改造成了自己的AIX操作系統。
1982年,Sun公司成立,Bill Joy在BSD的基礎上開發了Sun公司的Unix商用版本,這就是后來的Solaris。
1976年,喬布斯成立蘋果公司。1977年推出AppleII,這是人類歷史上第一臺個人電腦(簡稱PC)。1985年,喬布斯被趕出蘋果公司后,在硅谷到處尋找好的東西想重建輝煌。他遇到了一家創業小公司叫NeXt.Inc,這幫人正是想造喬布斯最想要的最強勁的電腦。1989年,NeXT電腦發布。它也是從BSD開源代碼中發展出了操作系統。后來,喬布斯重返蘋果,把蘋果公司的操作系統廢掉,用了NeXT的操作系統,這就是后來的Mac OS。
1977年,蓋茨把微軟公司搬到西雅圖,繼續開發BASIC編程語言。1979年,SCO公司成立,并且和微軟進行合作,基于Unix第七版,移植到Intel 當時1978年推出的最新的8088 CPU上。這就是后來的世界上第一個PC上的Unix:Xenix。
1980年,IBM受蘋果公司個人電腦的壓力準備搞開放兼容個人電腦,就想采取微軟開發的第一個PC上的Xenix。但當時Xenix還涉及到SCO合作開發的版權問題,于是蓋茨耍了一個花招,就從市面上買了一個操作系統,這就是后來大名鼎鼎的MS-DOS。1987年,SCO買下了微軟工程師開發的那一部分Xenix代碼,SCO完全擁有了Xenix。
1984年,AT&T被拆分,貝爾實驗室由于獲得不了資助也開始衰落。1993年,Novell買下了Unix的所有資產。Novell是世界上第一個提出網絡操作系統、文件服務器的公司,曾經把微軟打的很厲害。但是微軟在1993年推出了Windows NT一雪前仇。1995年,Novell頂不住了,也開始想著怎么榨干Unix最后一滴血。1995年,Novell模仿AT&T做法也把Unix源代碼賣給了SCO。后來SCO和Novell都宣稱擁有Unix的資產權。
這場官司從2004年打到2007年,Novell也不知道官司能不能勝利,于是Novell在2004年并購了一家德國的Linux發行公司SUSE。所幸的是,后來法官裁定Novell獲勝。
SUSE是Linux。Linux是芬蘭Linus在1990年上學時上操作系統課,因為要交課堂作業,自己就嘗試寫了點東西,后來他覺得自己也能寫個操作系統,于是就產生了Linux。當時因為AT&T已經不再給高校開源Unix,所以荷蘭教授Tanenbaum自己搞了一個教學用的操作系統,這就是Minix。Linus上操作系統課,老師用的教學系統就是Minix。Linus開發Linux時也是靠Minix啟發了不少思路。1994年初,Linux1.0發布。
不過,我們這里講的Linux其實是操作系統內核。Linux操作系統內核之上的東西,都是各個Linux發行公司在搞。業界有一個開源組織叫GNU,它也在開源的Linux發行版,在Linux內核上集成了當時許多開源軟件,其中就有伊利諾伊大學開源組織搞的apache Web Server。
Linux生逢其時。1994年剛推出來,世界互聯網熱潮就爆發了。大家都想創業搞互聯網,但是Unix和Windows NT這些商業操作系統都很昂貴。Linux開源、免費、不涉及Unix版權,而且GNU搞的開源Linux發行版里還有Apache Web Server,正好搭建網站。現在,LAMP組合還是絕配:Linux、Apache Web Server、MySQL、PHP。
中間件
80年代,局域網、互聯網都發展的方興未艾。互聯互通成為人們的普遍訴求。所以,Novell、Sun公司都提出網絡操作系統概念。
上節提到,Sun公司的聯合創始人Bill Joy也是BSD的核心人物。BSD給Unix業界最重要的貢獻就是:TCP/IP的實現,為了解決網絡之間的互聯互通。現在各大操作系統中的TCP/IP實現代碼,根源都來自于此。
Bill Joy太厲害了,他還在Sun公司于1984年搞出了一個新玩意,那就是:PRC(遠程過程調用),也用于解決應用程序之間的互聯互通。
1986年,IEEE(電氣與電子工程師協會)介于Unix版本太多,不好互聯互通,于是搞了一個開放作業系統標準,這就是POSIX。但IEEE有點類似學術組織,不是工程組織,制定了標準沒人執行。1993年,從AT&T買下Unix資產的Novell也想解決Unix之間在操作系統層面的互聯互通,于是Novell聯合大家,如買了Unix源代碼的HP、IBM等,成立了一個組織——X/Open,專門負責POSIX標準定義和業界推廣、落地執行,讓各大操作系統廠商都遵守POSIX標準。
這個1993年成立的X/Open組織,后來在1996年和Open Software Foundation合并,成為了The Open Group。Open Software Foundation是IBM和HP這起子購買了Unix商用源代碼的廠商們在1986年就成立的一個組織,也是一直試圖想在工程界解決POSIX落地的問題。現在Unix的正主Novell領頭搞了X/Open,兩個組織從職能目標和參加廠商來說大多重疊,所以這兩個組織就合并了。
咱們再說一個組織,那就是對象管理組織OMG,它由Sun、IBM、HP等廠商在1989年組建。The Open Group組織是為了在操作系統層面解決互聯互通,而OMG組織是為了在應用層面解決互聯互通。大家可別忘了,Sun公司這人可是既實現了TCP/IP,也實現了RPC(遠程過程調用)。
OMG組織首先在1990年發布了CORBA標準。里面有幾個好東西:
1、IDL:中立的文本可描述的接口語言
2、對象請求代理:ORB
3、網絡互聯互通:RPC、TCP/IP、UDP、IIOP
4、服務:目錄服務、注冊服務、事務服務、消息服務、事件通知服務、安全服務
總結
以上是生活随笔為你收集整理的听一个内行人讲云原生简史的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据库怎么选择?终于有人讲明白了
- 下一篇: 数据中心 48 V 直流供电,Vicor