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卻只能支持兩個使用者，布萊恩·柯林漢（Brian Kernighan）戲稱他們的系統其實是:「UNiplexed Information and Computing System」，縮寫為「UNICS」。於是這個項目被稱為UnICS（Uniplexed Information and Computing System）。

因為PDP-7的效能不佳，肯·湯普遜與丹尼斯·里奇決定把第一版UNIX移植到PDP-11/20的機器上，開發第二版UNIX。在效能提升後，真正可以提供多人同時使用，布萊恩·柯林漢提議將它的名稱改為UNIX，但補充說「沒有人能記住」最終拼寫 Unix 的來源。

第一版UNIX是用PDP-7彙編語言編寫的，一些應用是由叫做B語言的解釋型語言和彙編語言混合編寫的。在進行系統編程時不夠強大，所以湯普遜和丹尼斯·里奇對其進行了改造，並於1971年共同發明了C語言。1973年湯普遜和里奇用C語言重寫了Unix，形成第四版UNIX。在當時，為了實現最高效率，系統程序都是由彙編語言編寫，所以湯普遜和里奇此舉是極具大膽創新和革命意義的。用C語言編寫的Unix代碼簡潔緊湊、易移植、易讀、易修改，為此後Unix的發展奠定了堅實基礎。

### 發展期

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

1973-1975年，UNIX陸續發布了4、5、6三個版本。1978年，已經有大約600台電腦在運行UNIX。1979年，版本7發布，這是最後一個廣泛發布的研究型UNIX版本。20世紀80年代相繼發布的8、9、10版本只授權給了少數大學。此後這個方向上的研究導致了九號計劃的出現，這是一個新的分布式作業系統。

2025-2026年，在猶他大學發現了一卷包含Unix版本4的，此前未知的磁帶，其被加利福尼亞州的電腦歷史博物館成功恢復了數據。此磁帶是目前已知現存最早的版本4發行版。

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原則）
- 提供機制而非策略
- 更糟就是更好

## 名稱

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

現在滿足國際開放標準組織單一UNIX規範的作業系統，其廠商在向開放組支付大額認證費及年度商標使用費後，即可獲得UNIX 98或UNIX 03商標使用資格。已獲授權使用 UNIX 商標的系統包括AIX、 EulerOS、HP-UX、Inspur K-UX、IRIX、macOS、Solaris、Tru64 UNIX（原名Digital UNIX或OSF/1）以及z/OS。值得注意的是，EulerOS和Inspur K‑UX均為通過UNIX 03認證的Linux發行版。

## 自由的類Unix系統

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

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

1994年，受到GNU工程的鼓舞以及4.4BSD-Lite的推動，BSD走上了復興的道路。BSD的開發也走向了幾個不同的方向，並最終導致了FreeBSD、NetBSD、OpenBSD和DragonFlyBSD等基於BSD的作業系統的出現。

## 基本資料

- 軟體版本週期：Unix
- 開發者：貝爾實驗室的肯·湯普遜，丹尼斯·里奇，布萊恩·柯林漢，道格拉斯·麥克羅伊，喬伊·歐桑納
- 程式語言：C語言和組合語言
- 作業系統家族：Unix
- 運作狀態：當前
- 源碼模式：歷史上是閉原始碼，但某些Unix計劃（包括BSD家族和illumos）是開源軟體
- 發行日期：開發起於1969年、內部首次出版手冊於1971年、在貝爾實驗室外宣布於1973年
- 語言：英語
- 內核類別：多種：單體內核，微內核，混合內核
- 默認使用者界面：命令行界面和圖形使用者界面（X視窗系統）
- 許可證：各種：某些版本是專有軟體，另一些是自由軟體/開源軟體