UNIX 系統家族小史

linux.cn發表於2015-12-02

要記住,當一扇門在你面前關閉的時候,另一扇門就會開啟。肯·湯普森(Ken Thompson) 和丹尼斯·裡奇(Dennis Richie)兩個人就是這句名言很好的例項。他們倆是20世紀最優秀的資訊科技專家之二,因為他們創造了最具影響力和創新性的軟體之一: UNIX

用於推廣 UNIX,以車牌形式出現

(題圖來自:wikimedia.org,CC BY-SA 3.0)

UNIX 系統誕生於貝爾實驗室

UNIX 最開始的名字是 UNICS (UNiplexed Information and Computing Service),它有一個大家庭,並不是從石頭縫裡蹦出來的。UNIX的祖父是 CTSS (Compatible Time Sharing System),它的父親是 Multics (MULTiplexed Information and Computing Service),這個系統能支援大量使用者通過互動式分時(timesharing)的方式使用大型機。

UNIX 誕生於 1969 年,由肯·湯普森以及後來加入的丹尼斯·裡奇共同完成。這兩位優秀的研究員和科學家在一個通用電器 GE麻省理工學院的合作專案裡工作,專案目標是開發一個叫 Multics 的互動式分時系統。

Multics 的目標是整合分時技術以及當時其他先進技術,允許使用者在遠端終端通過電話(撥號)登入到主機,然後可以編輯文件,閱讀電子郵件,執行計算器,等等。

在之後的五年裡,AT&T 公司為 Multics 專案投入了數百萬美元。他們購買了 GE-645 大型機,聚集了貝爾實驗室的頂級研究人員,例如肯·湯普森、 Stuart Feldman、丹尼斯·裡奇、道格拉斯·麥克羅伊(M. Douglas McIlroy)、 Joseph F. Ossanna 以及 Robert Morris。但是專案目標太過激進,進度嚴重滯後。最後,AT&T 高層決定放棄這個專案。

貝爾實驗室的管理層決定停止這個讓許多研究人員無比糾結的作業系統上的所有遺留工作。不過要感謝湯普森,裡奇和一些其他研究員,他們把老闆的命令丟到一邊,並繼續在實驗室裡滿懷熱心地忘我工作,最終孵化出前無古人後無來者的 UNIX。

UNIX 的第一聲啼哭是在一臺 PDP-7 微型機上,它是湯普森測試自己在作業系統設計上的點子的機器,也是湯普森和 裡奇一起玩 Space and Travel 遊戲的模擬器。

“我們想要的不僅是一個優秀的程式設計環境,而是能圍繞這個系統形成團體。按我們自己的經驗,通過遠端訪問和分時主機實現的公共計算,本質上不只是用終端輸入程式代替打孔機而已,而是鼓勵密切溝通。”丹尼斯·裡奇說。

UNIX 是第一個靠近理想的系統,在這裡程式設計師可以坐在機器前自由擺弄程式,探索各種可能性並隨手測試。在 UNIX 整個生命週期裡,它吸引了大量因其他作業系統限制而投身過來的高手做出無私貢獻,因此它的功能模型一直保持上升趨勢。

UNIX 在 1970 年因為 PDP-11/20 獲得了首次資金注入,之後正式更名為 UNIX 並支援在 PDP-11/20 上執行。UNIX 帶來的第一次用於實際場景中是在 1971 年,貝爾實驗室的專利部門配備來做文書處理。

UNIX 上的 C 語言革命

丹尼斯·裡奇在 1972 年發明了一種叫 “C” 的高階程式語言 ,之後他和肯·湯普森決定用 “C” 重寫 UNIX 系統,來支援更好的移植性。他們在那一年裡編寫和除錯了差不多 100,000 行程式碼。在遷移到 “C” 語言後,系統可移植性非常好,只需要修改一小部分機器相關的程式碼就可以將 UNIX 移植到其他計算機平臺上。

UNIX 第一次公開露面是 1973 年丹尼斯·裡奇和肯·湯普森在作業系統原理(Operating Systems Principles)上發表的一篇論文,然後 AT&T 釋出了 UNIX 系統第 5 版,並授權給教育機構使用,之後在 1975 年第一次以 $20.000 的價格授權企業使用 UNIX 第 6 版。應用最廣泛的是 1980 年釋出的 UNIX 第 7 版,任何人都可以購買授權,只是授權條款非常嚴格。授權內容包括原始碼,以及用 PDP-11 組合語言寫的及其相關核心。反正,各種版本 UNIX 系統完全由它的使用者手冊確定。

UNIX 分支演化

UNIX 分支演化

(來自 wikipedia.org,CC BY-SA 3.0)

AIX 系統

1983 年,微軟計劃開發 Xenix 作為 MS-DOS 的多使用者版繼任者,他們在那一年花了 $8,000 搭建了一臺擁有 512 KB 記憶體以及 10 MB硬碟並執行 Xenix 的 Altos 586。而到 1984 年為止,全世界 UNIX System V 第二版的安裝數量已經超過了 100,000 。在 1986 年釋出了包含因特網域名服務的 4.3BSD,而且 IBM 宣佈 AIX 系統的安裝數已經超過 250,000。AIX 基於 Unix System V 開發,這套系統擁有 BSD 風格的根檔案系統,是兩者的結合。

