Unix

**UNIX**（非複用資訊和計算機服務，英語：Uniplexed Information and Computing Service，UnICS），一種多使用者、多行程的電腦作業系統，源自於從 20 世紀 70 年代開始在美國 AT&T 公司的貝爾實驗室開發的 AT&T Unix。

## 簡介

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

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

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

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

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

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

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」。於是這個專案被稱為 **UnICS**（**Un**iplexed **I**nformation and **C**omputing **S**ystem）。

因為 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 被認為是 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 變體了。

### 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 Solaris，IBM AIX，HP-UX，MINIX 等符合標準的 UNIX 系統。而原 System V Unix 則隨著「1127」部門的解散而停止更新。

## 文化

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

UNIX 的部分設計原則：

* 簡潔至上（KISS 原則）
* 提供機制而非策略
* 更糟就是更好

## 標準

從 1980 年代開始，POSIX，一個開放的作業系統標準就在制定中，IEEE 制定的 POSIX 標準（ISO/IEC 9945）現在是 UNIX 系統的基礎部分。

## 自由的類 Unix 系統

1984 年，Richard Stallman 發起了 GNU 專案，目標是建立一個完全自由且向下相容 UNIX 的作業系統。這個專案不斷發展壯大，包含了越來越多的內容。現在，GNU 專案的產品，如 Emacs、GCC 等已經成為各種其它自由發布的類 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 的開發也走向了幾個不同的方向，並最終導致了 FreeBSD、NetBSD、OpenBSD 和 DragonFlyBSD 等基於 BSD 的作業系統的出現。

## 參考文獻

## 外部連結

* UNIX 的完整歷史（頁面存檔備份，存於網際網路檔案館）
* UNIX 第 7 版手冊（頁面存檔備份，存於網際網路檔案館）