天天看點

【轉帖】Linux的曆史----Linux核心剖析(一)Linux的曆史----Linux核心剖析(一)Unix作業系統理查德·斯托曼和他的自由軟體計劃(GNU)Linux作業系統年鑒Unix/Linux發展圖解

Linux的曆史----Linux核心剖析(一)

2015年04月09日 10:51:09 JeanCheng 閱讀數:11351更多 所屬專欄: Linux核心剖析    版權聲明:本文為部落客原創文章 && 轉載請著名出處 @ http://blog.csdn.net/gatieme https://blog.csdn.net/gatieme/article/details/44956431

Unix作業系統

Unix的由來

湯普遜和裡奇最早是在貝爾實驗室開發Unix的,此後的10年,Unix在學術機構和大型企業中得到了廣泛的應用,當時的UNIX擁有者AT&T公司以低廉甚至免費的許可将Unix源碼授權給學術機構做研究或教學之用,許多機構在此源碼基礎上加以擴充和改進,形成了所謂的“Unix變種”,這些變種反過來也促進了Unix的發展,其中最著名的變種之一是由加州大學柏克萊分校開發的BSD産品。

後來AT&T意識到了Unix的商業價值,不再将Unix源碼授權給學術機構,并對之前的Unix及其變種聲明了版權權利。變種BSD Unix在Unix的曆史發展中具有相當大的影響力,被很多商業廠家采用,成為很多商用Unix的基礎。BSD使用主版本加次版本的方法辨別,如4.2BSD,4.3BSD,在原始版本的基礎上還有派生版本,這些版本通常有自己的名字,如4.3BSD-Net/1,4.3BSD-Net/2等。其不斷增大的影響力終于引起了AT&T的關注,于是開始了一場曠日持久的版權官司,這場官司一直打到AT&T将自己的Unix系統實驗室賣掉,新接手的Novell公司采取了一種比較開明的做法,允許柏克萊分校自由釋出自己的BSD,但是前提是必須将來自于AT&T的代碼完全删除,于是誕生了4.4 BSD Lite版,由于這個版本不存在法律問題,4.4BSD Lite成為了現代BSD系統的基礎版本。盡管後來,非商業版的Unix系統又經過了很多演變,但其最終都是建立在BSD版本上(Linux除外)。是以從這個角度上,4.4 BSD又是所有自由版本Unix的基礎,它們和System V及Linux等共同構成Unix作業系統這片璀璨的星空。

BSD在發展中也逐漸派生出3個主要的分支:FreeBSD、OpenBSD和NetBSD。

此後的幾十年中,Unix仍在不斷變化,其版權所有者不斷變更,授權者的數量也在增加。Unix的版權曾經為AT&T所有,之後Novell擁有了Unix,再之後Novell又将版權出售給了SCO,但不包括知識産權和專利權(這一事實雙方尚存在争議)。有很多大公司在取得了Unix的授權之後,開發了自己的Unix産品,比如IBM的AIX、HP的HP-UX、SUN的Solaris和SGI的IRIX。

Unix因為其安全可靠,高效強大的特點在伺服器領域得到了廣泛的應用。直到GNU/Linux流行開始前,Unix也是科學計算、大型機、超級電腦等所用作業系統的主流。

UNIX的完整曆史

初創期

Unix的誕生和Multics(Multiplexed Information and Computing System)是有一定淵源的。Multics是由麻省理工學院,AT&T貝爾實驗室和通用電氣合作進行的作業系統項目,被設計運作在GE-645大型主機上,但是由于整個目标過于龐大,糅合了太多的特性,Multics雖然釋出了一些産品,但是性能都很低,最終以失敗而告終。

AT&T最終撤出了投入Multics項目的資源,其中一位開發者──肯·湯普遜則繼續為GE-645開發軟體,并最終編寫了一個太空旅行遊戲。經過實際運作後,他發現遊戲速度很慢而且耗費昂貴——每次運作會花費75美元。

在丹尼斯·裡奇的幫助下,湯普遜用PDP-7的彙編語言重寫了這個遊戲,并使其在DEC PDP-7上運作起來。這次經曆加上Multics項目的經驗,促使湯普遜開始了一個DEC PDP-7上的新作業系統項目。湯普遜和裡奇上司一組開發者,開發了一個新的多任務作業系統。這個系統包括指令解釋器和一些實用程式,Multics是“MULTiplexed Information and Computing System”的縮寫,在1970年時,那部PDP-7卻隻能支援兩個使用者,當時,Brian Kernighan就開玩笑地戲稱他們的系統其實是:“UNiplexed Information and Computing System”,縮寫為“UNICS”。于是這個項目被稱為UnICS( Uniplexed Information and Computing System)。後來,大家取其諧音這個名字被改為UNIX。

發展期

最初的Unix是用彙編語言編寫的,一些應用是由叫做B語言的解釋型語言和彙編語言混合編寫的。B語言在進行系統程式設計時不夠強大,是以湯普遜和裡奇對其進行了改造,并與1971年共同發明了C語言。1973年湯普遜和裡奇用C語言重寫了Unix。在當時,為了實作最高效率,系統程式都是由彙編語言編寫,是以湯普遜和裡奇此舉是極具大膽創新和革命意義的。用C語言編寫的Unix代碼簡潔緊湊、易移植、易讀、易修改,為此後Unix的發展奠定了堅實基礎。

1974年,湯普遜和裡奇合作在ACM通信上發表了一篇關于UNIX的文章,這是UNIX第一次出現在貝爾實驗室以外。此後UNIX被政府機關,研究機構,企業和大學注意到,并逐漸流行開來。

1975年,UNIX釋出了4、5、6三個版本。1978年,已經有大約600台計算機在運作UNIX。1979年,版本7釋出,這是最後一個廣泛釋出的研究型UNIX版本。20世紀80年代相繼釋出的8、9、10版本隻授權給了少數大學。此後這個方向上的研究導緻了九号計劃的出現,這是一個新的分布式作業系統。

1982年,AT&T基于版本7開發了UNIX System Ⅲ的第一個版本,這是一個商業版本僅供出售。為了解決混亂的UNIX版本情況,AT&T綜合了其他大學和公司開發的各種UNIX,開發了UNIX System V Release 1。

