在UNIX问世之后(关于UNIX来历史这里不详述),UNIX拥有者AT&T公司以低廉甚至免费的许可将Unix源码授权给学术机构做研究或教学之用。

加州大学伯克利分校就是其中之一。在得到源码后,CSRG就开始欢天喜地的研究UNIX。(CSRG是伯克利的计算机研究小组,就是在大学里对计算机有兴趣的同学啊,指导员啊,教授啊一起搞豉计算机的一群人)。

你还别说,CSRG还真不简单,没过多久就在原有UNIX上添加了许多新功能、新软件之类。发布了CSRG改进后的UNIX,叫做BSD(Berkeley Software Distributions,伯克利软件发布)。

BSD在发布之后就大受欢迎,各个公司都开始使用BSD。因为的版权关系,要使用UNIX的公司,需要购买AT&T的许可证,当时的BSD也是UNIX,所以很多公司、机构还是一边购买AT&T的许可证,一边又从伯克利订购BSD。可以说只要提及UNIX,人们就会想到BSD。此时正是BSD的巅峰时代,各个版本相继问世,如3BSD、4.0BSD、4.1BSD、4.2BSD、4.3BSD。

用于linux发行版的网友,应该知道ubuntu发行版是基于debian发行版来的,但在ubuntu社区的努力下,增加了自身的一些功能、软件,优化了界面之类。成为了一个更流行的发行版。BSD和UNIX在当时就像是这种关系,但BSD做的优化啊,添加的新功能这些显然要更多一些。(但图形界面优化是没有的,当时的UNIX还只是用的字符)

但好境不长,BSD其不断增大的影响力终于引起了AT&T的关注。AT&T意识到了Unix的商业价值,不再将Unix源码授权给学术机构,并对之前的Unix及其变种声明了版权权利。而且还就伯克利分校的BSD开始了一场旷日持久的版权官司。

这场官司打得是如何天晕地暗,日月无光,打得AT&T将自己的Unix系统实验室卖掉等等我们就不多谈了。只说下最后的结果是:允许伯克利自由发布自己的BSD,但是前提是必须将来自于AT&T的代码完全删除。
这下BSD就头痛了,虽说CSRG添加了许许多多的功能,但内核中还是有不少UNIX内核代码啊。这一删除,不就成了一个残缺的内核啊,这还怎么运行呢。CSRG吓尿了,马上通过Internet向外恳求程序员帮他们补全内核。说法有些夸张,但我现在还不明白,为什么当时伯克利分校的精英们(CSRG)不自己重写残缺的那部份内核?是认为写内核这种工作太麻烦?还是技术上的什么原因?我们不得而知,反正最后CSRG把除去AT&T代码的不完整的系统在网上发布了。

在这个不完整的系统出布不到6个月时间,嘿!还真有一个人为BSD补写了内核。当时一个名叫Bill Jolitz的PC386玩家(或者说黑客什么的)力挽狂澜,补写了基于386的内核,以386/BSD的名称发布在网上。

在很短的时间内,386/BSD就流行起来,因为当时只有386/BSD,是一个完整的BSD系统。

伯克利分校的神圣目标-- 一个与AT&T公司UNIX无关的操作系统实现了。虽然这个系统的内核不是伯克利大学完成的,而是靠着外部程序员的帮忙。但总的来说BSD可以在全球作为开放源代码软件自由发行了。

在386/BSD流行以后,Bill Jolitz收到了潮水般涌来的针对386/BSD的缺陷报告和改进需要。但Jolitz有一份全职工作,也并没有打算做386/BSD的内核维护与开发工作。所以有一群热情的386/BSD用户开始组成了NetBSD小组,来维护并改进这个系统(后来NetBSD又分出了个OpenBSD小组)。当然没过多久又有另一群同样热情的很的386/BSD用户组成了FreeBSD小组, 为着同一个目的。从此BSD有了三个主流的发行版:NetBSD,OpenBSD,FreeBSD

和linux发行版不一样的是,Linus Torvalds现在依旧在为linux内核的发展做着努力,而Bill Jolitz除了发布了386/BSD之外,就没有再维护BSD内核,而是由BSD的发行版各自去维护开发。这样这三个BSD发行版除了做系统工具,系统安全等,还要自己为自己的内核打补丁或是升级。在人员有限的情况下这样发展就比较缓慢,内核的各自变动也是挺大的(NetBSD极力做跨平台,FreeBSD立志于PC机上的发展,OpenBSD在打造安全系统)。所以内核不像linux那样以Linux Torvalds为首的linux内核小组就专门从事内核的开发那样快。各linux发行版在内核有什么新的技术也反馈给linux内核维护人员,经仔细测式后,考虑是否要加入到linux内核之中。在稳定性、运算效率、多构架、各硬件的支持上linux内核有着长足发展。
linux的发展是专术专攻式的,内核由专门的内核人员来维护开发。各发行版只专心做好对自身的特点优化,GNU维护升级着GNU的软件。每个人专心做一件事,然后做到最好,就可以组成一个十分完整,又可以自由组合的系统。

BSD的发行版,就只有笼统全做,从内核到上层的应用。这样可能就会造成人员不足的情况,要成为完整系统发布,有时也得被迫拿点GNU/linux的东西来用,像一些硬件驱动用到了linux兼容层,还有freebsd的编译器,就是用的gcc,虽然有点混乱,不过现在苹果的clang/LLVM发布,可算是扬眉吐气了,以后的freebsd不再安装gcc。FreeBSD也是发展越来越好了。

