BSD

title: 历史.
title: PDP-11开始.
content: 最初的Unix套件源自1970年代的贝尔实验室,操作系统中包含源码,这样研究人员以及大学都可以参与修改扩充。1974年,第一个伯克利的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年。
title: VAX版本.
content: 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发行。
title: BSD版本.
content: 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就是内华达州的赌城雷诺。
title: Net/2以及法律问题.
content: 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构架上两种移植版的主要组成部分,包括由William Jolitz负责,自由的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更加丰富了这块土壤。
title: 4.4BSD及其后裔.
content: 这桩诉讼在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命令行下的网络工具。
title: 技术.
content: 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的良好风范。
title: BSD家族.
content: 当前衍生自BSD的类Unix操作系统可应用于多种硬件构架。
title: 结构.
content: 跟AT&T Unix一样,BSD也采用单内核,这意味着内核中的设备驱动,在核心态下运行,从而作为操作系统的核心部分。 BSD的早期版本被用作组建Sun公司的SunOS,造就了Unix 工作站的第一波热潮。

Summary: 伯克利软件套件(,缩写:BSD;也被称为伯克利Unix或英语:Berkeley Unix)是一个衍生自Unix(类Unix)的操作系统,1970年代由伯克利加州大学的学生比尔·乔伊开创,也被用来代表其衍生出的各种套件。

Berkeley Software Distribution: The Berkeley Software Distribution (BSD) was an operating system based on Research Unix, developed and distributed by the Computer Systems Research Group (CSRG) at the University of California, Berkeley. Today, "BSD" often refers to its descendants, such as FreeBSD, OpenBSD, NetBSD, or DragonFly BSD, and systems based on those descendants.