http://zh.wikipedia.org/zh-cn/BSD

本文介绍的是一个操作系统。关于一种软件授权许可证,详见“ BSD许可证”。

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

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

Unix 谱系

目录

[隐藏]

  • 1 历史

    • 1.1 PDP-11开始
    • 1.2 VAX版本
    • 1.3 BSD版本
    • 1.4 Net/2以及法律问题
    • 1.5 4.4BSD及其后裔
  • 2 技术
  • 3 BSD家族
  • 4 结构
  • 5 谣言
  • 6 注释
  • 7 参见
  • 8 外部链接
  • 9 延伸阅读

[编辑] 历史

[编辑] PDP-11开始

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

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

Second Berkeley Software Distribution2BSD)于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.1c4.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 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,也就是基于最初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的开发几乎同时起步,林纳斯·托瓦兹曾说,当时如果有基于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的套件(比如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的Unix类操作系统可应用于多种硬件构架。在政府机构中常能看到BSD的身影[来源请求]

  • BSD/OS(已倒闭)
  • FreeBSD
    • DragonFly BSD,一个由FreeBSD 4-STABLE分支出来的项目

      • FireFlyBSD
    • Freesbie(live CD版,光盘自启动版)
    • DesktopBSD(采用Userland/Kernel,与FreeBSD同步)
    • PC-BSD(采用Userland/Kernel,与FreeBSD同步)
    • PicoBSD,为在单张1.44MB磁片执行而设计的FreeBSD精简版本
    • TrustedBSD -(非操作系统,而是为FreeBSD和Darwin构件扩展的一个项目)
    • ClosedBSD
    • pfSense
    • m0n0wall
    • FreeNAS,一个基于FreeBSD的NAS轻量级服务器
    • FreeSBIE项目,提供FreeBSD各个发行版本的live CD,类似于基于Linux的Knoppix项目
    • Frenzy,基于FreeBSD的live CD项目,主要针对俄语用户
    • BSDeviant,一个FreeBSD的live CD项目,产生可以存在一张迷你CD-R上的系统
    • m0n0wall是一个基于FreeBSD的防火墙项目
  • NetBSD
    • OpenBSD

      • ekkoBSD(已倒闭)
      • MicroBSD
      • MirOS BSD
  • NeXTSTEP
    • OpenStep(已被Mac OS X和Mac OS X Server取代)
  • Darwin,很大程度上使用FreeBSD的代码和工具[来源请求](Mac OS X的核心, 由FreeBSD 4.5和NeXTSTEP混合派生)
    • Mac OS X
  • HPBSD(已倒闭)
  • relaxBSD为桌面/个人环境设计的BSD分支,由华人开发,注重中文环境
  • RedBSD嵌入式的影像,使用BSDRuby内核

[编辑] 结构

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

[编辑] 谣言

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

[编辑] 注释

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

[编辑] 参见

  • Bill Joy
  • Marshall Kirk McKusick
  • Keith Bostic
  • 386BSD
  • bug.lv
  • BSD许可证

[编辑] 外部链接

  • BSD.org组织
  • DragonFlyBSD官方网站
  • FreeBSD官方网站
  • NetBSD官方网站
  • OpenBSD官方网站
  • BSD认证小组
  • BSD以及UNIX研究年谱
  • UNIX和BSD的历史(图表描述)
  • Google对BSD Unix的搜索专页
  • 拉脱维亚的第一个BSD用户组

[编辑] 延伸阅读

  • Marshall Kirk McKusick,《Open Sources: Voices from the Open Source RevolutionOpenSources》(影印版)·Twenty Years of Berkeley Unix - From AT&T-Owned to Freely Redistributable(伯克利Unix二十年——从AT&T独有,到可自由发布),O'Reilly & Associates,2003年,ISBN 7-302-06591-8

BSD维基百科,自由的百科全书相关推荐

  1. 维基百科,全世界的百科全书—Jimmy Wales

    1999年10月20日价值1250美元的32卷本<大英百科全书>全部上网,供人们免费查询与下载.这在当年是轰动一时的新闻.于是,Jimmy Wales(吉米?威尔士)诞生了建立一个真正&q ...

  2. 维基百科客户端android,维基百科 | F-Droid - Free and Open Source Android App Repository

    维基百科 自由在线百科全书的功能丰富的官方查看器 Android 版维基百科官方应用程序可用于查找,发现和浏览维基百科上的信息与知识.通过该应用,您可以快速搜索各种条目,阅读专题文章和图片,还有推荐和 ...

  3. android 印度语_为什么发展印度语维基百科至关重要

    android 印度语 1月15日,免费的在线百科全书Wikipedia庆祝成立15周年,用290多种语言撰写了3600万篇文章,达到了这个里程碑(仅英语Wikipedia便突破了500万篇文章标记 ...

  4. 【历史上的今天】10 月 24 日:1024 程序员节;中文维基百科上线;苹果发布 iPad mini

    整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来. 今天是 2021 年 10 月 24 日,大概在 2014 - 2015 年间,中国互联网兴起了一个全新的概念:10 月 ...

  5. 维基百科怎么做创建词条?如何创建维基百科?海外营销_一秒推媒体平台

    做品牌出海推广的朋友都会知道维基百科,它在世界互联网领域的地位,就像百度百科在中国的 地位一样.因此,除了海外新闻稿.谷歌雅虎和其他SEO外,非常重要的网络推广是维基百科了. Wiki这个词来源于夏威 ...

  6. PyQt - 维基百科,自由的百科全书

    PyQt - 维基百科,自由的百科全书 PyQt 维基百科,自由的百科全书 跳转至: 导航. 搜索 PyQt 開發者 Riverbank Computing 穩定版本 4.9.5/ 2012年9月29 ...

  7. 向量空间模型 - 维基百科,自由的百科全书

    向量空间模型 - 维基百科,自由的百科全书 向量空间模型 - 维基百科,自由的百科全书 向量空间模型 维基百科,自由的百科全书 跳转到: 导航, 搜索 向量空间模型 (或者 词组向量模型) 作为向量的 ...

  8. typedef - 维基百科,自由的百科全书

    typedef - 维基百科,自由的百科全书 typedef - 维基百科,自由的百科全书 typedef 维基百科,自由的百科全书 跳转到: 导航, 搜索 在C和C++程式語言中,typedef是一 ...

  9. 探戈 - 维基百科,自由的百科全书

    探戈 - 维基百科,自由的百科全书 探戈 - 维基百科,自由的百科全书 探戈[编辑] 维基百科,自由的百科全书 跳转至: 导航. 搜索 探戈 1919年绘有探戈舞蹈姿势的明信片 探戈(Tango)西班 ...

最新文章

  1. RxJava 变换操作符Map
  2. linux dd 截文件,Linux使用dd命令快速生成大文件(转)
  3. java map 的复制,Java Map的深度复制和浅复制
  4. 5大过程组与整体管理
  5. .Netcore 2.0 Ocelot Api网关教程(7)- 限流
  6. linux中控和安卓中控哪个比较好,原厂中控和改装中控有什么区别?哪个更好?...
  7. string matching(HDU-6629)
  8. windows 导入表(动态调用)
  9. ipad降级系统无法接通服务器,红雪0.9.14b2基带降级图文教程
  10. 全球运:电商物流成数字浙江“金名片”
  11. orcad 16.6 关闭startpage
  12. 山东理工ACM【1009】Elevator
  13. 坚果Pro和罗永浩的锤子梦
  14. php根据公历获得农历,PHP获取阳历或农历的节日函数
  15. 计算机基础知识赏花主观题,春光无限好,正是花开时 快收好这份赏花指南!...
  16. 必应搜索引擎关键词网站采集URL域名工具国际版英文网址
  17. 100集华为HCIE安全培训视频教材整理 | Agile Controller产品定位
  18. (JavaSE 学习记录) 自定义类加载器
  19. urllib.parse.parse_qsl 的一个小问题
  20. 预告:关于php制作桌面软件的方案与未来规划

热门文章

  1. 喜剧演员泽连斯基到底靠什么,能够从喜剧演员一路走到总统?
  2. 封装的含义,作用,如何封装,什么情况下进行封装?
  3. OR-Tools:2-包装问题,箱包问题(bin packing)
  4. python基础第十三章:文件读写
  5. 手机表格html5,手机上怎么做表格?
  6. 「网络流 24 题」孤岛营救问题
  7. JS的3种加密方式:base64编码、md5加密及sha加密
  8. MacOS 使用miniconda 虚拟环境 TensorFlow深度学习环境
  9. 身份证识别web端调用
  10. 【1024】写给最好的你-程序员