一、前言
作為一個Linuxer,對unix感興趣是順理成章的事情,對unix的了解反過來也可以促進對GNU/Linux的理解。不過在接觸unix的過程中,大家一般都會有下面的疑問:
1、unix這個商標是屬于哪一個公司或者機構?
2、為何unix有那么多的變種?為何各個公司都有自己的unix,例如IBM的AIX(Advanced Interactive eXecutive)操作系統、SUN公司的Solaris操作系統、HP公司的HP-UX操作系統。
3、Linux和unix的關系為何?
……
本文和技術無關,主要想整理一些Unix的歷史和Linux的演化
二、Unix的誕生
1969年的8月份,在老婆帶著孩子回娘家后,AT&T公司Bell實驗室的宅男程序員Ken Thompson花費了一個月的時間,使用匯編語言開發了第一個版本的unix,并將它運行在DEC公司的PDP-7的小型機上。這樣的成果當然不是憑空產生,Thompson 和Dennis Ritchie作為Bell實驗室的代表,參與了MULTICS項目。該項目是一個MIT、GE和Bell實驗室的聯合項目,旨在提供一個時分操作系統。在Bell實驗室退出該項目后,Thompson變得無所事事(特別是老婆孩子又不在身邊),反正閑著也是閑著,于是寫出了第一個版本的unix。
unix這個名字源自MULTICS(Multiplexed Information and Computing Service),Thompson認為MULTICS是一個overdesigned and overbuilt and over everything的操作系統,他本人認為優秀的操作系統的特點應該是簡單、優雅和易用。在這樣的思路指引下,這個簡介的OS被命名為Unics (Uniplexed Information and Computing Service),后續被修正為unix。
當然,一個人的力量是有限的,Thompson以及他的同事都加入了這個unix操作系統的開發。特別是在Dennis Ritchie發明了c語言之后,unix用c語言重寫一遍。雖然當時已經存在了FORTRAN和COBOL這樣的高級語言,但并不適合開發unix操作系統。c語言的發明是和unix相關的,開發unix需要一個適合unix kernel及其系統軟件的高級語言工具,沒有適合的工具,unix開發團隊只能自己創造。在Thompson 和Dennis Ritchie的帶領下,unix開發團隊在1969到1979年之間release了若干用數字標識的版本。First Edition,Second Edition……Seventh Edition。本來,unix這點事都是AT&T公司內部的事,不過1974年,Dennis Ritchie和Thompson在CACM上發表了論文:The UNIX Time-Sharing System,這一下子,unix成了盡人皆知的秘密了。
本來,AT&T公司成立Bell實驗室進行一些前瞻性的研究,最終當然是想轉化為產品,對于Unix也不例外。然而,在當時,AT&T公司和美國政府簽署了美國電話業務的專營協議,該協議規定AT&T不能從事軟件銷售業務,也就是說,AT&T公司不能把Unix當作一個產品來銷售。因此,從Sixth Edition開始,AT&T將unix分發給美國的大學(當然,也收取了distribution fee),這些分發給大學的發布包里面包含了文檔和unix kernel的source code。
三、BSD和System V
Thompson 在1975/1976學年來到了加州伯克利分校做客座教授,并且帶了些研究生一起繼續進行Unix的后續開發,在伯克利,很多新的特性加入到了unix操作系統中,并發布了一些早期的BSD版本。這些BSD版本引起了Defense Advanced Research Projects Agency‘s (DARPA) 的關注,在DARPA的支持下,伯克利的Computer Systems Research Group (CSRG)負責開發 一個標準的unix平臺,主要用于DARPA未來的各種研究。BSD (Berkeley Software Distribution)是由加州大學伯克利分?;贏T&T的unix發布包進行二次開發和發布的。BSD為unix帶來了很多的新的特性,特別是1983年發布的4.2版本的BSD,該版本實現了TCP/IP協議棧。
與此同時,美國司法部依據《反托拉斯法》對AT&T公司進行拆分。拆分之后,分離出來的公司可以對Unix進行商業化運作,這個從AT&T分離出來的公司就是AT&T USG(Unix Support Group)。USG在1982年release了System III。1983年,Computer Research Group (CRG), UNIX System Group (USG) 連同一起第三方組織成立了UNIX System Development Lab,并發布了System V的第一個版本。1989年System V發布了最后一個版本SVR4。
這樣,各大商業計算機制造公司在為自己的硬件平臺撰寫操作系統的時候就有兩種選擇,一種是購買商業版本的System V并進行二次開發,另外一種是使用BSD版本的unix進行開發。使用BSD版本進行開發對商業公司是有風險的,因為BSD中包括了AT&T的source code。大部分商業公司選擇了前者,也就是基于system V進行開發。例如Sun公司的Sun OS是基于BSD的,隨后,Sun公司的OS更名為Solaris,Solaris是基于System V的。IBM的AIX和HP的HP-UX都是基于System V的(AIX雖然是base system V的,但是也引入了4.2和4.3 BSD的source code,其實即便是System V,也會引入一些BSD的特性或者source code)。值得一提的是1980年,Microsoft也從AT&T獲得了unix的授權,并發展了Xenix操作系統。后來SCO公司收購了Xenix并更名為SCO unix。
四、unix的版權之爭
和AT&T的System V分支不同,BSD版本不是那么focus在商業化Unix上。BSD由大學發布,主要是用于學術研究,希望可以以free software的形式發布。但是,4.3版本以及之前的BSD 中都包括了AT&T的unix code,毫無疑問,這些code應該服從AT&T的license。1991年,CSRG發布了BSD Net/2。它的發布就是為了解決這個問題。在BSD Net/2中,所有AT&T的unix code都被替換或者重寫,因此,BSD Net/2是使用BSD license發布的。90年代初,基于Intel公司的CPU的個人PC已經開始流行,386/BSD項目就是將BSD Net/2 porting到386處理器上的一個項目。1992年,386/BSD發布了Version 0.1,之后項目組成員對項目的后續發展產生了分歧,因此386BSD項目分裂成兩個項目,freeBSD和NetBSD。freeBSD focus在386平臺,主要是修復bug,提高性能。而NetBSD主要想支持更多的硬件平臺。openBSD是從NetBSD項目分裂出來的,該項目主要關注系統安全。
沒有利益的沖突,也就不會有unix的版權之爭了。1991年,CSRG的一些成員開了一家公司,名字是Berkeley Software Design, Inc (BSDI),BSDI旨在為Intel平臺提供商業版本的BSD unix。BSDI販賣的OS非常便宜,侵犯了USL的利益,1992年,USL將BSDI告上法庭。1994年,USL(這時候USL已經屬于Novell公司而非AT&T)和BSDI達成和解:伯克利大學從Net/2 release 的18000個文件中移除3個文件,對一些文件進行簡單修改,在70個文件中增加USL的copyright,在這些條件下,伯克利大學可以繼續自由發布。而USL也不會對作出上述修改的軟件及其派生軟件進行任何權利的追述。1994年,4.4BSD-Lite發布,那些原來BSD Net/2 base的項目都使用了4.4BSD-Lite的源代碼,也就不存在版權問題了。
五、結束語
今天,由于GNU/linux的迅猛發展,Unix的前途似乎一片黯淡。Novell從AT&T手中購買了UNIX 但卻交給X/open管理,自己則發展了一套命名為UNIXWave 的操作系統。后來unix幾經轉手,目前屬于誰已經不是那么重要了,重要的是,這個在40年前設計的操作系統,其思想在現在仍然閃爍著智慧的光芒。正是由于BSD忙于應付官司而給了linux kernel機會,否則,如果在386有非常優秀的BSD系統的話,Torvalds也許就不會創建linux kernel這個項目。時光飛逝,任何產品,任何公司,任何英雄都是浮浮沉沉,唯有思想存留。作為linuxer,希望能夠采頡linux kernel的光芒,分享給大家,一起享受軟件的樂趣。
編輯:hfy
-
Linux
+關注
關注
87文章
11513瀏覽量
213935 -
UNIX
+關注
關注
0文章
296瀏覽量
42349
發布評論請先 登錄
Linux和Unix有哪些不同之處?
The Linux Programming Interface - A Linux and UNIX System Programming Handbook
unix和linux的區別

Linux 與 Unix的區別
Linux與UNIX到底有關系和區別
linux和unix有什么區別
Linux的發展歷史和Linux與Unix有怎么樣的關系
UNIX與Linux有什么區別聯系
軟件演化歷史的逆向工程生成方案綜述

評論