這個新的UNIX商業釋出版本不再包含源代碼,是以加州大學柏克萊分校繼續開發BSD UNIX,作為UNIX System III和V的替代選擇。BSD對UNIX最重要的貢獻之一是TCP/IP。BSD有8個主要的發行版中包含了TCP/IP:4.1c、4.2、4.3、4.3-Tahoe、4.3-Reno、Net2、4.4以及4.4-lite。這些釋出版中的TCP/IP代碼幾乎是現在所有系統中TCP/IP實作的前輩,包括AT&T System V UNIX和Microsoft Windows。

其他一些公司也開始為其自己的小型機或工作站提供商業版本的UNIX系統,有些選擇System V作為基礎版本,有些則選擇了BSD。BSD的一名主要開發者,比爾·喬伊,在BSD基礎上開發了SunOS,并最終創辦了太陽計算機系統公司。

1991年,一群BSD開發者(Donn Seeley、Mike Karels、Bill Jolitz和Trent Hein)離開了加州大學,創辦了Berkeley Software Design, Inc (BSDI)。BSDI是第一家在便宜常見的Intel平台上提供全功能商業BSD UNIX的廠商。後來Bill Jolitz離開了BSDI,開始了386BSD的工作。386BSD被認為是FreeBSD、OpenBSD和NetBSD、DragonFlyBSD的先輩。

AT&T繼續為UNIX System V增加了檔案鎖定,系統管理,作業控制,流和遠端檔案系統。1987到1989年,AT&T決定将Xenix(微軟開發的一個x86-pc上的UNIX版本),BSD,SunOS和System V融合為System V Release 4(SVR4)。這個新釋出版将多種特性融為一體,結束了混亂的競争局面。

1993年以後,大多數商業UNIX發行商都基于SVR4開發自己的UNIX變體了。

現況

UNIX System V Release 4釋出後不久,AT&T就将其所有UNIX權利出售給了Novell。Novell期望以此來對抗微軟的Windows NT,但其核心市場受到了嚴重傷害,最終Novell将SVR4的權利出售給了X/OPEN Consortium,後者是定義UNIX标準的産業團體。最後X/OPEN和OSF/1合并,建立了Open Group。Open Group定義的多個标準定義着什麼是以及什麼不是UNIX。

實際的UNIX代碼則輾轉到了Santa Cruz Operation,這家公司後來出售給了Caldera Systems。Caldera原來也出售Linux系統,交易完成後,新公司又被重命名為SCO Group。

部門的解散

根據一項報道指出,當年負責研發UNIX與後續維護工作的貝爾實驗室1127部門已于2005年8月正式聲明解散。肯·湯普遜已退休,現居加州;丹尼斯·裡奇調到别的部門;而Douglas McIlroy則在達特茅斯學院擔任教授。

Unix的文化

UNIX is not just an operating system, but a way of life.(UNIX不僅僅是一個作業系統,更是一種生活方式。) 經過幾十年的發展,UNIX在技術上日臻成熟的過程中,她獨特的設計哲學和美學也深深地吸引了一大批技術人員,他們在維護、開發、使用UNIX的同時,UNIX也影響了他們的思考方式和看待世界的角度。這些人自然而然地形成了一個社團。

UNIX重要的設計原則:

簡潔至上

提供機制而非政策
           
  • 1
  • 2
  • 3

理查德·斯托曼和他的自由軟體計劃(GNU)

在1983年,理查德·斯托曼建立了以建立一個自由軟體,類Unix,與POSIX相容的作業系統為目标的GNU計劃。作為這個計劃其中的一部分,他又寫了GNU通用公共許可證(GPL)。20世紀90年代初,已經有足夠的軟體去建立一個完整的作業系統。但因為在1987年時,理查德·斯托曼決定以Mach微核心進行開發,認為可以借此加速作業系統的開發,但因為一直不确定卡内基梅隆大學何時要将核心源代碼釋出,造成項目三年進展緩慢。GNU的核心,GNU Mach和GNU Hurd沒能夠充分吸引開發者,這導緻了GNU的未能完成。

在20世紀80年代還有另外一個關于自由作業系統的項目,伯克利軟體套件。這是由UC Berkeley從AT&T的第六版Unix開發而來的。因為它包含了AT&T所擁有的的Unix代碼,是以AT&T在20世紀90年代初對加利福尼亞大學提起了法律訴訟。這嚴重限制了BSD的發展與應用。

MINIX是安德魯·斯圖爾特·塔能鮑姆在1987年釋出一個用于教學的微核心架構的類Unix系統。雖然系統的源代碼容易得到,但是對源代碼的修改與再釋出卻受到了限制。另外,MINIX的16位的設計與當時日漸便宜及受歡迎的、個人電腦的Intel 80386架構相容得不好。

這些因素使得Torvalds開始了他的項目。他曾說過,如果那時候有可用的GNU或者386BSD核心的話,他很可能就不會去寫他自己的核心了

Linux作業系統

Linux的誕生

1991年,在赫爾辛基,Linus Torvalds開始那個後面成為了Linux核心的項目。最初它隻一個Torvalds用來通路大學裡的大型的Unix伺服器的虛拟終端。他專門寫了一個用于他當時正在用的硬體的,與作業系統無關的程式,因為他要用他那用80386處理器的新PC機的功能。開發是在Minix上,用至今仍為首選的編譯器——GCC——來完成的。 

【轉帖】Linux的曆史----Linux核心剖析(一)Linux的曆史----Linux核心剖析(一)Unix作業系統理查德·斯托曼和他的自由軟體計劃(GNU)Linux作業系統年鑒Unix/Linux發展圖解

Torvalds在他的書隻為歡樂中說過,他最後才意識到自己寫了一個作業系統核心。1991年8月25日,他在釋出到新聞討論區“comp.os.minix.”的Usenet上釋出了這個系統:

“   使用minix作業系統的各位,大家好!
我正在為
           
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

名稱的由來

Linus Torvalds本要把他的發時叫做Freax——“fread”,“free”和“x”(暗指Unix)的合成詞。在開發系統的前半年裡,他把檔案以檔案名“Freax”存儲。Torvalds考慮過Linux這個名字,但是因為覺得它過于自我本位而放棄了使用它[6]。

