BSD

伯克利软件套件（Berkeley Software Distribution，缩写：BSD；也被称为伯克利Unix或Berkeley Unix）是一个衍生自Unix（类Unix）的操作系统，1970年代由伯克利加州大学的学生比尔·乔伊开创，也被用来代表其衍生出的各种套件。
BSD许可证非常地宽松，因此BSD常被当作工作站级别的Unix系统，许多1980年代成立的计算机公司都从BSD中获益，比较著名的例子如DEC的，以及Sun公司的SunOS。 1990年代，BSD大幅度被System V 4.x版以及系统所取代，但其开源版本被用在网际网路的开发。

**历史**
Unix谱系

**PDP-11开始**
最初的Unix套件源自1970年代的贝尔实验室，操作系统中包含源码，这样研究人员以及大学都可以参与修改扩充。1974年，第一个伯克利NoteTag|若无特别说明，“伯克利”均指柏克莱加州大学。|name="Berkeley"的Unix系统被安装在PDP-11机器上，计算机科学系而后将其用作扩展研究。
其他大学开始对伯克利的软件感兴趣，在1977年，伯克利的研究生比尔·乔伊将程序整理到磁带上，作为First Berkeley Software Distribution（1BSD）发行。 1BSD被作为第六版Unix系列，而不是单独的操作系统。主要程序包括Pascal编译器，以及比尔·乔伊的ex行编辑器。
Second Berkeley Software Distribution（2BSD）于1978年发布，除了对1BSD中的软件进行升级，还包括了比尔·乔伊写的两个新程序：vi文本编辑器（ex的可视版本），以及C Shell。这两个新添的程序，在Unix系统中至今仍被使用。
2BSD以后的版本逐渐从PDP-11结构向VAX计算机移植。最新的2.11BSD于1992年发布，更新维护一直持续到2003年。

**VAX版本**
1978年，伯克利安装了第一台VAX计算机，但将Unix移植到VAX构架的UNIX/32V，并没有利用VAX虚拟内存的能力。伯克利的学生重写了32V的大部分内核，以实现虚拟内存的支持。1979年，3BSD诞生了，这个新系统完整包括了一个新内核、从2BSD移植到VAX的工具，还有32V原来的工具。
3BSD的成功使得美国国防高等研究计划署（DARPA）决定资助伯克利的计算机系统研究小组（CSRG），以开发一个Unix标准平台，供DARPA未来研究。1980年10月，该小组发布了4BSD，此版本对3BSD有许多改进。
相较于VAX机器的主流系统VMS，用户对BSD时有批评。1981年6月，4.1BSD发布，比尔·乔伊大幅度提高了该版本内核的性能，使之在多个平台上与VMS相媲美。为了避免与AT&T的UNIX System V（UNIX第五版）混淆，这个版本没有取名为5BSD。
4.2BSD历经两年后才得以问世，实现了多项重大改进。之前有三个中间版本相继推出：4.1a引入了BBN科技预试中的TCP/IP协议栈的修改版；4.1b引入了由马绍尔·克尔克·麦库锡克实现的新型文件系统（Berkeley Fast File System，FFS）；4.1c是4.2BSD开发最后几个月的过渡版。
1983年8月，4.2BSD正式发布。这是1982年比尔·乔伊离开小组、前去创建Sun公司后的第一个版本，自那时起马绍尔·克尔克·麦库锡克和Mike Karels和一直负责领导该项目。值得一提的是，这次BSD小恶魔正式出场，最初是马绍尔·克尔克·麦库锡克的画作，出现在打印好的文档封面上，由USENIX发行。

**BSD版本**
1986年6月，4.3BSD发布。该版本主要是将4.2BSD的许多新贡献作性能上的提高，原来的4.1BSD没有很好地协调。在该版本之前，BSD的TCP/IP实现已经跟BBN的官方实现有较大差异。经过数月测试后，DARPA认为4.2BSD更合适，所以在4.3BSD中作了保留。 （参见互联网历史）
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 1（Net/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，也就是基于最初Unix上ed的编辑器，被重写为nvi（new vi）。 18个月后，所有AT&T的工具被替换，剩下的只是存留在内核的一些AT&T文件。残余文件被剔除后，1991年6月，Net/2诞生了，这是一个全新的操作系统，并且可以自由发布。
Net/2成为Intel 80386构架上两种移植版的主要组成部分，包括由威廉·乔利茨负责，自由的386BSD；以及专属的BSD/OS，由Berkeley Software Design（BSDi）负责。386BSD本身虽然短命，但在不久之后成为了NetBSD和FreeBSD原始代码的基础。
BSDi很快就与AT&T的Unix系统实验室（Unix System Laboratories，USL）附属公司产生了法律纠纷，后者将拥有System V版权，以及Unix商标。 1992年，USL正式对BSDi提起诉讼，这导致Net/2发布被中止，直到其源码能够被鉴定为符合USL的版权。
由于最后判决悬而未决，这桩法律诉讼将BSD后裔，特别是自由软件后裔的开发，延迟了两年，这导致没有法律问题的Linux内核获得了极大的支持。Linux跟386BSD的开发几乎同时起步，其作者林纳斯·托瓦兹曾说，当时如果有基于80386平台的自由类Unix操作系统，他就可能不会创造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的套件（比如FreeBSD、OpenBSD和NetBSD）得以继续维护。
另外，由于BSD许可证的宽容，许多其他的操作系统，不管是自由还是专属，都采用了BSD的代码。例如，Microsoft Windows在TCP/IP的实现上引入了BSD代码；经过重新编译，在当前Windows版本中，还采用了许多BSD命令行下的网络工具。

