1. 程式人生 > >BSD各版本發展史

BSD各版本發展史

歷史

PDP-11開始

最初的Unix套件源自1970年代的貝爾實驗室作業系統中包含原始碼,這樣研究人員以及大學都可以參與修改擴充。1974年,第一個伯克利[1]Unix系統被安裝在PDP-11機器上,電腦科學系而後將其用作擴充套件研究。

其他大學開始對伯克利軟體感興趣,在1977年伯克利的研究生Bill Joy將程式整理到磁帶上,作為first Berkeley Software Distribution1BSD)發行。1BSD被作為第六版Unix系列,而不是單獨的作業系統。主要程式包括Pascal編譯器,以及Joyex行編輯器

Second Berkeley Software Distribution

2BSD)於1978年釋出,除了對1BSD中的軟體進行升級,還包括了Joy寫的兩個新程式:vi文字編輯器(ex可視版本),以及C Shell。這兩個新添的程式,在Unix系統中至今仍被使用。

2BSD以後的版本逐漸從PDP-11結構向VAX計算機移植。最新的2.11BSD1992年釋出,更新維護一直持續到2003年

VAX版本

1978年伯克利安裝了第一臺VAX 計算機,但將Unix移植到VAX構架的UNIX/32V,並沒有利用VAX 虛擬記憶體的能力。伯克利的學生重寫了32V的大部分核心,以實現虛擬記憶體的支援。1979年3BSD誕生了,這個新系統完整包括了一個新核心、從2BSD

移植到VAX的工具,還有32V原來的工具。

3BSD的成功使得Defense Advanced Research Projects Agency(DARPA,美國國防部高階研究規劃署)決定資助伯克利Computer Systems Research Group(CSRG,計算機系統研究組),以開發一個Unix標準平臺,以供DARPA未來的研究。1980年10月,CSRG釋出了4BSD,該版本對3BSD有許多改進。

相較於VAX機器的主流系統VMS,使用者對BSD時有批評,1981年6月,終於釋出了4.1BSDBill Joy大幅度提高了4.1BSD 核心的效能,可以跟VMS在多個平臺上媲美。為了避免與

AT&TUNIX System V(UNIX第五版)混淆,這個版本沒有取名為5BSD

以後4.2BSD歷經兩年,實現了多項重大改進後才得以問世。之前有三個中間版本相繼推出:4.1a引入了修改版的BBN預試中TCP/IP4.1b引入了由Marshall Kirk McKusick實現的新型Berkeley Fast File System(FFS);4.1c4.2BSD開發最後幾個月的過渡版。

BSD版本

1986年6月,4.3BSD釋出。該版本主要是將4.2BSD的許多新貢獻作效能上的提高,原來的4.1BSD沒有很好地協調。在該版本之前,BSD的TCP/IP實現已經跟BBN的官方實現有較大差異。經過數月測試後,DARPA認為4.2BSD更合適,所以在4.3BSD中作了保留。(參見en:History of the Internet

4.3BSD後,BSD逐漸拋開老式的VAX平臺。Computer Consoles有限公司開發的Power 6/32平臺(代號為"Tahoe"),當時看來大有可為,但不久即被他們的開發員所遺棄。然後,1988年6月移植的4.3BSD-Tahoe卻表現不俗,BSD將依賴於機器跟不依賴於機器的程式碼分離,為未來系統的可移植性打下了良好的基礎。

到此為止,所有的BSD版本混合了專屬的AT&T UNIX程式碼,這樣繼續使用就需要從AT&T獲得許可證。原始碼許可證當時非常地昂貴,幾個其他組織對單獨的網路程式碼版感興趣,完全獨立於AT&T,這樣就可不受許可證的支配。1989年6月,Networking Release 1Net/1)誕生了,沒有AT&T授權也能使用,可遵照BSD許可證進行自由再發布

1990年初,推出了4.3BSD-Reno。該版本是4.4BSD早期開發的過渡版,使用該版本被戲稱為是一種賭博,因為Reno就是內華達州的賭城雷諾

Net/2以及法律問題

Net/1以後,Keith Bostic提議,BSD系統中應該有更多的非AT&T部分,以Net/1的協議釋出。隨後,他開始一個專案,著手重新實現一些Unix標準工具,其中不使用原來的AT&T程式碼。例如,Vi,也就是基於最初UNIXed的編輯器,被重寫為nvi(new vi)。18個月後,所有AT&T的工具被替換,剩下的只是存留在核心的一些AT&T檔案。殘餘檔案被剔除後,1991年6月,Net/2誕生了,這是一個全新的作業系統,並且可以自由釋出。

BSDi很快就與AT&TUNIX Systems Laboratories(USL)附屬公司產生了法律糾紛,後者將擁有System V版權,以及UNIX商標1992年USL正式對BSDi提起訴訟,這導致Net/2釋出被中止,直到其原始碼能夠被鑑定為符合USL版權