為便于開發,在1991年9月,他把那些檔案上傳到了赫爾辛基工業大學(HUT)的FTP伺服器(ftp.funet.fi)。Torvalds在HUT負責管理那個伺服器的同僚Ari Lemmke,覺得“Freax”這個名字不是很好,就在不咨詢Torvalds的情況下,把項目的名字改成了“Linux”。但是之後,Torvalds也同意“Linux”這個名字了:“經過多次讨論,他承認Linux這個名字更好。在0.01版本Linux的源代碼的makefile裡仍然使用‘Freax’這個名字,在之後‘Linux’這個名字才被使用。是以,Linux這個名字并不是預先想好的,隻是它被廣泛接受了而已”。

關于GNU/Linux命名方式的争議

“Linux”這個名稱一開始隻被Torvalds用于Linux核心。但是這個核心卻常和其他軟體一起使用,尤其是GNU計劃的軟體。這很快就成為最受歡迎的GNU軟體。1994年六月,在GNU的期刊中,Linux被稱作“自由Unix克隆版”,Debian計劃也開始把它的産品叫做“Debian GNU/Linux”。1996年5月,Richard Stallman釋出了編輯器Emacs的19.31版本,其中系統的名稱從Linux變成了Lignux。這種拼法為的是明确指出GNU和Linux的結合。但是這不久就被“GNU/Linux”所代替了。

對這個名稱,不同人有不同的反應。GNU和Debian項目使用那個名字,但是,多數開發者仍然簡單地用“Linux”來指代它們的結合。

官方吉祥物

【轉帖】Linux的曆史----Linux核心剖析(一)Linux的曆史----Linux核心剖析(一)Unix作業系統理查德·斯托曼和他的自由軟體計劃(GNU)Linux作業系統年鑒Unix/Linux發展圖解

Tux 

1996年,Torvalds為Linux標明了企鵝作為它的吉祥物。Larry Ewing提供了吉祥物的初稿。現在正在使用的著名的吉祥物就是基于這份初稿的。James Hughes根據“Torvalds’s Unix”為它取了名字Tux。

新的發展

核心

除了Torvalds,還有許多知名的如阿蘭考克斯Alan Cox和馬塞洛托薩蒂Marcelo TosattiLinux核心維護者。 Cox維護2.2版的核心直到2003年底,同樣, Tosatti維護2.4版的核心直到2006年年中,程式員Andrew Morton 帶動了于2003年12月18日釋出的首個穩定版本-2.6版核心的開發和維護。而舊版本也還在持續地改進中。

Linux在多方面成功應用,其主要原因在于它是自由軟體和它的軟體的穩定性、安全性和可擴充性,以及是以而帶有的可維護性。雖然确實存在着漏洞,例如vmsplice() exploit,但是這些漏洞會很快被修複[來源請求]。

社群

關于Linux的大部分工作都是由社群完成的:世界各地使用Linux的程式員都把建議的改進發給維護員。很多公司還不但參與核心的開發,還參與了一些随Linux一起釋出的輔助軟體的編寫。

Linux的版本當中,既有像Debian那樣由自發組織釋出的,又有像openSUSE和Fedora那樣直接和一些公司相關的。為了交換意見,各個項目的成員常在各種會議交流會上會面。其中最大的交流會是在德國(目前是柏林)舉行的LinuxTag。每年有大約10,000人聚集在一起讨論Linux以及與Linux相關的項目。

開源發展實驗室和Linux基金會

開源碼發展實驗室(Open Source Development Lab)創立于2000年。它是一個獨立的非營利性組織。它的目标是優化Linux以應用于資料中心和營運商的領域。它是Linus Torvalds和Andrew Morton工作的贊助來源。2006年年中,Morton去了Google(Google也是使用Linux核心的);Torvalds全職為OSDL開發Linux核心。非商業性營運機制的資金主要來源于Red Hat,Novell,三菱,英特爾, IBM ,戴爾和惠普等幾家大公司。

2007年1月22日,OSDL和自由标準組織合并為Linux基金會,把它們的工作焦點集中在改進GNU/Linux以與Windows競争。

相關公司

雖然是開源項目,但是還是有一些公司從中擷取了利益。這些公司大多也是開源發展實驗室的成員。它們在Linux的改進與開發中投入了許多資源以使其能夠适應不同領域的應用。其中包括驅動程式捐贈的硬體,對開發Linux軟體的人員現金的捐贈,以及對Linux程式員的雇用。例如IBM和HP,它們首先在它們的伺服器上使用了Linux;又如Red Hat,它維護着它自已的版本。同樣,Trolltech通過對Qt的開發和把它GPL許可化,以及啟用一些X和KDE開發人員來支援Linux。前者更使得開發KDE成為了可能。

關于Linux的争論

Linux自出現以來就已經引起了反複的争議。

“Linux已經過時”

塔能鮑姆-托瓦茲辯論 

1992年,著名的計算機科學家,Minix和微核心的作者,安德魯·斯圖爾特·塔能鮑姆在新聞討論區comp.os.minix上寫了一篇題為《Linux已經過時》的文章。這篇文章标志着對Linux核心的著名的大讨論的開始。其中對Linux的批評主要是:

該核心是宏核心的,是以它是過時的;
因使用Intel 386處理器而帶來的不可移植性。“寫一個與某特定硬體,特别是像Intel這種奇怪的硬體相關的作業系統,在根本上就是錯誤的。”;
沒有個人嚴格控制源代碼;
Linux使用了一系列無用的特色(他認為多線程的檔案系統隻會使用系統性能低下)。
事實證明,塔能鮑姆認為Linux會在幾年之内就會過時并被GNU Hurd取替(他認為GNU Hurd更為現代化)的看法是錯誤的。Linux已經被移植到所有主流的平台,而且它開放的開發模式引領了一種傑出的開發步伐。相反,GNU Hurd還沒有擁有可作為産品伺服器的穩定性水準]。
           
  • 1
  • 2
  • 3
  • 4
  • 5

反對開源檔案的出版物

來自微軟的競争 

雖然Torvalds說過微軟感到的來自Linux的威脅與他無關,但是微軟和Linux陣營在1997年到2001年間還是有着很多敵對的情況。這種情況在1998年Eric S. Raymond發表《萬聖節檔案》的時候變得明顯起來。這裡由一位微軟工程師寫的關于尋求解決自由軟體對微軟的威脅的政策的文章。

