跳至內容

UNIX

本頁使用了標題或全文手工轉換
維基百科,自由的百科全書
Unix
PDP-11模擬器上執行的Version 7 Unix
開發者貝爾實驗室肯·湯普遜丹尼斯·里奇布萊恩·柯林漢道格拉斯·麥克羅伊喬伊·歐桑納
程式語言C語言組合語言
作業系統家族Unix
運作狀態當前
原始碼模式歷史上是閉原始碼,但某些Unix計劃(包括BSD家族和illumos)是開源軟體
首次發布開發起於1969年
內部首次出版手冊於1971年11月 (1971-11)[1]
在貝爾實驗室外宣布於1973年10月 (1973-10)[2]
支援的語言英語
核心類別多種:單體核心微核心混合核心
預設使用者介面命令列介面圖形化使用者介面X視窗系統
許可證各種:某些版本是專有軟體,另一些是自由軟體/開源軟體
官方網站opengroup.org/unix

UNIX非復用資訊與計算服務綜合資訊與計算服務,英語:Uniplexed Information and Computing ServiceUnICS),一種多使用者、多行程的電腦作業系統,源自於從20世紀70年代開始在美國AT&T公司的貝爾實驗室開發的AT&T Unix

簡介

[編輯]

UNIX作業系統,是一個強大的多使用者、多工作業系統,支援多種處理器架構,按照作業系統的分類,屬於分時作業系統,最早由肯·湯普遜丹尼斯·里奇道格拉斯·麥克羅伊於1969年在AT&T的貝爾實驗室開發。目前它的商標權由國際開放標準組織所擁有,只有符合單一UNIX規範的UNIX系統才能使用UNIX這個名稱,否則只能稱為類UNIXUNIX-like)。

Unix的前身為1964年開始的Multics,1965年時,貝爾實驗室加入一項由奇異麻省理工學院合作的計劃;該計劃要建立一套多使用者、多工、多層次(multi-usermulti-processormulti-level)的MULTICS作業系統。貝爾實驗室參與了這個作業系統的研發,但因為開發速度太慢,1969年貝爾實驗室決定退出這個計劃。貝爾實驗室的工程師,肯·湯普遜丹尼斯·里奇,在此時自行開發了Unix

此後的10年,Unix在學術機構和大型企業中得到了廣泛的應用,當時的UNIX擁有者AT&T公司以低廉甚至免費的許可將Unix原始碼授權給學術機構做研究或教學之用,許多機構在此原始碼基礎上加以擴充和改進,形成了所謂的「Unix變種」,這些變種反過來也促進了Unix的發展,其中最著名的變種之一是由加州大學柏克萊分校開發的柏克萊軟體套件(BSD)產品。

後來AT&T意識到了Unix的商業價值,不再將Unix原始碼授權給學術機構,並對之前的Unix及其變種聲明了著作權權利。BSDUnix的歷史發展中具有相當大的影響力,被很多商業廠家採用,成為很多商用Unix的基礎。其不斷增大的影響力終於引起了AT&T的關注,於是開始了一場持久的著作權官司,這場官司一直打到AT&T將自己的Unix系統實驗室賣掉,新接手的Novell採取了一種比較開明的做法,允許柏克萊分校自由發布自己的Unix變種,但是前提是必須將來自於AT&T的代碼完全刪除,於是誕生了4.4 BSD Lite版,由於這個版本不存在法律問題,4.4 BSD Lite成為了現代柏克萊軟體套件的基礎版本。儘管後來,非商業版的Unix系統又經過了很多演變,但其中有不少最終都是建立在BSD版本上(LinuxMinix等系統除外)。所以從這個角度上,4.4 BSD又是所有自由版本Unix的基礎,它們和System VLinux等共同構成Unix作業系統。

BSD使用主版本加次版本的方法標識,如4.2、4.3BSD,在原始版本的基礎上還有衍生版本,這些版本通常有自己的名字,如4.3BSD-Net/14.3BSD-Net/2等。BSD在發展中也逐漸衍生出3個主要的分支:FreeBSDOpenBSDNetBSD

此後的幾十年中,Unix仍在不斷變化,其著作權所有者不斷變更,授權者的數量也在增加。Unix的著作權曾經為AT&T所有,之後Novell擁有取得了Unix,再之後Novell又將著作權出售給了聖克魯茲作業,但不包括智慧財產權和專利權(這一事實雙方尚存在爭議)。有很多大公司在取得了Unix的授權之後,開發了自己的Unix產品,比如IBMAIX、惠普的HP-UXSCOOpenserverSUNSolaris(被Oracle收購)和SGIIRIX