由於最後判決懸而未決,這樁法律訴訟將BSD後裔的開發,特別是自由軟體,延遲了兩年,這導致沒有法律問題的Linux核心獲得了極大的支援。Linux386BSD的開發幾乎同時起步,林納斯·託瓦茲曾說,當時如果有基於386的自由Unix-like作業系統,他就可能不會創造Linux。儘管無法預料這給以後的軟體業究竟造成了什麼樣的影響,但有一點可以肯定,Linux更加豐富了這塊土壤。

4.4BSD及其後裔

這樁訴訟在1994年1月了結,更多地滿足了伯克利的利益。伯克利套件的18,000個檔案中,只有3個檔案要求刪除,另有70個檔案要求修改,並顯示USL版權說明。這項調解另外要求,USL不得對下面的4.4BSD提起訴訟,不管是使用者還是伯克利程式碼的分發者。

1994年6月,4.4BSD以兩種形式釋出:可自由再發布的4.4BSD-Lite,不包含AT&T 原始碼;另有4.4BSD-Encumbered,跟以前的版本一樣,遵照AT&T許可證

伯克利的最終版本是1995年4.4BSD-Lite Release 2,而後CSRG解散,在伯克利的BSD開發告一段落。在這之後,幾種基於4.4BSD的套件(比如FreeBSDOpenBSDNetBSD)得以繼續維護。

另外,由於BSD許可證的寬容,許多其他的作業系統,不管是自由還是專屬,都採用了BSD的程式碼。例如,Microsoft WindowsTCP/IP的實現上引入了BSD程式碼;經過重新編譯,在當前Windows版本中,還採用了許多BSD命令列下的網路工具。

技術

BSD開創了現代計算機的潮流。伯克利Unix率先包含了庫,以支援網際網路協議棧(Stack)、伯克利套接字(sockets)。通過將套接字與Unix作業系統的檔案描述符相整合,庫使用者通過計算機網路讀寫資料,跟直接在磁碟上操作一樣容易。AT&T實驗室最後也釋出了他們的STREAMS庫,在軟體棧中引入了類似的功能,雖然結構層有所改進,但由於套接字型檔已經使用廣泛,另外由於少了對開放套接字的輪詢功能(類似於伯克利庫中的select呼叫),使得將軟體移植到這個新的API很困難。

時至今日,BSD仍在學術機構,乃至許多商業或自由產品的高科技實驗中,繼續被用作試驗平臺,甚至在嵌入式裝置中,其使用也在增長。由於BSD設計出眾,程式碼編寫清晰,包括它的文件(特別是參考文件,常被稱為“man pages”),使得這樣的系統,幾乎成了程式設計師眼中的樂土。

許多公司都使用BSD衍生出的程式碼,如此便可以支援他們的智慧財產權,許多自由軟體,如LinuxGNU工程都遵照GNU General Public License,與之相比,BSD許可協議要更加靈活。當然,這也導致人們的機器上執行著一些BSD軟體,但自己卻並不知情。有興趣的話,可以試著找找符號“University of California, Berkeley”,比如在產品文件內,二進位制程式碼中的靜態資料段,或者ROM中,還有通過一些產品的使用者介面看看“about”(關於)內容。

有意思的是,通過一個二進位制相容層(compatibility layer),在BSD 作業系統上,可以執行相同構架下其他作業系統上的原程式。這比模擬器要快得多,通過這個方法,針對Linux的應用程式,也可以在BSD上全速執行。所以,BSD不僅適合作為伺服器,也可作為工作站來使用,眾所周知,現在針對Linux的商業或封閉原始碼軟體越來越多了。管理員也可以將一些原本只用於商業UNIX變種的專屬軟體,轉移到BSD,這樣在保持原有功能的同時,作業系統更趨現代,可繼續使用這些軟體,直到有更好的替代。

結末,當前的BSD 作業系統變種支援各種通用標準,包括IEEEANSIISO以及POSIX,同時保持了傳統BSD的良好風範。

BSD家族

當前衍生自BSDUnix類作業系統可應用於多種硬體構架。在政府機構中常能看到BSD的身影。

相關推薦

BSD版本發展史

歷史 PDP-11開始 最初的Unix套件源自1970年代的貝爾實驗室,作業系統中包含原始碼,這樣研究人員以及大學都可以參與修改擴充。1974年,第一個伯克利[1]的Unix系統被安裝在PDP-11機器上,電腦科學系而後將其用作擴充套件研究。 其他大學開始對伯克利的

Android發展史(Android版本特性-技術篇)

文章整理了Android 0.x,Android 1.x, Android 2.x,Android 3.x,Android 4.x,Android 5.x,Android 6.x相關技術更新的內容 之前已經整理了“Android發展史(知識篇)”,上次“知識篇

Android發展史(Android版本特性-知識篇)

文章整理了Android 0.x,Android 1.x, Android 2.x,Android 3.x,Android 4.x,Android 5.x,Android 6.x相關更新的內容 文章主要收集的是Android發展資訊和各版本特性,本文內容比較平

php版本的姿勢(2017-02-15更新)

