黑客技術教程

黑客技術教程

unix百科名片UNIX ,是一個強大的多用戶、多任務作業系統,支持多種處

理器架構,按照作業系統的分類,屬於分時作業系統

基本介紹

  • 中文名:黑客技術教程
  • 外文名:Hacker technology tutorial
基本介紹,詳細介紹,歷史,UNIX標準,區別和聯繫,Unix系統,

基本介紹

unix百科名片UNIX ,是一個強大的多用戶、多任務作業系統,支持多種處理器架構,按照作業系統的分類,屬於分時作業系統
最早由Ken Thompson、Dennis Ritchie、Hackte和Douglas McIlroy於1969年在AT&T的貝爾實驗室開發。經過長期的發展和完善,已成長為一種主流的作業系統技術和基於這種技術的產品大家族。由於UNIX具有技術成熟、結構簡練、可靠性高、可移植性好、可操作性強、網路和資料庫功能強、伸縮性突出和開放性好等特色,可滿足各行各業的實際需要,特別能滿足企業重要業務的需要,已經成為主要的工作站平台和重要的企業操作平台。它主要安裝在巨型計算機、大型機上作為網路作業系統使用,也可用於個人計算機嵌入式系統。曾經是伺服器作業系統的首選,占據最大市場份額,但在跟WINDOWS SERVER以及Linux的競爭中有所失利。

詳細介紹

Ken和Dennis最早是在貝爾實驗室開發Unix的,此後的10年,Unix在學術機構和大型企業中得到了廣泛的套用,當時的UNIX擁有者AT&T公司以低廉甚至免費的許可將Unix源碼授權給學術機構做研究或教學之用,許多機構在此源碼基礎上加以擴充和改進,形成了所謂的Unix“變種 (Variations)”,這些變種反過來也促進了Unix的發展,其中最著名的變種之一是由加州大學Berkeley分校開發的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又是所有免費版(Free Version)Unix的基礎,它們和Unix V及Linux等共同構成Unix作業系統這片璀璨的星空。
BSD在發展中也逐漸衍生出3個主要的分支:FreeBSD,OpenBSD和NetBSD。
此後的幾十年中,Unix仍在不斷變化,其著作權所有者不斷變更,授權者的數量也在增加。Unix的著作權曾經為AT&T所有,之後Novell擁有了Unix,再之後Novell又將著作權出售給了SCO(這一事實雙方尚存在爭議)。有很多大公司在取得了Unix的授權之後,開發了自己的Unix產品,比如IBM的AIX,HP的HPUX,SUN的Solaris和SGI的IRIX。
Unix作業系統設計理念先進,當前許多流行的技術和方法如微核心技術進程通信方法、TCP/IP協定、客戶/服務模式等都源自Unix,Unix幾乎對近代的作業系統都產生了影響。
Unix因為其安全可靠,高效強大的特點在伺服器領域得到了廣泛的套用。直到GNU/Linux流行開始前,Unix也是科學計算、大型機、超級計算機等所用作業系統的主流。

歷史

初創期
Unix的誕生和Multics(Multiplexed Information and Computing System)是有一定淵源的。Multics是由麻省理工學院,AT&T貝爾實驗室和通用電氣合作進行的作業系統項目,被設計運行在GE-645大型主機上,但是由於整個目標過於龐大,糅合了太多的特性,Multics雖然發布了一些產品,但是性能都很低,最終以失敗而告終。
AT&T最終撤出了投入Multics項目的資源,其中一個開發者,Ken Thompson則繼續為GE-645開發軟體,並最終編寫了一個太空旅行遊戲。經過實際運行後,他發現遊戲速度很慢而且耗費昂貴——每次運行會花費75美元。
在Dennis Ritchie的幫助下,Thompson用PDP-7的彙編語言重寫了這個遊戲,並使其在DEC PDP-7上運行起來。這次經歷加上Multics項目的經驗,促使Thompson開始了一個DEC PDP-7上的新作業系統項目。Thompson和Ritchie領導一組開發者,開發了一個新的多任務作業系統。這個系統包括命令解釋器和一些實用程式,這個項目被稱為UNICS(Uniplexed Information and Computing System),因為它可以支持同時的多用戶操作。後來這個名字被改為UNIX。
發展期
最初的Unix是用彙編語言編寫的,一些套用是由叫做B語言的解釋型語言和彙編語言混合編寫的。B語言在進行系統編程時不夠強大,所以Thompson和Ritchie對其進行了改造,並與1971年共同發明了C語言。1973 年Thompson和Ritchie用C語言重寫了Unix。在當時,為了實現最高效率,系統程式都是由彙編語言編寫,所以Thompson和 Ritchie此舉是極具大膽創新和革命意義的。用C語言編寫的Unix代碼簡潔緊湊、易移植、易讀、易修改,為此後Unix的發展奠定了堅實基礎。
1974年,Thompson和Ritchie合作在ACM通信上發表了一篇關於UNIX的文章,這是UNIX第一次出現在貝爾實驗室以外。此後UNIX被政府機關,研究機構,企業和大學注意到,並逐漸流行開來。
1975年,UNIX發布了4、5、6三個版本。1978年,已經有大約600台計算機在運行UNIX。1979年,版本7發布,這是最後一個廣泛發布的研究型UNIX版本。20世紀80年代相繼發布的8、9、10版本只授權給了少數大學。此後這個方向上的研究導致了Plan 9的出現,這是一個新的分散式作業系統
1982年,AT&T基於版本7開發了UNIX System Ⅲ的第一個版本,這是一個商業版本僅供出售。為了解決混亂的UNIX版本情況,AT&T綜合了其他大學和公司開發的各種UNIX,開發了UNIX System V Release 1。
這個新的UNIX商業發布版本不再包含原始碼,所以加州大學Berkeley分校繼續開發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的一名主要開發者,Bill Joy,在BSD基礎上開發了SunOS,並最終創辦了Sun Microsystems。
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的先輩。
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。
1127部門的解散
根據一項報導指出,當年負責研發UNIX與後續維護工作的貝爾實驗室1127部門已於2005年8月正式宣告解散。Ken Thompson已退休,現居加州;Dennis Ritchie調到別的部門;Douglas McIlroy在達特茅斯學院擔任教授等等。