Unix因為其安全可靠,高效強大的特點在伺服器領域得到了廣泛的應用。直到GNU/Linux流行開始前,Unix也是科學計算大型電腦超級電腦等所用作業系統的主流。現在其仍然被應用於一些對穩定性要求極高的資料中心之上。

歷史

[編輯]

初創期

[編輯]

Unix最初受到Multics計劃的啟發。Multics是由麻省理工學院奇異和AT&T底下的貝爾實驗室合作進行的作業系統專案,被設計執行在GE-645大型主機上。但是由於整個目標過於龐大,糅合了太多的特性,Multics雖然發布了一些產品,但是效能都很低,AT&T最終撤出了投入Multics專案的資源,退出這項合作計劃。

貝爾實驗室最初參與Multics計劃的部門為計算機技術研發部門(Computing Techniques Research Department),部門主管為道格拉斯·麥克羅伊,其下的工程師,原有丹尼斯·里奇布萊恩·柯林漢道格拉斯·麥克羅伊麥克·列斯克(Mike Lesk)與喬伊·歐桑納(Joe Ossanna)等人,為了Multics計劃,他們又召募了肯·湯普遜加入其中。肯·湯普遜進入Multics計劃不久,計劃就中止了,但因為機器仍然保留在貝爾實驗室,他繼續在GE-645上開發軟體。肯·湯普遜在GE-645上,寫出了一個仿真器,可以讓一個檔案系統與主記憶體分頁機制運作起來。他同時也寫了一個程式語言Bon,編寫了一個太空旅行遊戲。經過實際執行後,他發現遊戲速度很慢而且耗費昂貴,每次執行會花費75美元。在GE-645被搬走後,肯·湯普遜在實驗室中尋找沒人使用的機器,找到了幾台PDP-7。丹尼斯·里奇的幫助下,湯普遜用PDP-7的組合語言重寫了這個遊戲,並使其在DEC PDP-7上執行起來。這次經歷加上Multics專案的經驗,促使湯普遜開始在DEC PDP-7上研究如何開發作業系統。

1969年,肯·湯普遜提議在PDP-7上開發一個新的階層式作業系統的計劃。Multics的原有成員,加上Rudd Canady,都投入這個計劃。肯·湯普遜發現要編寫驅動程式來驅動檔案系統,進行測試,並不容易,於是開發了一個殼層(shell)與一些驅動程式,做出一個作業系統的雛形。在團隊合作下,Multics的許多功能都被採納,重新實作,最終做出了一個分時多工作業系統,成為第一版UNIX。因為Multics來自「MULTiplexed Information and Computing System」的縮寫,在1970年,那部PDP-7卻只能支援兩個使用者,彼得·紐曼(Peter G. Neumann)戲稱他們的系統其實是:「UNiplexed Information and Computing System」,縮寫為「UNICS」。於是這個專案被稱為UnICSUniplexed Information and Computing System)。

因為PDP-7的效能不佳,肯·湯普遜與丹尼斯·里奇決定把第一版UNIX移植到PDP-11/20的機器上,開發第二版UNIX。在效能提升後,真正可以提供多人同時使用,布萊恩·柯林漢提議將它的名稱改為UNIX

第一版UNIX是用PDP-7組合語言編寫的,一些應用是由叫做B語言直譯語言和組合語言混合編寫的。在進行系統編程時不夠強大,所以湯普遜和里奇對其進行了改造,並於1971年共同發明了C語言。1973年湯普遜和里奇用C語言重寫了Unix,形成第三版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被認為是FreeBSDOpenBSDNetBSDDragonFlyBSD的先輩。

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變體了。

1127部門的解散

[編輯]

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

現況

[編輯]

UNIX System V Release 4發布後不久,AT&T就將其所有UNIX權利出售給了Novell。Novell期望以此來對抗微軟的Windows NT,但其核心市場受到了嚴重傷害,1993年Novell將SVR4的商標權利出售給了X/OPEN公司,後者成為定義UNIX標準的機構。1996年,X/OPEN和OSF/1合併,建立了國際開放標準組織,由它公布的「單一UNIX規範」定義著具有什麼特徵的作業系統可以冠上UNIX之名,相對地,不符合這些標準但與Unix有類似性的作業系統只能稱為「類Unix」(unix-like)。

UNIX代碼著作權則由Novell售給聖克魯茲作業,2001年這家公司的商標與UNIX產品和業務都出售給了Caldera Systems,交易完成後,Caldera又被重新命名為SCO Group

截止到2020年6月,目前除類UNIX系統(BSD、GNU)外,仍有Oracle SolarisIBM AIXHP-UXMINIX等符合標準的UNIX系統[3]。而原System V Unix則隨著「1127」部門的解散而停止更新。[4]

文化

[編輯]

UNIX具有獨特的技術特點和設計哲學[5]。其設計哲學和美學啓發了許多技術人員,影響了人們的思考方式和看待問題的角度。