目前 php5 com script arr use 今天 name val 今天被p師傅的黑魔法給震驚到啦,我一定是學了假php,仔細想想,其實對php版本更新並沒有在意多少,都是活在5.3那個版本,可現在都是7.0啦!另外的是在很多時候測試代碼的時候,也很依靠版本問題。

Visual Studio 2017版本安裝包離線下載、安裝全解析

pla 離線文件 win10 unit splay and 文件下載 python擴展 erl 轉自 寂靜·櫻花雨 Visual Studio 2017各版本安裝包離線下載、安裝全解析 感謝IT之家網友 寂靜·櫻花雨 的投稿 關於Visual

Visual Studio 版本下載

nbsp download unity vs2015 刪除 ssis 沒有 b- msd 文件名稱 文件大小 百度網盤下載 微軟官方下載 Visual Studio 2015 Enterprise - 企業版 - 簡體中文 3.89GB http://pan.ba

Visual Studio 2015 update 3版本下載地址

了解 dsc php post com static unit test label Visual Studio 2015 update 3各版本下載地址 標簽: VS2015update 3 2016-11-28 14:32 2899人閱讀 評論(0) 收藏 舉報

pfsense版本對應FreeBSD核心情況

pfsense freebsd 版本每個版本的pfSense都是基於特定的-RELEASE版本的FreeBSD。 下面的表列出了最近的pfSense版本以及基於它們的底層FreeBSD版本。原文地址:https://doc.pfsense.org/index.php/Versions_of_pfSense_a

Opencv版本的配置

配置指南 hot path uil cor iss detect 可執行 http OpenCV 2.49 + VS2012 配置指南首先下載 OpenCV2.4.9 源碼: 一. 配置系統環境變量 1. 將源碼解壓到指定目錄: 2. 將 opencv 添加到系統

3分鐘帶你了解PowerShell發展歷程——PowerShell版本資料整理

msdn 發展 mona ack html 工作 lease int -1 本文帶你了解PowerShell發展歷程,順便整理了一點資料,方便大家查詢。 Windows PowerShell? 是基於任務的命令行管理程序和腳本語言,專為進行系統管理而設計。 在 .NET F

Metasploit版本對比

滲透 kali 功能特性描述Metasploit FrameworkMetasploit CommunityMetasploit ExpressMetasploit ProPricingLicense無IP限制FreeFree收費收費用戶界面Web界面提供友好的web界面,大大提高效率,減少對技

Visual Studio版本工程文件之間的轉換

format ima lib 都是 使用 height 項目文件 技術 msd 由於VS版本比較多,低版本無法直接打開高版本的工程文件,通過對工程文件進行一些修改可以解決這些問題。 通過修改Solution文件和Project文件,可以使低版本轉換為高版本。 例如將VS20

Qt版本下載

-m brush div arc Language winrt -o details load http://blog.csdn.net/piaopiaolanghua/article/details/53153363 以上為源博客。 1、http://downloa

版本x86 / 64位MongoDB下載地址

.org x86 下載地址 ref god mon mongodb x86_64 inux 各版本x86 / 64位MongoDB下載地址: linux: http://dl.mongodb.org/dl/linux/x86_64 windows: http://dl.mo

MySQL版本的區別

targe 好的 基礎上 免安裝 lan 地址 doc mysql集群 com MySQL各版本的區別 文章出自:http://blog.sina.com.cn/s/blog_62b37bfe0101he5t.html 感謝作者的分享 MySQL 的官網下載地址:h

phpMyadmin版本漏洞

exp server aries reg pla door 概述 登錄 3.x 一: 影響版本:3.5.x < 3.5.8.1 and 4.0.0 < 4.0.0-rc3 ANYUN.ORG   概述:PhpMyAdmin存在PREGREPLACEEVAL

MySQL 4.1/5.0/5.1/5.5/5.6版本的主要區別

5.6 同步 一個表 bin ger err 各版本 擴展性 sed MySQL 4.1/5.0/5.1/5.5/5.6各版本的主要區別 一、5.0 增加了Stored procedures、Views、Cursors、Triggers、XA transactions的支持

QQ版本下載

qqWindows Version:QQ 8.9 版本http://dldir1.qq.com/qqfile/qq/QQ8.9/20026/QQ8.9.exehttp://dldir1.qq.com/qqfile/qq/QQ8.9/19990/QQ8.9.exehttp://dldir1.qq.com/qqf

chromedriver與chrome版本及下載地址

各版本 eas south 分享 right ref csdn google target 當時找chromedriver與chrome的的對應版本的好麻煩,如今整理下: chromedriver v2.31 支持的chrome版本V62 驅動的下載地址如下: htt

免費分享Navicat12版本破解(僅供學習使用)

到你 比較 各版本 安裝 學習 英文 找到 ges 方法 花了幾個小時終於找到比較“綠色”的安裝包了。。。(無力吐槽下現在網上好多掛羊頭賣狗肉的網站) https://pan.baidu.com/s/1geMIkfT 密碼:9a98 裏面有安裝教程,不過我沒看懂,自