AIX 第一次引入了 日誌檔案系統 (JFS) 以及整合LVM(邏輯卷管理器 (Logical Volume Manager))。IBM 在 1989 年將 AIX 移植到自己的 RS/6000 平臺。2001 年釋出的 5L 版是一個突破性的版本,提供了 Linux 友好性以及支援 Power4 伺服器的邏輯分割槽。

在 2004 年釋出的 AIX 5.3 引入了支援APV(高階電源虛擬化( Advanced Power Virtualization))的虛擬化技術,支援對稱多執行緒、微分割槽,以及共享處理器池。

在 2007 年,IBM 同時釋出 AIX 6.1 和 Power6 架構,開始加強自己的虛擬化產品。他們還將高階電源虛擬化重新包裝成 PowerVM。

這次改進包括被稱為 WPARs 的負載分割槽形式,類似於 Solaris 的 zones/Containers,但是功能更強。

HP-UX 系統

HP-UX(惠普 UNIX (Hewlett-Packard’s UNIX)) 源於 System V 第 3 版。這套系統一開始只支援 PA-RISC HP 9000 平臺。HP-UX 第 1 版釋出於 1984 年。

HP-UX 第 9 版引入了 SAM,一個基於字元的圖形使用者介面 (GUI),使用者可以用來管理整個系統。在 1995 年釋出的第 10 版,調整了系統檔案分佈以及目錄結構,變得有點類似 AT&T SVR4。

第 11 版釋出於 1997 年。這是 HP 第一個支援 64 位定址的版本。不過在 2000 年重新發布成 11i,因為 HP 為特定的資訊科技用途,引入了操作環境(operating environments)和分級應用(layered applications)的捆綁組(bundled groups)。

在 2001 年釋出的 11.20 版宣稱支援安騰(Itanium)系統。HP-UX 是第一個使用 ACLs(訪問控制列表(Access Control Lists))管理檔案許可權的 UNIX 系統,也是首先支援內建邏輯卷管理器(Logical Volume Manager)的系統之一。

如今,HP-UX 因為 HP 和 Veritas 的合作關係使用了 Veritas 作為主檔案系統。

HP-UX 目前的最新版本是 11iv3, update 4。

Solaris 系統

Sun 的 UNIX 版本是 Solaris,用來接替 1992 年建立的 SunOS。SunOS 一開始基於 BSD(伯克利軟體發行版(Berkeley Software Distribution))風格的 UNIX,但是 SunOS 5.0 版以及之後的版本都是基於重新包裝為 Solaris 的 Unix System V 第 4 版。

SunOS 1.0 版於 1983 年釋出,用於支援 Sun-1 和 Sun-2 平臺。隨後在 1985 年釋出了 2.0 版。在 1987 年,Sun 和 AT&T 宣佈合作一個專案以 SVR4 為基礎將 System V 和 BSD 合併成一個版本。

Solaris 2.4 是 Sun 釋出的第一個 Sparc/x86 版本。1994 年 11 月份釋出的 SunOS 4.1.4 版是最後一個版本。Solaris 7 是首個 64 位 Ultra Sparc 版本,加入了對檔案系統後設資料記錄的原生支援。

Solaris 9 釋出於 2002 年,支援 Linux 特性以及 Solaris 卷管理器(Solaris Volume Manager)。之後,2005 年釋出了 Solaris 10,帶來許多創新,比如支援 Solaris Containers,新的 ZFS 檔案系統,以及邏輯域(Logical Domains)。

目前 Solaris 最新的版本是 第 10 版,最後的更新釋出於 2008 年。

Linux

到了 1991 年,用來替代商業作業系統的自由(free)作業系統的需求日漸高漲。因此,Linus Torvalds 開始構建一個自由的作業系統,最終成為 Linux。Linux 最開始只有一些 “C” 檔案,並且使用了阻止商業發行的授權。Linux 是一個類 UNIX 系統但又不盡相同。

2015 年釋出了基於 GNU Public License (GPL)授權的 3.18 版。IBM 聲稱有超過 1800 萬行開原始碼開源給開發者。

如今 GNU Public License 是應用最廣泛的自由軟體授權方式。根據開源軟體原則,這份授權允許個人和企業自由分發、執行、通過拷貝共享、學習,以及修改軟體原始碼。

UNIX vs. Linux:技術概要

  • Linux 鼓勵多樣性,Linux 的開發人員來自各種背景,有更多不同經驗和意見。
  • Linux 比 UNIX 支援更多的平臺和架構。
  • UNIX 商業版本的開發人員針對特定目標平臺以及使用者設計他們的作業系統。
  • Linux 比 UNIX 有更好的安全性,更少受病毒或惡意軟體攻擊。截止到現在,Linux 上大約有 60-100 種病毒,但是沒有任何一種還在傳播。另一方面,UNIX 上大約有 85-120 種病毒,但是其中有一些還在傳播中。
  • 由於 UNIX 命令、工具和元素很少改變,甚至很多介面和命令列引數在後續 UNIX 版本中一直沿用。
  • 有些 Linux 開發專案以自願為基礎進行資助,比如 Debian。其他專案會維護一個和商業 Linux 的社群版,比如 SUSE 的 openSUSE 以及紅帽的 Fedora。
  • 傳統 UNIX 是縱向擴充套件,而另一方面 Linux 是橫向擴充套件。

相關文章