SCO-Linux争議

2003年3月,SCO Group指責IBM把UNIX的代碼移植到Linux侵犯了他們的版權。SCO聲稱它們擁有代碼的版權并IBM提起了訴訟。Red Hat又提起了反訴訟,是以SCO又提起了其他相關的訴訟。在這些訴訟進行的同時,SCO開始把Linux的許可權賣給那些不願意冒受SCO投訴的險的使用者。因為Novell也聲稱擁有UNIX的版權,是以它又對SCO提起了訴訟。接着SCO便聲明破産了。

名稱的商标

Linux是Linus Torvalds的注冊商标。

商标權 

在1994和1995年,有多個來自不同國家的人想把Linux注冊為商标,進而一些Linux公司可以從中收取特許使用金。很多Linux的開發人員和使用者都不同意此舉。Torvalds在Linux國際的幫助下得到了Linux這個商标,然後他把這個商标轉讓給了Linux國際。對這個商标的保護後來就由一個專門的基金會——非營利性的Linux辨別協會——來管理。2000年,Linus Torvalds指定了配置設定許可權的基本規則。這意味着任何要想以Linux的名義釋出産品和服務的人,都要擁有許可證。而許可證要通過購買獲得。

大事年表

1983:Richard Stallman建立了以建立一個自由的作業系統為目标的GNU計劃。 

1989:Richard Stallman撰寫了第一版的GNU GPL。 

1991:Linux核心在8月25日由21歲的芬蘭學生Linus Benedict Torvalds公開釋出。 

1992:在GNU GPL下Linux核心被重新授權使用,産生了第一個“Linux發行版本”。 

1993:超過100個開發者緻力于Linux核心開發。在他們的努力下,核心逐漸适應了GNU的環境,這個為Linux創造了巨大的應用空間的廣闊環境。Slackware首次釋出。後來在同一年,Debian項目設立,現已成為最大的社群釋出項目。 

1994: 3月, Torvalds認為核心的所有元件已經完全成熟,他放出了Linux的1.0版本。XFree86項目組提供了一個圖形化使用者界面(GUI).同年Red Hat公司 和SUSE 發行了他們各自的Linux 1.0分發版本。 

1995: Linux被移植到DEC Alpha和Sun公司的SPARC平台上,而在接下來的幾年裡它又被廣泛地移植到更多的平台上。 

1996: Linux核心2.0版本釋出。此時核心已經支援多處理器,因而成為各大公司的絕佳選擇。 

1998:很多大公司,諸如IBM, Compaq ,Oracle表示支援Linux系統。另外,一部分程式員開始了圖形化使用者界面KDE的開發。 

1999:一些程式員開始緻力于開發圖形化環境GNOME,它可以替代依靠Qt工具包才能工作的KDE。在這一年裡IBM宣布了一項支援Linux的浩大的工程。 

2004: XFree86小組分裂,同現有的X Windows标準組織 共同成立X.Org基金會,促使了X Window ServerLinux版本極其快速而迅猛的發展。

年鑒

20世紀60年代,MIT開發分時作業系統(Compatible TIme-Sharing System),支援30台終端通路主機;主機負責運算,而終端負責輸入輸出;

1965年,Bell實驗室、MIT、GE(通用電氣公司)準備開發Multics系統,為了同時支援300個終端通路主機,但是1969年失敗了; 

剛開始并沒有滑鼠、鍵盤,輸入裝置隻有卡片機,是以如果要測試某個程式,則需要将讀卡紙插入卡片機,如果有錯誤,還需要重新來過; 

Multics:Multiplexed Information and Computing Service

1969年,Ken Thompson(C語言之父)利用彙編語言開發了FIle Server System(Unics,即Unix的原型) 

因為彙編語言對于硬體的依賴性,是以隻能針對特定硬體; 

隻是為了移植一款“太空旅遊”的遊戲;

1973年,Dennis Ritchie和Ken Thompson發明了C語言,而後寫出了Unix的核心 

将B語言改成C語言,由此産生了C語言之父; 

90%的代碼是C語言寫的,10%的代碼用彙編寫的,是以移植時隻要修改那10%的代碼即可;

1977年,Berkeley大學的Bill Joy針對他的機器修改Unix源碼,稱為BSD(Berkeley Software Distribution) 

Bill Joy是Sun公司的創始人; 

1979年,Unix釋出System V,用于個人計算機; 

1984年,因為Unix規定:“不能對學生提供源碼”,Tanenbaum老師自己編寫相容于Unix的Minix,用于教學; 

1984年,Stallman開始GNU(GNU’s Not Unix)項目,創辦FSF(Free Software Foundation)基金會; 

産品:GCC、Emacs、Bash Shell、GLIBC; 

倡導“自由軟體”; 

GNU的軟體缺乏一個開放的平台運作,隻能在Unix上運作; 

自由軟體指使用者可以對軟體做任何修改,甚至再發行,但是始終要挂着GPL的版權; 

自由軟體是可以賣的,但是不能隻賣軟體,而是賣服務、手冊等; 

1985年,為了避免GNU開發的自由軟體被其他人用作專利軟體,是以建立GPL(General Public License)版權聲明; 

1988年,MIT為了開發GUI,成立了XFree86的組織; 

1991年,芬蘭赫爾辛基大學的研究所學生Linus Torvalds基于gcc、bash開發了針對386機器的Lniux核心; 

1994年,Torvalds釋出Linux-v1.0; 

1996年,Torvalds釋出Linux-v2.0,确定了Linux的吉祥物:企鵝;

Unix/Linux發展圖解

【轉帖】Linux的曆史----Linux核心剖析(一)Linux的曆史----Linux核心剖析(一)Unix作業系統理查德·斯托曼和他的自由軟體計劃(GNU)Linux作業系統年鑒Unix/Linux發展圖解
【轉帖】Linux的曆史----Linux核心剖析(一)Linux的曆史----Linux核心剖析(一)Unix作業系統理查德·斯托曼和他的自由軟體計劃(GNU)Linux作業系統年鑒Unix/Linux發展圖解
【轉帖】Linux的曆史----Linux核心剖析(一)Linux的曆史----Linux核心剖析(一)Unix作業系統理查德·斯托曼和他的自由軟體計劃(GNU)Linux作業系統年鑒Unix/Linux發展圖解