最后再说一下伯克利的精英计算机小组CSRG,这群精英人物不应该这么快就被人遗忘掉。在386/BSD发布之后,CSRG终于发了4.4BSD-Lite,一个没有一丁点AT&T代码的BSD系统,允许使用者以源代码和二进制的形式自由地重新发布,只要声明使用了BSD技术。这就是BSD协议的大概内容,如果你想知道BSD协议更详细的内容,可以在网上查阅。然后CSRG…………解散了!

题外话:在那场官司之后,BSD把UNIX的内核代码剔除,开始使用BSD的商业公司锐减,虽说后来Jolitz补写了内核代码,BSD各发行版接手了BSD系统的开发维护,依然难蹬当前巅峰时代。不过我们也期待现在的NetBSD,FreeBSD,OpenBSD或是基于FreeBSD的PC-BSD,能重返兴盛

BSD历史的更多相关文章

  1. BSD介绍

    BSD许可证模板  * Copyright (c) 1998, Regents of the University of California  * All rights reserved.    * ...

  2. BSD学习(BSD系统的历史和目标)

    UNIX系统的历史 unix系统的发展历程大概经历以下几个阶段: 贝尔实验室(Bell Laboratories)阶段,该实验室发明了UNIX 加州大学伯克利分校(University of Cali ...

  3. 【历史】- UNIX发展史(BSD,GNU,linux)

    先前的一個理想 UNIX 系统自 1969 年 Ken Thompson 与 Dennis Ritchie 在美国贝尔电话实验室(Bell Telephone Laboratories)发展出雏形至今 ...

  4. 【转载】Linux 与 BSD 有什么不同?

    原创:Linux中国 https://linux.cn/article-3186-1.html 原创:LCTT https://linux.cn/article-3186-1.html 本文地址:ht ...

  5. Linux历史

    1.Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX标准和UNIX的多用户.多任务.支持多线程和多CPU的操作系统.它能运行主要的UNIX工具软件.应用程序和网络协议.它支 ...

  6. [计算机、网络相关历史]unix简史

    本文2001年由台湾“网络农夫”所写,其人生平不祥,此文受鸟哥大力推崇,两人应该相识.文章写得很不错,应该是查了很多资料整理而成的,美中不足的是好多语句不通顺,国考语文绝对不及格,哈哈. 0.我的准备 ...

  7. Objective-C发展历史

    Objective-C发展历史 苹果图标由来: 被咬了一口苹果的LOGO是为了纪念计算机科学的创始人阿兰· 麦席森· 图灵.当年图灵由于身为同性恋者,被强行 "治疗",在被迫注射大 ...

  8. Linux 与 BSD 有什么不同?

    Linux 与 BSD 有什么不同? 这篇文章是别人写的,并做了一点修改. 汉澳sinox就是基于bsd开发的,因此能够理解为一个bsd分支,可是由于sinox不开源,被排除在外.bsd不是商业软件, ...

  9. Linux编程环境介绍(1) -- linux的历史

    1. linux是什么? "Hello everybody out there using minix——I'm doing a (free) operating system"  ...

随机推荐

  1. 通信录分组并且分组标签悬停划入划出(包含错误信息及修改)--第三方开源--PinnedSectionListView

    PinnedSectionListView在github上的链接地址是:https://github.com/beworker/pinned-section-listview . 下载下来后直接将Pi ...

  2. hdu 5545 The Battle of Guandu spfa最短路

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5545 题意:有N个村庄, M 个战场: $ 1 <=N,M <= 10^5 $; 其中曹 ...

  3. Ubuntu下编程环境GNU安装

    ubuntu下C编程   环境搭建 其实,linux下写C也是很容易的.IDE的话用 eclipse 集成 CDT 模块就行了.当然这属于重量级的了,就如同VC++之于windows一样.那有没有像T ...

  4. 使用IE浏览器下载时候窗口一闪而过

    使用IE浏览器下载东西时,窗口一闪而过,那么这个问题怎么处理呢? 解决办法: 1.按住ctrl键进行下载 2.浏览器>工具>internet选项>安全自定义级别>下载文件自动提 ...

  5. ALTER TABLE causes auto_increment resulting key 'PRIMARY'

    修改表为主键的自动增长值时,报出以下错误:mysql> ALTER TABLE YOON CHANGE COLUMN id id INT(11) NOT NULL AUTO_INCREMENT ...

  6. [原创]PostgreSQL Plus Advince Server在 HA环境中一对多的Stream Replication配置(三)

    五.准备HA环境1.准备yum源a.安装vsftp服务,将光盘镜像copy到本地ftp目录作为yum源.[root@s1 ~]# mount 可以看到cdrom已经挂载了,首先安装vsftp服务[ro ...

  7. MVC学习系列——ActionResult扩展

    首先,MVC扩展性非常强. 我从ActionResult扩展入手,因为我们知道微软ActionResult和其子类,有时候并不能满足所有返回值. 比如:我需要返回XML. 因此,现在我扩展XMLRes ...

  8. 类的const成员

    类的const成员包括const数据成员和const成员函数: 1.const数据成员: 和普通的const变量一样,定义时初始化,且不能修改 2.const成员函数: const成员函数只能访问其他 ...

  9. Linux内核分析作业一

    一.实验 通过反汇编一个简单的c语言程序来分析计算机是如何工作的 1.进入实验楼,在实验楼环境下把c语言代码转换成汇编码 汇编代码如下图: 二.汇编代码的工作过程中堆栈的变化:(手绘步骤,顺序是从左到 ...

  10. C# XML - XmlNode and XmlAttribute

    public static string TestXML(string path) { XmlDocument doc = new XmlDocument(); doc.Load(path); Xml ...