初识BSD

1 篇文章 0 订阅

BSD

维基百科,自由的百科全书

BSDBerkeley Software Distribution,伯克利软件套件)是Unix的衍生系统,1970年代伯克利加州大学开创。BSD用来代表由此派生出的各种套件集合。

BSD 常被当作工作站级别的 Unix 系统,这得归功于 BSD 执照非常地宽松,许多1980年代成立的计算机公司,不少都从BSD 中获益,比较著名的例子如 DECUltrix,以及 Sun 公司SunOS1990年代BSD 很大程度上被System V 4.x版以及 OSF/1 系统所取代,但其开源版本被采用,促进了因特网的开发。


Unix家谱
Unix家谱

[编辑]历史

[编辑]PDP-11开始

最初的 Unix 套件源自1970年代的贝尔实验室操作系统中包含源码,这样研究人员以及大学都可以参与修改扩充。1974年,第一个伯克利[1]Unix 系统被安装在 PDP-11 机器上,计算机科学系而后将其用作扩展研究。

其他大学开始对伯克利软件感兴趣,在1977年伯克利的研究生 Bill Joy 将程序整理到磁带上,作为 first Berkeley Software Distribution1BSD)发行。1BSD 被作为第六版 Unix 系列,而不是单独的操作系统。主要程序包括Pascal编译器,以及Joyex行编辑器

Second Berkeley Software Distribution2BSD)于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 开发最后几个月的过渡版。

1983年8月4.2BSD 正式发布。这是 1982年 Bill Joy 离开前去创建 Sun 公司后的第一个版本,此后 Mike KarelsMarshall Kirk McKusick 一直负责领导该项目。值得一提的是,这次 BSD小惡魔正式出场,最初是 Marshall Kirk McKusick 的画作,出现在打印好的文档封面上,由 USENIX 发行。

[编辑]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 诞生了,这是一个全新的操作系统,并且可以自由发布。

Net/2 成为 Intel 80386 构架上两种移植的主要组成,包括由 William Jolitz 负责,自由的 386BSD;以及专属的BSD/OS,由Berkeley Software Design(BSDi)负责。386BSD 本身虽然短命,但不久即成为 NetBSDFreeBSD 原始代码的基础。

BSDi 很快就与 AT&TUNIX Systems Laboratories(USL)附属公司产生了法律纠纷,后者将拥有System V版权,以及UNIX商标1992年USL 正式对 BSDi 提起诉讼,这导致 Net/2 发布被中止,直到其源码能够被鉴定为符合 USL版权

由于最后判决悬而未决,这桩法律诉讼将 BSD 后裔的开发,特别是自由软件,延迟了两年,这导致没有法律问题的 Linux 内核获得了极大的支持。Linux386BSD 的开发几乎同时起步,林納斯·托瓦茲曾说,当时如果有自由的Unix-like操作系统,基于 386 的,他就可能不会创造 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 家族

不同的 BSD操作系统针对不同的用途及用户,可应用于多种硬件构架。在政府机构中常能看到 BSD 的身影。虽然下面的 BSD 功能可能并非独有,但每种 BSD 在各自的领域,都逐渐具有了良好声誉,有的专注于性能,有的则以安全见长。

必须注意的是,上面所罗列的,更多地是基于感性认识,并针对其开发焦点,并没有严格地比较规则。实际而言,每种具体的 BSD 都可担当许多角色任务。

[编辑]结构

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

[编辑]谣言

BSD 受到网络一些使用者的负面評價,其中最著名的是声称 BSD 正在死亡:有人甚至断言,BSD 将自己把自己压垮。某些人将FreeBSD 主要开发员的离去,当作其佐证。內容與事實似乎相違。

[编辑]BSD的子孙们

当前衍生自BSD的Unix类操作系统:

[编辑]注脚

  1. ^ 没有特别说明的话,伯克利,均指伯克利加州大學

[编辑]参见

[编辑]外部链接

[编辑]延伸阅读

类Unix操作系统

A/UXAIXBSDDragonFly BSDFreeBSDGNUHP-UXIRIXLinuxLynxOSMac OS XMinixNetBSDNEXTSTEPOpenBSDQNXSCO OpenServerSolarisSystem VTru64Xenix更多…

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值