轉載于:https://www.cnblogs.com/jinanxiaolaohu/p/10673371.html

Unix作業系統

Unix的由來

湯普遜和裡奇最早是在貝爾實驗室開發Unix的,此後的10年,Unix在學術機構和大型企業中得到了廣泛的應用,當時的UNIX擁有者AT&T公司以低廉甚至免費的許可将Unix源碼授權給學術機構做研究或教學之用,許多機構在此源碼基礎上加以擴充和改進,形成了所謂的“Unix變種”,這些變種反過來也促進了Unix的發展,其中最著名的變種之一是由加州大學柏克萊分校開發的BSD産品。

後來AT&T意識到了Unix的商業價值,不再将Unix源碼授權給學術機構,并對之前的Unix及其變種聲明了版權權利。變種BSD Unix在Unix的曆史發展中具有相當大的影響力,被很多商業廠家采用,成為很多商用Unix的基礎。BSD使用主版本加次版本的方法辨別,如4.2BSD,4.3BSD,在原始版本的基礎上還有派生版本,這些版本通常有自己的名字,如4.3BSD-Net/1,4.3BSD-Net/2等。其不斷增大的影響力終于引起了AT&T的關注,于是開始了一場曠日持久的版權官司,這場官司一直打到AT&T将自己的Unix系統實驗室賣掉,新接手的Novell公司采取了一種比較開明的做法,允許柏克萊分校自由釋出自己的BSD,但是前提是必須将來自于AT&T的代碼完全删除,于是誕生了4.4 BSD Lite版,由于這個版本不存在法律問題,4.4BSD Lite成為了現代BSD系統的基礎版本。盡管後來,非商業版的Unix系統又經過了很多演變,但其最終都是建立在BSD版本上(Linux除外)。是以從這個角度上,4.4 BSD又是所有自由版本Unix的基礎,它們和System V及Linux等共同構成Unix作業系統這片璀璨的星空。

BSD在發展中也逐漸派生出3個主要的分支:FreeBSD、OpenBSD和NetBSD。

此後的幾十年中,Unix仍在不斷變化,其版權所有者不斷變更,授權者的數量也在增加。Unix的版權曾經為AT&T所有,之後Novell擁有了Unix,再之後Novell又将版權出售給了SCO,但不包括知識産權和專利權(這一事實雙方尚存在争議)。有很多大公司在取得了Unix的授權之後,開發了自己的Unix産品,比如IBM的AIX、HP的HP-UX、SUN的Solaris和SGI的IRIX。

Unix因為其安全可靠,高效強大的特點在伺服器領域得到了廣泛的應用。直到GNU/Linux流行開始前,Unix也是科學計算、大型機、超級電腦等所用作業系統的主流。

UNIX的完整曆史

初創期

Unix的誕生和Multics(Multiplexed Information and Computing System)是有一定淵源的。Multics是由麻省理工學院,AT&T貝爾實驗室和通用電氣合作進行的作業系統項目,被設計運作在GE-645大型主機上,但是由于整個目标過于龐大,糅合了太多的特性,Multics雖然釋出了一些産品,但是性能都很低,最終以失敗而告終。

AT&T最終撤出了投入Multics項目的資源,其中一位開發者──肯·湯普遜則繼續為GE-645開發軟體,并最終編寫了一個太空旅行遊戲。經過實際運作後,他發現遊戲速度很慢而且耗費昂貴——每次運作會花費75美元。

在丹尼斯·裡奇的幫助下,湯普遜用PDP-7的彙編語言重寫了這個遊戲,并使其在DEC PDP-7上運作起來。這次經曆加上Multics項目的經驗,促使湯普遜開始了一個DEC PDP-7上的新作業系統項目。湯普遜和裡奇上司一組開發者,開發了一個新的多任務作業系統。這個系統包括指令解釋器和一些實用程式,Multics是“MULTiplexed Information and Computing System”的縮寫,在1970年時,那部PDP-7卻隻能支援兩個使用者,當時,Brian Kernighan就開玩笑地戲稱他們的系統其實是:“UNiplexed Information and Computing System”,縮寫為“UNICS”。于是這個項目被稱為UnICS( Uniplexed Information and Computing System)。後來,大家取其諧音這個名字被改為UNIX。

發展期

最初的Unix是用彙編語言編寫的,一些應用是由叫做B語言的解釋型語言和彙編語言混合編寫的。B語言在進行系統程式設計時不夠強大,是以湯普遜和裡奇對其進行了改造,并與1971年共同發明了C語言。1973年湯普遜和裡奇用C語言重寫了Unix。在當時,為了實作最高效率,系統程式都是由彙編語言編寫,是以湯普遜和裡奇此舉是極具大膽創新和革命意義的。用C語言編寫的Unix代碼簡潔緊湊、易移植、易讀、易修改,為此後Unix的發展奠定了堅實基礎。

1974年,湯普遜和裡奇合作在ACM通信上發表了一篇關于UNIX的文章,這是UNIX第一次出現在貝爾實驗室以外。此後UNIX被政府機關,研究機構,企業和大學注意到,并逐漸流行開來。

1975年,UNIX釋出了4、5、6三個版本。1978年,已經有大約600台計算機在運作UNIX。1979年,版本7釋出,這是最後一個廣泛釋出的研究型UNIX版本。20世紀80年代相繼釋出的8、9、10版本隻授權給了少數大學。此後這個方向上的研究導緻了九号計劃的出現,這是一個新的分布式作業系統。

1982年,AT&T基于版本7開發了UNIX System Ⅲ的第一個版本,這是一個商業版本僅供出售。為了解決混亂的UNIX版本情況,AT&T綜合了其他大學和公司開發的各種UNIX,開發了UNIX System V Release 1。

