BSD历史
在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历史的更多相关文章
- BSD介绍
BSD许可证模板 * Copyright (c) 1998, Regents of the University of California * All rights reserved. * ...
- BSD学习(BSD系统的历史和目标)
UNIX系统的历史 unix系统的发展历程大概经历以下几个阶段: 贝尔实验室(Bell Laboratories)阶段,该实验室发明了UNIX 加州大学伯克利分校(University of Cali ...
- 【历史】- UNIX发展史(BSD,GNU,linux)
先前的一個理想 UNIX 系统自 1969 年 Ken Thompson 与 Dennis Ritchie 在美国贝尔电话实验室(Bell Telephone Laboratories)发展出雏形至今 ...
- 【转载】Linux 与 BSD 有什么不同?
原创:Linux中国 https://linux.cn/article-3186-1.html 原创:LCTT https://linux.cn/article-3186-1.html 本文地址:ht ...
- Linux历史
1.Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX标准和UNIX的多用户.多任务.支持多线程和多CPU的操作系统.它能运行主要的UNIX工具软件.应用程序和网络协议.它支 ...
- [计算机、网络相关历史]unix简史
本文2001年由台湾“网络农夫”所写,其人生平不祥,此文受鸟哥大力推崇,两人应该相识.文章写得很不错,应该是查了很多资料整理而成的,美中不足的是好多语句不通顺,国考语文绝对不及格,哈哈. 0.我的准备 ...
- Objective-C发展历史
Objective-C发展历史 苹果图标由来: 被咬了一口苹果的LOGO是为了纪念计算机科学的创始人阿兰· 麦席森· 图灵.当年图灵由于身为同性恋者,被强行 "治疗",在被迫注射大 ...
- Linux 与 BSD 有什么不同?
Linux 与 BSD 有什么不同? 这篇文章是别人写的,并做了一点修改. 汉澳sinox就是基于bsd开发的,因此能够理解为一个bsd分支,可是由于sinox不开源,被排除在外.bsd不是商业软件, ...
- Linux编程环境介绍(1) -- linux的历史
1. linux是什么? "Hello everybody out there using minix——I'm doing a (free) operating system" ...
随机推荐
- Oracle 动态视图2 V$LOCKED_OBJECT
v$locked_object视图列出当前系统中哪些对象正被锁定 Column Datatype Description XIDUSN NUMBER 回滚段号 XIDSLOT NUMBER 槽号 XI ...
- Discuz X1.5 利用添加好友处存储xss进行蠕虫worm扩散
Discuz X1.5 在添加好友的地方有处存储xss,借助此处xss跟用户交互可以进行蠕虫指数扩散. 位置在添加好友处 x完之后的效果 点击后触发 ok 借助此存储xss,我们进行worm传播,dz ...
- ASP.NET中利用Split实现对Checkbox的字符串分离放到DataTable里面
一.背景 昨天唐欢问了我一个问题: 现在有一个CheckBox和一个Label如下图: 要实现选中CheckBox,点击下面打印按钮的时候要做成这个样子的如下图: 简单的说就是档案编号作为表中的一个列 ...
- Elasticsearch 5.0
Elasticsearch 5.0 使用ES的基本都会使用过head,但是版本升级到5.0后,head插件就不好使了.下面就看看如何在5.0中启动Head插件吧! 官方粗略教程 Running wit ...
- div+css登陆界面案例
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- SpringMVC+redis整合
在网络上有一个很多人转载的springmvc+redis整合的案例,不过一直不完整,也是被各种人装来转去,现在基本将该框架搭建起来. package com.pudp.bae.base; import ...
- json 说明书
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. 易于人阅读和编写.同时也易于机器解析和生成. 它基于JavaScript Programming Lan ...
- ADO.NET- 基础总结及实例介绍
最近闲暇时间写的一些小程序中,访问数据库比较多:下面主要介绍下ADO.NET方面知识,有不足之处,希望大神们不吝赐教: 提到ADO.NET,经常会和ASP.NET进行混淆,两者的区别很大,没有可比性, ...
- 从状态转移看:载波侦听多路访问/冲突避免(CSMA/CA)
CSMA/CA是写入IEEE802.11的无线网络MAC层标准协议,相信看到这篇文章的读者都知道它是用来做什么的.但许多短文对这个协议的解释都有所缺乏,因此本文用状态转换图的形式详细说明协议的工作流程 ...
- [转载]淘宝API调用 申请 获取session key
http://www.cnblogs.com/zknu/archive/2013/06/14/3135527.html 在调用淘宝的API时,我们都会用到appkey,appsecret,appses ...