**技术**
BSD率先包含了支持互联网协议栈（Stack）、伯克利套接字（sockets）的函数库。通过将套接字与Unix操作系统的文件描述符相整合，库用户通过计算机网络读写数据，跟直接在磁盘上操作一样容易。AT&T最后也发布了他们的STREAMS库，在软件栈中引入类似的功能，虽然结构层有所改进，但此时套接字库已经广泛使用。由于STREAMS少了对开放套接字的轮询功能（类似于伯克利库中的select调用），使得将软件移植到这个新的API很困难。
时至今日，BSD仍在学术机构，乃至许多商业或自由产品的高科技实验中，继续被用作试验平台，甚至在嵌入式设备中，其使用也在增长。由于BSD设计出众，代码编写清晰，包括它的文档（特别是参考文档，常被称为“man pages”），使得这样的系统，几乎成为程序员眼中的乐土。
许多公司都使用BSD衍生出的代码，如此便可以支持他们的知识产权。许多自由软件，如Linux、GNU工程都遵照GNU GPL协议，与之相比，BSD许可协议要更加灵活。当然，这也导致人们的机器上运行着一些BSD软件，但自己却并不知情。有兴趣的话，可以试着找找符号“University of California, Berkeley”，比如在产品文档内，二进制代码中的静态数据段，或者ROM中，还有通过一些产品的用户界面看看“about”（关于）内容。
有意思的是，通过一个二进制兼容层（compatibility layer），在BSD操作系统上，可以运行相同构架下其他操作系统上的原程序。这比模拟器要快得多，通过这个方法，针对Linux的应用程序，也可以在BSD上全速运行。所以，BSD不仅适合作为服务器，也可作为工作站来使用，众所周知，现在针对Linux的商业或封闭源码软件越来越多。管理员也可以将一些原本只用于商业Unix变种的专属软件，转移到BSD，这样在保持原有功能的同时，操作系统更趋现代，可继续使用这些软件，直到有更好的替代。
结末，当前的BSD操作系统变种支持各种通用标准，包括IEEE、ANSI、ISO以及POSIX，同时保持传统BSD的良好风范。

**BSD家族**
当前衍生自BSD的类Unix操作系统可应用于多种硬件构架。- BSD/OS（已倒闭）- FreeBSD
**Debian GNU/kFreeBSD
**DragonFly BSD，一个由FreeBSD 4-STABLE分支出来的项目
***FireflyBSD
**DesktopBSD
**TrueOS
***GhostBSD
**PicoBSD，为在单张1.44MB软盘执行而设计的FreeBSD精简版本
**TrustedBSD，非操作系统，而是为FreeBSD和Darwin构件扩展的一个项目
**ClosedBSD
** pfSensedate=20051017062102 
**FreeNAS，一个基于FreeBSD的轻量级NAS伺服器
**FreeSBIE项目，提供FreeBSD各个发行版本的Live CD，类似于基于Linux的Knoppix项目
**Frenzy LiveCD，基于FreeBSD的Live CD项目，主要针对俄语用户
**BSDeviant，一个FreeBSD的Live CD项目，产生可以存在一张迷你CD-R上的系统
**m0n0wall是一个基于FreeBSD的防火墙项目- NetBSD
**Debian GNU/NetBSD
**OpenBSD
***ekkoBSD（已倒闭）
***MicroBSD
***MirOS BSD-  HPBSDdate=20130124181659 （已倒闭）- RedBSD：嵌入式系统镜像，使用BSD和Ruby内核

**结构**
跟AT&T Unix一样，BSD也采用单内核，这意味着内核中的设备驱动，在核心态下运行，从而作为操作系统的核心部分。 BSD的早期版本被用作组建Sun公司的SunOS，造就了Unix 工作站的第一波热潮。

**注释**

**参考文献**

**外部连结**
 BSD.org组织date=20170609094741 - DragonFlyBSD官方网站date=20070323005959 - FreeBSD官方网站date=20070622031611 - NetBSD官方网站date=20200916235442 - OpenBSD官方网站date=20020528015317 - BSD认证小组date=20050317162316 - BSD以及UNIX研究年谱date=20130717044821 - UNIX和BSD的历史（图表描述）date=20101222081215 - Google对BSD Unix的搜索专页- 拉脱维亚的第一个BSD用户组date=20170710133838 

**延伸阅读**
 Marshall Kirk McKusick， 《Open Sources: Voices from the Open Source RevolutionOpenSources》date=20051004003740 （影印版）- 伯克利Unix二十年——从AT&T独有，到可自由发布 《 Twenty Years of Berkeley Unix - From AT&T-Owned to Freely Redistributabledate=20050914050905 》（O'Reilly & Associates ，2003年，ISBN 7-302-06591-8

**参见**
 Bill Joy- Marshall Kirk McKusick- Keith Bostic- 386BSD- bug.lv- BSD许可证- Lumina 桌面环境- BSD小恶魔