這個新的UNIX商業釋出版本不再包含源代碼,是以加州大學柏克萊分校繼續開發BSD UNIX,作為UNIX System III和V的替代選擇。BSD對UNIX最重要的貢獻之一是TCP/IP。BSD有8個主要的發行版中包含了TCP/IP:4.1c、4.2、4.3、4.3-Tahoe、4.3-Reno、Net2、4.4以及4.4-lite。這些釋出版中的TCP/IP代碼幾乎是現在所有系統中TCP/IP實作的前輩,包括AT&T System V UNIX和Microsoft Windows。

其他一些公司也開始為其自己的小型機或工作站提供商業版本的UNIX系統,有些選擇System V作為基礎版本,有些則選擇了BSD。BSD的一名主要開發者,比爾·喬伊,在BSD基礎上開發了SunOS,并最終創辦了太陽計算機系統公司。

1991年,一群BSD開發者(Donn Seeley、Mike Karels、Bill Jolitz和Trent Hein)離開了加州大學,創辦了Berkeley Software Design, Inc (BSDI)。BSDI是第一家在便宜常見的Intel平台上提供全功能商業BSD UNIX的廠商。後來Bill Jolitz離開了BSDI,開始了386BSD的工作。386BSD被認為是FreeBSD、OpenBSD和NetBSD、DragonFlyBSD的先輩。

AT&T繼續為UNIX System V增加了檔案鎖定,系統管理,作業控制,流和遠端檔案系統。1987到1989年,AT&T決定将Xenix(微軟開發的一個x86-pc上的UNIX版本),BSD,SunOS和System V融合為System V Release 4(SVR4)。這個新釋出版将多種特性融為一體,結束了混亂的競争局面。

1993年以後,大多數商業UNIX發行商都基于SVR4開發自己的UNIX變體了。

現況

UNIX System V Release 4釋出後不久,AT&T就将其所有UNIX權利出售給了Novell。Novell期望以此來對抗微軟的Windows NT,但其核心市場受到了嚴重傷害,最終Novell将SVR4的權利出售給了X/OPEN Consortium,後者是定義UNIX标準的産業團體。最後X/OPEN和OSF/1合并,建立了Open Group。Open Group定義的多個标準定義着什麼是以及什麼不是UNIX。

實際的UNIX代碼則輾轉到了Santa Cruz Operation,這家公司後來出售給了Caldera Systems。Caldera原來也出售Linux系統,交易完成後,新公司又被重命名為SCO Group。

部門的解散

根據一項報道指出,當年負責研發UNIX與後續維護工作的貝爾實驗室1127部門已于2005年8月正式聲明解散。肯·湯普遜已退休,現居加州;丹尼斯·裡奇調到别的部門;而Douglas McIlroy則在達特茅斯學院擔任教授。

Unix的文化

UNIX is not just an operating system, but a way of life.(UNIX不僅僅是一個作業系統,更是一種生活方式。) 經過幾十年的發展,UNIX在技術上日臻成熟的過程中,她獨特的設計哲學和美學也深深地吸引了一大批技術人員,他們在維護、開發、使用UNIX的同時,UNIX也影響了他們的思考方式和看待世界的角度。這些人自然而然地形成了一個社團。

UNIX重要的設計原則:

簡潔至上

提供機制而非政策
           
  • 1
  • 2
  • 3

理查德·斯托曼和他的自由軟體計劃(GNU)

在1983年,理查德·斯托曼建立了以建立一個自由軟體,類Unix,與POSIX相容的作業系統為目标的GNU計劃。作為這個計劃其中的一部分,他又寫了GNU通用公共許可證(GPL)。20世紀90年代初,已經有足夠的軟體去建立一個完整的作業系統。但因為在1987年時,理查德·斯托曼決定以Mach微核心進行開發,認為可以借此加速作業系統的開發,但因為一直不确定卡内基梅隆大學何時要将核心源代碼釋出,造成項目三年進展緩慢。GNU的核心,GNU Mach和GNU Hurd沒能夠充分吸引開發者,這導緻了GNU的未能完成。

在20世紀80年代還有另外一個關于自由作業系統的項目,伯克利軟體套件。這是由UC Berkeley從AT&T的第六版Unix開發而來的。因為它包含了AT&T所擁有的的Unix代碼,是以AT&T在20世紀90年代初對加利福尼亞大學提起了法律訴訟。這嚴重限制了BSD的發展與應用。

MINIX是安德魯·斯圖爾特·塔能鮑姆在1987年釋出一個用于教學的微核心架構的類Unix系統。雖然系統的源代碼容易得到,但是對源代碼的修改與再釋出卻受到了限制。另外,MINIX的16位的設計與當時日漸便宜及受歡迎的、個人電腦的Intel 80386架構相容得不好。

這些因素使得Torvalds開始了他的項目。他曾說過,如果那時候有可用的GNU或者386BSD核心的話,他很可能就不會去寫他自己的核心了

Linux作業系統

Linux的誕生

1991年,在赫爾辛基,Linus Torvalds開始那個後面成為了Linux核心的項目。最初它隻一個Torvalds用來通路大學裡的大型的Unix伺服器的虛拟終端。他專門寫了一個用于他當時正在用的硬體的,與作業系統無關的程式,因為他要用他那用80386處理器的新PC機的功能。開發是在Minix上,用至今仍為首選的編譯器——GCC——來完成的。 

【轉帖】Linux的曆史----Linux核心剖析(一)Linux的曆史----Linux核心剖析(一)Unix作業系統理查德·斯托曼和他的自由軟體計劃(GNU)Linux作業系統年鑒Unix/Linux發展圖解

Torvalds在他的書隻為歡樂中說過,他最後才意識到自己寫了一個作業系統核心。1991年8月25日,他在釋出到新聞討論區“comp.os.minix.”的Usenet上釋出了這個系統:

“   使用minix作業系統的各位,大家好!
我正在為
           
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

名稱的由來

Linus Torvalds本要把他的發時叫做Freax——“fread”,“free”和“x”(暗指Unix)的合成詞。在開發系統的前半年裡,他把檔案以檔案名“Freax”存儲。Torvalds考慮過Linux這個名字,但是因為覺得它過于自我本位而放棄了使用它[6]。