UNIX標準

從1980年代開始,POSIX,一個開放的作業系統標準就在制定中,IEEE制定的POSIX標準是UNIX系統的基礎部分。
20世紀60年代末期,在新澤西州美國電報電話公司(AT&T),有一間陰暗潮濕的實驗室,在這裡,AT&T的貝爾實驗室和麻省理工學院共同開發了一個龐大的單一作業系統,稱為Multics.當時,貝爾實驗室的團隊成員有Ken Thompson,Dennis Ritchie,Brian Kernighan,以及對新Unix作業系統的開發作出重要貢獻的計算機科學研究組(Computer Science Research Group)一些其他成員.
到了1969年,貝爾實驗室開始對Multics逐漸失去興趣,Multics系統非常慢,而且開銷巨大,主要在General Electric大型機上運行,而這中大型機非常昂貴,並且很快就會過時.問題是,Tompson和小組成員非常喜歡Multics所提供的能力,尤其是獨立用戶的環境和多用戶功能.
在那一年,Thompson編寫了一個計算機遊戲,叫做Space Travel,它首先在Multics上,然後又在GECOS(GE計算機作業系統)上運行.這個遊戲模擬太陽系天體運動,由玩家駕駛飛船,觀察景色,而且試圖在各種行星和月亮上登入.該遊戲GE計算機上不是很有趣,因為性能不穩定,而且不規律,更重要的是,每個遊戲幾乎要花費100美元的機時費.
在Thompson改進遊戲的過程中,他發現了一種很少使用的小型機PDF-7(Digital Equipment公司出品),在Ritchie的幫助下,Thompson為PDF-7重寫了遊戲.開發過程是在GE大型機上完成的,並通過紙帶傳給了PDF-7.
當Thompson研究了PDF-7的一些功能之後,他沒有隻停留在開發遊戲上,而是開始實現他早期實際的一個檔案系統,隨後增加了進程,簡單的檔案程式(cp,mv)和被他稱為shell的命令解釋程式.直到第二年,新開發的系統才有了它自己的名稱:Unix.這個名稱是Multics的雙關語,是由Brian Kernighan建議的.
最初的UNIX是用一種RMG的語言編寫的,然後,Thompson試圖編寫一個FORTRAN編譯程式,但沒有成功,所以他轉而設計了一種叫做B的語言.兩年之後,也就是在1971年,Ritchie在B的基礎上設計了一種新的程式語言的第一版,也就是C語言.到1973年,為了獲得兼容性和速度,整個UNIX系統已經都用C語言重寫了.
在20世紀70年代,AT&T還沒有分為許多區域性的運營公司之前(就像現在一樣),公司被禁止銷售新的UNIX作業系統.為了尋求最好的出路,貝爾實驗室將UNIX提供給學院和大學,只收取很少的費用.這些研究機構也很願意購買這種既便宜又強大的PFP-11計算機系統-它們是完美的匹配.不久以後,UNIX就成為人們所選擇的研究和軟體開發作業系統了.

區別和聯繫

Linux和UNIX的最大的區別是,前者是開放原始碼的自由軟體,而後者是對原始碼實行智慧財產權保護的傳統商業軟體。這應該是他們最大的不同,這種不同體現在用戶對前者有很高的自主權,而對後者卻只能去被動的適應;這種不同還表現在前者的開發是處在一個完全開放的環境之中,而後者的開發完全是處在一個黑箱之中,只有相關的開發人員才能夠接觸到產品的原型。
另外兩大區別:
1) UNIX作為商業作業系統與Linux相比其支持的硬體種類要多一些,但兩者運行幾乎一樣穩定.
2) 兩者都是多用戶、多任務作業系統,也都可以作為網路作業系統使用.

Unix系統

Richard Stallman建立了GNU項目,要創建一個能夠自由發布的類UNIX系統。20年來,這個項目不斷發展壯大,包含了越來越多的內容。GNU項目開發的產品,比如Emacs、GCC等已經成為各種其他自由發布的類UNIX產品中的核心角色。
1990年,Linus Torvalds決定編寫一個自己的Minix核心,初名為Linus' Minix,意為Linus的Minix核心,後來改名為Linux,此核心於1991年正式發布,並逐漸引起人們的注意。當GNU軟體與Linux核心結合後,GNU軟體構成了這個POSIX兼容作業系統GNU/Linux的基礎。今天GNU/Linux已經成為發展最為活躍的自由/開放源碼的類Unix作業系統。
1994年,BSD Unix走上了復興的道路。BSD的開發也走向了幾個不同的方向,並最終導致了FreeBSD、OpenBSD和NetBSD的出現

相關詞條

熱門詞條

聯絡我們