Unix
UNIX(常寫作 Unix)是一類通用的分時、多用戶、多任務作業系統及其技術體系,其核心特徵在於通過統一的文件、進程和文本流接口組織系統資源,強調「小工具組合」與模塊化設計。Unix 最初由美國 AT&T 貝爾實驗室的肯·湯普森(Ken Thompson)、丹尼斯·里奇(Dennis Ritchie)等研究人員於 1969 年前後開發,其設計思想深刻影響了後續幾乎所有現代作業系統。<ref name="Ritchie1974">Ritchie, D. M., & Thompson, K. (1974). The UNIX Time-Sharing System. Communications of the ACM, 17(7), 365-375.</ref> 20 世紀 70 年代初,Unix 內核及實用工具被用 C 語言重寫,顯著提升了系統在不同硬體平台間的可移植性,這一實踐也反過來促進了 C 語言的普及。隨著 Unix 在學術界和工業界的廣泛傳播,其衍生出多個分支(如 BSD 和 System V),並催生了 POSIX 和單一 UNIX 規範(SUS)等標準化工作。在商標意義上,「UNIX」是 The Open Group 持有的註冊商標,只有完全符合單一 UNIX 規範並通過認證的系統方可使用該名稱。[1]
| 中文名 | Unix |
|---|---|
| 外文名 | Unix / UNIX |
| 類型 | 通用作業系統(分時、多用戶、多任務) |
| 起源 | AT&T 貝爾實驗室(1969 年前後形成原型) |
| 核心思想 | 小工具組合、文本流處理、統一接口與可移植性 |
| 相關標準 | POSIX(IEEE 1003.1)、單一 UNIX 規範(SUS) |
| 主要分支 | Research Unix、BSD、System V 及其商業衍生(AIX、Solaris 等) |
| 商標與認證 | UNIX 為 The Open Group 註冊商標;僅認證系統可使用 UNIX 標識 |
Unix 的起源可追溯至 1965 年啟動的 Multics(MULTiplexed Information and Computing Service)項目,該項目由貝爾實驗室、通用電氣公司和麻省理工學院聯合開展,旨在構建一個大規模交互式分時作業系統。由於項目目標過於複雜且進展緩慢,AT&T 於 1969 年決定退出。此後,貝爾實驗室的肯·湯普森、丹尼斯·里奇等研究人員利用一台閒置的 PDP-7 計算機,基於之前 Multics 的經驗,開發了一個更為簡潔的新型作業系統。該系統最初被戲稱為 UNICS(UNiplexed Information and Computing Service),後演變為 UNIX。[2] 1971 年,Unix 首次在實際生產環境中部署,用於貝爾實驗室專利部門的文字處理工作。
1972 至 1973 年間,丹尼斯·里奇設計了 C 語言,並與肯·湯普森一同將 Unix 內核及其大部分工具用 C 語言重寫。這一決定使 Unix 擺脫了與特定彙編語言的綁定,只需修改少量與機器相關的代碼即可移植到其他計算機架構,這是作業系統可移植性實踐的重要里程碑。[3] 1973 年,里奇和湯普森在作業系統原理(SOSP)研討會上發表了關於 Unix 的論文,標誌著該系統首次公開亮相。隨後,AT&T 以許可證方式向教育機構和企業提供 Unix 源碼,第六版(V6)於 1975 年起以約 20,000 美元的價格授權給商業用戶。
1977 年,加州大學伯克利分校的研究生比爾·喬伊(Bill Joy)基於貝爾實驗室的 V6 版本發布了 1BSD(Berkeley Software Distribution),其中包含增強的工具和 Pascal 編譯器。伯克利分校隨後持續開發 BSD,加入了 vi 編輯器、C shell 以及 TCP/IP 網絡協議棧等創新特性,使 BSD 成為 Unix 最重要的分支之一。[2] 與此同時,AT&T 於 1983 年發布了 System V,這是一個面向商業應用的官方發行版,其後續版本(特別是 SVR4,1989 年發布)融合了 System V 和 BSD 的諸多優點,成為 IBM AIX、HP-UX、Oracle Solaris 等商業 Unix 系統的基礎。
Unix 的設計哲學強調「小即是美」,鼓勵開發功能單一的專用工具,並通過標準接口(如管道 pipe)將這些工具串聯以完成複雜任務。道格拉斯·麥克羅伊(M. Douglas McIlroy)曾總結:「期望每個程序的輸出成為另一個尚未確定的程序的輸入。」[4] 這種基於文本流的組合方式極大提升了系統的靈活性與可擴展性。
Unix 將幾乎所有系統資源——包括普通文件、目錄、設備、進程間通信通道等——統一抽象為「文件」,這些對象通過文件系統層次結構進行訪問,並使用相同的 open、read、write 等系統調用進行操作。[3] 這一抽象簡化了程序與內核的交互,使得設備管理和進程通信能夠復用同一套接口邏輯。
Unix 系統採用內核-系統調用-應用的分層架構。內核負責進程調度、內存管理、文件系統及設備驅動;系統調用接口供用戶態程序訪問內核功能;最外層是命令解釋器(shell)與各類實用工具(如 grep、awk、sed 等)。這種分層設計保證了內核的穩定性和上層軟體的相對獨立性。
Research Unix 是貝爾實驗室內部持續開發的原始版本系列,其中第七版(V7,1979 年)是傳播最廣、影響最深遠的版本,許多後來的商業 Unix 和類 Unix 系統都從中汲取了核心設計。
BSD 源自伯克利分校的增強版,其貢獻包括 TCP/IP 協議棧(奠定了網際網路基礎)、虛擬內存管理、以及改進的文件系統(FFS)。BSD 直接衍生出 FreeBSD、NetBSD、OpenBSD 以及蘋果公司的 Darwin(macOS 和 iOS 的核心)等現代作業系統。[2]
System V 是 AT&T 的商業化主幹,其 SVR4 版本融合了 BSD 特性,成為業界主流商業 Unix 的共同基礎。System V 的許可證模式推動了 Unix 的商業化,但也引發了與 BSD 之間的長期競爭。
隨著 Unix 變體的增多,不同系統間的接口差異導致應用程式移植困難。為此,IEEE 於 1988 年發布 1003.1 標準,即 POSIX(Portable Operating System Interface for uniX),定義了系統調用、Shell 及常用工具的行為規範,以實現原始碼級別的可移植性。[5] POSIX 後續被國際標準化組織採納,並持續更新。
1990 年代初,主要 Unix 廠商聯合制定了通用 API 規範(Spec 1170),後交由 The Open Group 維護,於 1997 年發布單一 UNIX 規範(SUS)第 2 版。該規範以 POSIX 為核心並加以擴展,由奧斯汀小組(Austin Group)負責持續開發。最新版本為 SUS 第 5 版(2024 年),其內容與 POSIX.1-2024 保持同步。[1]
Unix 的設計理念與實現方式深刻影響了現代計算環境。Linux 內核直接採用 Unix 的系統調用與編程模型,macOS、iOS、Android 等主流系統均基於 Unix 或類 Unix 內核構建。絕大多數網際網路伺服器運行類 Unix 系統,其穩定性和安全性被廣泛驗證。此外,「小工具組合」與「文本流接口」的設計哲學對軟體工程、命令行工具鏈乃至開發文化(如 DevOps)均產生了持久影響。
「UNIX」是 The Open Group 在全球範圍內持有的註冊商標。該組織通過嚴格的認證測試,對符合單一 UNIX 規範的系統授予使用權。未通過認證的類似系統通常被稱為「類 Unix」(Unix-like)。目前,macOS、AIX、Solaris 等系統已獲得官方認證。[1]
- ↑ 1.0 1.1 1.2 The Open Group. UNIX Certification. https://www.opengroup.org/certification
- ↑ 2.0 2.1 2.2 Salus, P. H. (1994). A Quarter Century of UNIX. Addison-Wesley.
- ↑ 3.0 3.1 引用錯誤:無效的
<ref>標籤,未定義名稱為Ritchie1974的參考文獻內容文字。 - ↑ McIlroy, M. D. (1987). A Research Unix reader: annotated excerpts from the Programmer's Manual, 1971-1986. AT&T Bell Laboratories.
- ↑ IEEE Std 1003.1-2024 (also ISO/IEC 9945). IEEE Computer Society.