為便于開發,在1991年9月,他把那些檔案上傳到了赫爾辛基工業大學(HUT)的FTP伺服器(ftp.funet.fi)。Torvalds在HUT負責管理那個伺服器的同僚Ari Lemmke,覺得“Freax”這個名字不是很好,就在不咨詢Torvalds的情況下,把項目的名字改成了“Linux”。但是之後,Torvalds也同意“Linux”這個名字了:“經過多次讨論,他承認Linux這個名字更好。在0.01版本Linux的源代碼的makefile裡仍然使用‘Freax’這個名字,在之後‘Linux’這個名字才被使用。是以,Linux這個名字并不是預先想好的,隻是它被廣泛接受了而已”。

關于GNU/Linux命名方式的争議

“Linux”這個名稱一開始隻被Torvalds用于Linux核心。但是這個核心卻常和其他軟體一起使用,尤其是GNU計劃的軟體。這很快就成為最受歡迎的GNU軟體。1994年六月,在GNU的期刊中,Linux被稱作“自由Unix克隆版”,Debian計劃也開始把它的産品叫做“Debian GNU/Linux”。1996年5月,Richard Stallman釋出了編輯器Emacs的19.31版本,其中系統的名稱從Linux變成了Lignux。這種拼法為的是明确指出GNU和Linux的結合。但是這不久就被“GNU/Linux”所代替了。

對這個名稱,不同人有不同的反應。GNU和Debian項目使用那個名字,但是,多數開發者仍然簡單地用“Linux”來指代它們的結合。

官方吉祥物

【轉帖】Linux的曆史----Linux核心剖析(一)Linux的曆史----Linux核心剖析(一)Unix作業系統理查德·斯托曼和他的自由軟體計劃(GNU)Linux作業系統年鑒Unix/Linux發展圖解

Tux 

1996年,Torvalds為Linux標明了企鵝作為它的吉祥物。Larry Ewing提供了吉祥物的初稿。現在正在使用的著名的吉祥物就是基于這份初稿的。James Hughes根據“Torvalds’s Unix”為它取了名字Tux。

新的發展

核心

除了Torvalds,還有許多知名的如阿蘭考克斯Alan Cox和馬塞洛托薩蒂Marcelo TosattiLinux核心維護者。 Cox維護2.2版的核心直到2003年底,同樣, Tosatti維護2.4版的核心直到2006年年中,程式員Andrew Morton 帶動了于2003年12月18日釋出的首個穩定版本-2.6版核心的開發和維護。而舊版本也還在持續地改進中。

Linux在多方面成功應用,其主要原因在于它是自由軟體和它的軟體的穩定性、安全性和可擴充性,以及是以而帶有的可維護性。雖然确實存在着漏洞,例如vmsplice() exploit,但是這些漏洞會很快被修複[來源請求]。

社群

關于Linux的大部分工作都是由社群完成的:世界各地使用Linux的程式員都把建議的改進發給維護員。很多公司還不但參與核心的開發,還參與了一些随Linux一起釋出的輔助軟體的編寫。

Linux的版本當中,既有像Debian那樣由自發組織釋出的,又有像openSUSE和Fedora那樣直接和一些公司相關的。為了交換意見,各個項目的成員常在各種會議交流會上會面。其中最大的交流會是在德國(目前是柏林)舉行的LinuxTag。每年有大約10,000人聚集在一起讨論Linux以及與Linux相關的項目。

開源發展實驗室和Linux基金會

開源碼發展實驗室(Open Source Development Lab)創立于2000年。它是一個獨立的非營利性組織。它的目标是優化Linux以應用于資料中心和營運商的領域。它是Linus Torvalds和Andrew Morton工作的贊助來源。2006年年中,Morton去了Google(Google也是使用Linux核心的);Torvalds全職為OSDL開發Linux核心。非商業性營運機制的資金主要來源于Red Hat,Novell,三菱,英特爾, IBM ,戴爾和惠普等幾家大公司。

2007年1月22日,OSDL和自由标準組織合并為Linux基金會,把它們的工作焦點集中在改進GNU/Linux以與Windows競争。

相關公司

雖然是開源項目,但是還是有一些公司從中擷取了利益。這些公司大多也是開源發展實驗室的成員。它們在Linux的改進與開發中投入了許多資源以使其能夠适應不同領域的應用。其中包括驅動程式捐贈的硬體,對開發Linux軟體的人員現金的捐贈,以及對Linux程式員的雇用。例如IBM和HP,它們首先在它們的伺服器上使用了Linux;又如Red Hat,它維護着它自已的版本。同樣,Trolltech通過對Qt的開發和把它GPL許可化,以及啟用一些X和KDE開發人員來支援Linux。前者更使得開發KDE成為了可能。

關于Linux的争論

Linux自出現以來就已經引起了反複的争議。

“Linux已經過時”

塔能鮑姆-托瓦茲辯論 

1992年,著名的計算機科學家,Minix和微核心的作者,安德魯·斯圖爾特·塔能鮑姆在新聞討論區comp.os.minix上寫了一篇題為《Linux已經過時》的文章。這篇文章标志着對Linux核心的著名的大讨論的開始。其中對Linux的批評主要是:

該核心是宏核心的,是以它是過時的;
因使用Intel 386處理器而帶來的不可移植性。“寫一個與某特定硬體,特别是像Intel這種奇怪的硬體相關的作業系統,在根本上就是錯誤的。”;
沒有個人嚴格控制源代碼;
Linux使用了一系列無用的特色(他認為多線程的檔案系統隻會使用系統性能低下)。
事實證明,塔能鮑姆認為Linux會在幾年之内就會過時并被GNU Hurd取替(他認為GNU Hurd更為現代化)的看法是錯誤的。Linux已經被移植到所有主流的平台,而且它開放的開發模式引領了一種傑出的開發步伐。相反,GNU Hurd還沒有擁有可作為産品伺服器的穩定性水準]。
           
  • 1
  • 2
  • 3
  • 4
  • 5

反對開源檔案的出版物

來自微軟的競争 

雖然Torvalds說過微軟感到的來自Linux的威脅與他無關,但是微軟和Linux陣營在1997年到2001年間還是有着很多敵對的情況。這種情況在1998年Eric S. Raymond發表《萬聖節檔案》的時候變得明顯起來。這裡由一位微軟工程師寫的關于尋求解決自由軟體對微軟的威脅的政策的文章。

SCO-Linux争議

