幽灵

幽灵的博客

他的个人主页  他的博客

BSD all

幽灵  2009年08月13日 星期四 09:57 | 1964次浏览 | 0条评论

BSD all

历史

[编辑] PDP-11开始

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

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

Second Berkeley Software Distribution(2BSD)于1978年发布,除了对 1BSD 中的软件进行升级,还包括了 Joy 写的两个新程序: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 的成功使得 Defense Advanced Research Projects Agency(DARPA,美国国防部高级研究规划署)决定资助伯克利的Computer Systems Research Group(CSRG,计算机系统研究组),以开发一个 Unix 标准平台,以供 DARPA 未来的研究。1980年10月,CSRG 发布了 4BSD,该版本对 3BSD 有许多改进。

相较于 VAX 机器的主流系统 VMS,用户对 BSD 时有批评,1981年6月,终于发布了 4.1BSD 。Bill Joy 大幅度提高了 4.1BSD 内核的性能,可以跟 VMS 在多个平台上媲美。为了避免与 AT&T 的 UNIX System V(UNIX第五版)混淆,这个版本没有取名为 5BSD。

以后 4.2BSD 历经两年,实现了多项重大改进后才得以问世。之前有三个中间版本相继推出:4.1a 引入了修改版的 BBN 预试中 TCP/IP;4.1b 引入了由Marshall Kirk McKusick 实现的新型 Berkeley Fast File System(FFS);4.1c 是 4.2BSD 开发最后几个月的过渡版。

1983年8月,4.2BSD 正式发布。这是 1982年 Bill Joy 离开前去创建 Sun 公司后的第一个版本,此后 Mike Karels 和Marshall 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 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 构架上两种移植的主要组成,包括由 William Jolitz 负责,自由的 386BSD;以及专属的BSD/OS,由Berkeley Software Design(BSDi)负责。386BSD 本身虽然短命,但不久即成为 NetBSD 和 FreeBSD 原始代码的基础。

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

由于最后判决悬而未决,这桩法律诉讼将 BSD 后裔的开发,特别是自由软件,延迟了两年,这导致没有法律问题的 Linux 内核获得了极大的支持。Linux 跟 386BSD 的开发几乎同时起步,林纳斯·托瓦兹曾说,当时如果有自由的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 的套件(比如 FreeBSD、OpenBSD 和 NetBSD)得以继续维护。

另外,由于 BSD许可证的宽容,许多其他的操作系统,不管是自由还是专属,都采用了 BSD 的代码。例如,Microsoft Windows在 TCP/IP 的实现上引入了 BSD 代码;经过重新编译,在当前 Windows 版本中,还采用了许多BSD命令行下的网络工具。

[编辑] 技术

BSD 开创了现代计算机的潮流。伯克利的 Unix 率先包含了库,以支持互联网协议栈(Stack)、伯克利套接字(sockets)。通过将套接字与Unix操作系统的文件描述符相整合,库用户通过计算机网络读写数据,跟直接在磁盘上操作一样容易。AT&T 实验室最后也发布了他们的 STREAMS 库,在软件栈中引入了类似的功能,虽然结构层有所改进,但由于套接字库已经使用广泛,另外由于少了对开放套接字的轮询功能(类似于伯克利库中的select调用),使得将软件移植到这个新的API很困难。

时至今日,BSD 仍在学术机构,乃至许多商业或自由产品的高科技实验中,继续被用作试验平台,甚至在嵌入式设备中,其使用也在增长。由于 BSD 设计出众,代码编写清晰,包括它的文档(特别是参考文档,常被称为“man pages”),使得这样的系统,几乎成了程序员眼中的乐土。

许多公司都使用 BSD 衍生出的代码,如此便可以支持他们的知识产权,许多自由软件,如 Linux、GNU 工程都遵照 GNU General Public License,与之相比,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 操作系统针对不同的用途及用户,可应用于多种硬件构架。在政府机构中常能看到 BSD 的身影。虽然下面的 BSD 功能可能并非独有,但每种 BSD 在各自的领域,都逐渐具有了良好声誉,有的专注于性能,有的则以安全见长。

    * FreeBSD在 BSD 家族中以易用性与高性能而著称,由于主要用作微处理器架构,如i386、AMD's 64-bit i386 扩展(AMD64),所以 FreeBSD 非常关注众多处理器。FreeBSD在 x86 和 AMD64 服务器上,运行得非常好,当然,它也可以在其他硬件构架上运行。
    * NetBSD 拥有出色的可移植性,能在多达54种平台上运行,小到嵌入式的掌上设备,大到服务器群,NetBSD 甚至还在国际空间站中服务。
    * OpenBSD 在密码学和安全方面特别出众,可移植性也很好,但是略逊于 NetBSD。安全功能如 OpenSSH,是由 OpenBSD 率先开创的。以 OpenBSD 作为严格与高度安全的机器运行,普遍的受到好评。
    * DragonflyBSD 是一个由 FreeBSD 4-STABLE 分支出来的项目,重点在于轻量级而高效能的线程、多处理支持以及其它用户工具、第三方软件管理系统的改进。它同时是最年轻的 BSD 。提供比 FreeBSD 更优秀的对称多处理机系统,并使内核直接支持SSI集群,以取得更好的计算效果。这个项目在此方向上,才开始数年,主要关注 x86 平台。

    * Darwin是苹果公司的项目、Mac OS X的基础,很大程度上使用 FreeBSD 的代码和工具

    * FreeSBIE 项目提供 FreeBSD各个发行版本的 live CD,类似于基于Linux的Knoppix项目
    * Frenzy 是另一个基于 FreeBSD 的 live CD 项目,主要针对俄语用户。启动中按“e”才是英文版界面
    * BSDeviant 是一个 FreeBSD 的 live CD 项目,目的在于产生可以存在一张迷你CD-R上的系统
    * PicoBSD 为了在单张 1.44MB磁片 执行而设计的 FreeBSD 精简版本
    * m0n0wall 是一个基于 FreeBSD 的防火墙项目
    * FreeNAS 是一个基于 FreeBSD 的 NAS 轻量级服务器
    * PC-BSD 为桌面/个人环境设计的 BSD 分支
    * relaxBSD 为桌面/个人环境设计的 BSD分支,由华人开发,注重中文环境
    * RedBSD 嵌入式的影像,使用BSD和Ruby内核

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

[编辑] 结构

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

[编辑] 谣言

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

[编辑] BSD的子孙们

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

    * BSD/OS(已倒闭)
    * FreeBSD
          o DragonFly BSD
                + FireFlyBSD
          o Freesbie(live CD版,光盘自启动版)
          o DesktopBSD(采用Userland/Kernel,与FreeBSD同步)
          o PC-BSD(采用Userland/Kernel,与FreeBSD同步)
          o PicoBSD
          o TrustedBSD -(非操作系统,而是为FreeBSD和Darwin构件扩展的一个项目)
          o ClosedBSD
          o pfSense
          o m0n0wall
          o FreeNAS
    * NetBSD
          o OpenBSD
                + ekkoBSD(已倒闭)
                + MicroBSD
                + MirOS BSD
    * NeXTSTEP
          o OpenStep(已被Mac OS X和Mac OS X Server取代)
    * Darwin(Mac OS X的核心, 由FreeBSD 4.5和NeXTSTEP混合派生)
          o Mac OS X
    * HPBSD(已倒闭)

评论

我的评论:

发表评论

请 登录 后发表评论。还没有在Zeuux哲思注册吗?现在 注册 !

暂时没有评论

Zeuux © 2024

京ICP备05028076号