UNIX的部分設計原則:

名稱

[編輯]

UNIX 商標目前的持有人是行業標準組織國際開放標準組織。只有那些完全符合並通過單一UNIX規範的系統方可稱為「UNIX」(其他系統稱為「類 Unix」)。

現在滿足國際開放標準組織單一UNIX規範的作業系統,其廠商在向開放組支付大額認證費及年度商標使用費後,即可獲得 UNIX 98UNIX 03 商標使用資格。[6] 已獲授權使用 UNIX 商標的系統包括 AIX[7] EulerOS[8] HP-UX[9] Inspur K-UX[10] IRIX[11] macOS[12] Solaris[13] Tru64 UNIX (原名"Digital UNIX"或 OSF/1),[14] 以及z/OS.[15] 值得注意的是,EulerOS 和 Inspur K‑UX 均為通過 UNIX 03 認證的 Linux 發行版。[16][17]

自由的類Unix系統

[編輯]

1984年,Richard Stallman發起了GNU專案,目標是建立一個完全自由且向下相容UNIX的作業系統。這個專案不斷發展壯大,包含了越來越多的內容。現在,GNU專案的產品,如EmacsGCC等已經成為各種其它自由發布的類UNIX系統中的核心角色。

1990年,Linus Torvalds決定編寫一個自己的Minix核心,初名為Linus' Minix,意為Linus的Minix核心,後來改名為Linux。此核心於1991年正式發布,並逐漸引起人們的注意。當時GNU作業系統仍未完成,GNU系統軟體集與Linux核心結合後,GNU軟體構成了這個POSIX相容作業系統GNU/Linux的基礎。今天GNU/Linux已經成為發展最為活躍的自由/開放原始碼的類Unix作業系統。

1994年,受到GNU工程的鼓舞,BSD走上了復興的道路。BSD的開發也走向了幾個不同的方向,並最終導致了FreeBSDNetBSDOpenBSDDragonFlyBSD等基於BSD的作業系統的出現。

參考文獻

[編輯]
  1. ^ McIlroy, M. D. A Research Unix reader: annotated excerpts from the Programmer's Manual, 1971–1986 (PDF) (技術報告). CSTR. Bell Labs. 1987 [2020-03-09]. 139. (原始內容存檔 (PDF)於2017-11-11). 
  2. ^ Ritchie, D. M.; Thompson, K. The UNIX Time-Sharing System (PDF). Communications of the ACM. 1974, 17 (7): 365–375 [2020-03-09]. (原始內容 (PDF)存檔於2015-06-11). 
  3. ^ 張春曉. UNIX从入门到精通. 北京: 清華大學出版社. 2013: 4–11. ISBN 9787302307358 (中文). 
  4. ^ 贝尔实验室UNIX开发组正式解散. [2020-06-03]. (原始內容存檔於2021-07-28). 
  5. ^ Kernighan, Brian W. Pike, Rob. The UNIX Programming Environment. 1984: viii. 
  6. ^ The Open Group. The Open Brand Fee Schedule. [December 26, 2011]. (原始內容存檔於December 31, 2011). The right to use the UNIX Trademark requires the Licensee to pay to The Open Group an additional annual fee, calculated in accordance with the fee table set out below. 
  7. ^ The Open Group. AIX 6 Operating System V6.1.2 with SP1 or later certification. (原始內容存檔於April 8, 2016). 
  8. ^ The Open Group. Huawei EulerOS 2.0 certification. September 8, 2016. 
  9. ^ The Open Group. HP-UX 11i V3 Release B.11.31 or later certification. (原始內容存檔於April 8, 2016). 
  10. ^ The Open Group. Inspur K-UX 2.0 certification. (原始內容存檔於July 9, 2014). 
  11. ^ The Open Group. IRIX 6.5.28 with patches (4605 and 7029) certification. (原始內容存檔於March 4, 2016). 
  12. ^ macOS version 10.12 Sierra on Intel-based Mac computers. The Open Group. (原始內容存檔於October 2, 2016). 
  13. ^ The Open Group. Oracle Solaris 11 FCS and later certification. (原始內容存檔於September 24, 2015). 
  14. ^ Bonnie Talerico. Hewlett-Packard Company Conformance Statement. The Open Group. [December 8, 2015]. (原始內容存檔於December 10, 2015). 
  15. ^ Vivian W. Morabito. IBM Corporation Conformance Statement. The Open Group. [January 21, 2018]. 
  16. ^ Peng Shen. Huawei Conformance Statement. The Open Group. [January 22, 2020]. 
  17. ^ Peng Shen. Huawei Conformance Statement: Commands and Utilities V4. The Open Group. [January 22, 2020]. 

外部連結

[編輯]