2003年3月,SCO Group指責IBM把UNIX的代碼移植到Linux侵犯了他們的版權。SCO聲稱它們擁有代碼的版權并IBM提起了訴訟。Red Hat又提起了反訴訟,是以SCO又提起了其他相關的訴訟。在這些訴訟進行的同時,SCO開始把Linux的許可權賣給那些不願意冒受SCO投訴的險的使用者。因為Novell也聲稱擁有UNIX的版權,是以它又對SCO提起了訴訟。接着SCO便聲明破産了。

名稱的商标

Linux是Linus Torvalds的注冊商标。

商标權 

在1994和1995年,有多個來自不同國家的人想把Linux注冊為商标,進而一些Linux公司可以從中收取特許使用金。很多Linux的開發人員和使用者都不同意此舉。Torvalds在Linux國際的幫助下得到了Linux這個商标,然後他把這個商标轉讓給了Linux國際。對這個商标的保護後來就由一個專門的基金會——非營利性的Linux辨別協會——來管理。2000年,Linus Torvalds指定了配置設定許可權的基本規則。這意味着任何要想以Linux的名義釋出産品和服務的人,都要擁有許可證。而許可證要通過購買獲得。

大事年表

1983:Richard Stallman建立了以建立一個自由的作業系統為目标的GNU計劃。 

1989:Richard Stallman撰寫了第一版的GNU GPL。 

1991:Linux核心在8月25日由21歲的芬蘭學生Linus Benedict Torvalds公開釋出。 

1992:在GNU GPL下Linux核心被重新授權使用,産生了第一個“Linux發行版本”。 

1993:超過100個開發者緻力于Linux核心開發。在他們的努力下,核心逐漸适應了GNU的環境,這個為Linux創造了巨大的應用空間的廣闊環境。Slackware首次釋出。後來在同一年,Debian項目設立,現已成為最大的社群釋出項目。 

1994: 3月, Torvalds認為核心的所有元件已經完全成熟,他放出了Linux的1.0版本。XFree86項目組提供了一個圖形化使用者界面(GUI).同年Red Hat公司 和SUSE 發行了他們各自的Linux 1.0分發版本。 

1995: Linux被移植到DEC Alpha和Sun公司的SPARC平台上,而在接下來的幾年裡它又被廣泛地移植到更多的平台上。 

1996: Linux核心2.0版本釋出。此時核心已經支援多處理器,因而成為各大公司的絕佳選擇。 

1998:很多大公司,諸如IBM, Compaq ,Oracle表示支援Linux系統。另外,一部分程式員開始了圖形化使用者界面KDE的開發。 

1999:一些程式員開始緻力于開發圖形化環境GNOME,它可以替代依靠Qt工具包才能工作的KDE。在這一年裡IBM宣布了一項支援Linux的浩大的工程。 

2004: XFree86小組分裂,同現有的X Windows标準組織 共同成立X.Org基金會,促使了X Window ServerLinux版本極其快速而迅猛的發展。

年鑒

20世紀60年代,MIT開發分時作業系統(Compatible TIme-Sharing System),支援30台終端通路主機;主機負責運算,而終端負責輸入輸出;

1965年,Bell實驗室、MIT、GE(通用電氣公司)準備開發Multics系統,為了同時支援300個終端通路主機,但是1969年失敗了; 

剛開始并沒有滑鼠、鍵盤,輸入裝置隻有卡片機,是以如果要測試某個程式,則需要将讀卡紙插入卡片機,如果有錯誤,還需要重新來過; 

Multics:Multiplexed Information and Computing Service

1969年,Ken Thompson(C語言之父)利用彙編語言開發了FIle Server System(Unics,即Unix的原型) 

因為彙編語言對于硬體的依賴性,是以隻能針對特定硬體; 

隻是為了移植一款“太空旅遊”的遊戲;

1973年,Dennis Ritchie和Ken Thompson發明了C語言,而後寫出了Unix的核心 

将B語言改成C語言,由此産生了C語言之父; 

90%的代碼是C語言寫的,10%的代碼用彙編寫的,是以移植時隻要修改那10%的代碼即可;

1977年,Berkeley大學的Bill Joy針對他的機器修改Unix源碼,稱為BSD(Berkeley Software Distribution) 

Bill Joy是Sun公司的創始人; 

1979年,Unix釋出System V,用于個人計算機; 

1984年,因為Unix規定:“不能對學生提供源碼”,Tanenbaum老師自己編寫相容于Unix的Minix,用于教學; 

1984年,Stallman開始GNU(GNU’s Not Unix)項目,創辦FSF(Free Software Foundation)基金會; 

産品:GCC、Emacs、Bash Shell、GLIBC; 

倡導“自由軟體”; 

GNU的軟體缺乏一個開放的平台運作,隻能在Unix上運作; 

自由軟體指使用者可以對軟體做任何修改,甚至再發行,但是始終要挂着GPL的版權; 

自由軟體是可以賣的,但是不能隻賣軟體,而是賣服務、手冊等; 

1985年,為了避免GNU開發的自由軟體被其他人用作專利軟體,是以建立GPL(General Public License)版權聲明; 

1988年,MIT為了開發GUI,成立了XFree86的組織; 

1991年,芬蘭赫爾辛基大學的研究所學生Linus Torvalds基于gcc、bash開發了針對386機器的Lniux核心; 

1994年,Torvalds釋出Linux-v1.0; 

1996年,Torvalds釋出Linux-v2.0,确定了Linux的吉祥物:企鵝;

Unix/Linux發展圖解

【轉帖】Linux的曆史----Linux核心剖析(一)Linux的曆史----Linux核心剖析(一)Unix作業系統理查德·斯托曼和他的自由軟體計劃(GNU)Linux作業系統年鑒Unix/Linux發展圖解
【轉帖】Linux的曆史----Linux核心剖析(一)Linux的曆史----Linux核心剖析(一)Unix作業系統理查德·斯托曼和他的自由軟體計劃(GNU)Linux作業系統年鑒Unix/Linux發展圖解
【轉帖】Linux的曆史----Linux核心剖析(一)Linux的曆史----Linux核心剖析(一)Unix作業系統理查德·斯托曼和他的自由軟體計劃(GNU)Linux作業系統年鑒Unix/Linux發展圖解

繼續閱讀