FreeBSD是一种UNIX操作系统,是由经过BSD、386BSD和4.4BSD发展而来的Unix的一个重要分支。FreeBSD 为不同架构的计算机系统提供了不同程度的支持。
目录
简介
许可协议
发展团队
Contributor
Committer
Core Team
平台
历史
- 初期历史
- FreeBSD 5
- FreeBSD 6
- FreeBSD 7
- FreeBSD 7.3
- FreeBSD 8
命名规则
- * A-CURRENT
- * A.B-STABLE
- * A.B-BETA、A.B-RC
- * A.B-RELEASE
- * A.B.C-BETA、A.B.C-RC、A.B.C-RELEASE
许可证
BSD 家族
研发
简介
许可协议
发展团队
平台
历史
- 初期历史
- FreeBSD 5
- FreeBSD 6
- FreeBSD 7
- FreeBSD 7.3
- FreeBSD 8
- 命名规则
- * A-CURRENT
- * A.B-STABLE
- * A.B-BETA、A.B-RC
- * A.B-RELEASE
- * A.B.C-BETA、A.B.C-RC、A.B.C-RELEASE
展开
FreeBSD
FreeBSD是一种类
UNIX操作系统,但不是真正意义上的
UNIX操作系统,它是由经过BSD、386BSD和4.4BSD发展而来的Unix的一个重要分支,它支持 x86 兼容(包括
Pentium™和
Athlon™)、
amd64 兼容(包括
Opteron™、Athlon 64 和 EM64T)、
Alpha/
AXP、IA-64、PC-98以及
UltraSPARC™架构的
计算机。它运行在
Intel x86 family兼容
处理器、DEC Alpha、
Sun微系统的UltraSPARC、
Itanium (IA-64)和AMD64处理器上。针对
PowerPC的支持正在开发中。它被普遍认为是相当可靠和稳定的。
苹果电脑的
Mac OS X即以 Mach 为内核, 配合 FreeBSD 的驱动程序和实用工具为基础。FreeBSD 源于 BSD ──
美国加州大学伯克利分校开发 UNIX™版本它由来自世界各地的志愿者开发和维护FreeBSD 为不同架构的
计算机系统提供了不同程度的支持.
编辑本段许可协议
FreeBSD在
BSD许可协议下发布,允许任何人在保留版权和许可协议信息的前提下随意使用和发行。BSD许可协议并不限制将FreeBSD的代码在另一个协议下发行,因此商业公司可以自由地将FreeBSD代码融入它们的产品之中去。
编辑本段发展团队
FreeBSD 采用的 Core Team 的方式来发展。Core Team 的成员是决定整个 FreeBSD 计划的大方向还有对于开发者间的问题有最后的决定权,其他的开发者也可以送出建议或是他们修改过的程式码,但是 Core Team 保留的最终的决定权,决定要不要将这功能放进FreeBSD。这种方式与Linux很不一样。
编辑本段Contributor
也可以说是 Submitter,没有 FreeBSD 的 CVS 的存取权限,但是可以透过其它的方式,像是送出 Problem Reports 或是在 Mailing list 上面参与讨论,来对 FreeBSD 做出贡献。
编辑本段Committer
有对 FreeBSD 的 CVS 存取的权限,
FreeBSD
可以将他的程式码或是文件送到版本库里面。一个 committer 必须要在过去的 12 个月中有 commit 的动作。而一个活跃的 committer 指在每个月至少都有一次以上的 commit 动作。
虽然说没有必要限制一个有 commit 权限的人只能在程式码树中可以存取的地方,但是如果一个 committer 要在他/她没有做出贡献或是不熟悉的地方,他/她必须要读那个地方的历史记录,还有 MAINTAINER 档案,确认这个部分的维护者对于更改这边的程式码有没有什么特殊的要求。
编辑本段Core Team
Core Team 成员由 committer 互相推选出来,是整个 FreeBSD 计划的
领导人,他们提升活跃的 contributor 成为 committer,还有可以指派“Hat”(指在计划中负责一些特定工作或领域的人),也是对于决定整个计划的大方向的最后仲裁者。在2004年7月1 日,core team 有9位成员,而 core team 选举每两年举行一次。
编辑本段平台
FreeBSD所支援的平台依照支援程度分成四个等级。第一线平台(Tier 1,完整支援平台)目前包括i386、Sparc64、AMD64及PC98。第二线平台(Tier 2,发展平台)包括PowerPC及IA64。对于第一线与第二线平台,FreeBSD会维持维护及稳定性,同时大多数的新功能也都会被要求在这些平台上能够正常运作。第三线平台(Tier 3,实验平台)目前只包括了S/390,这个等级的平台不被FreeBSD正式支援。而其他的平台都被归类到第四线平台。
对ARM和MIPS架构的支援正在开发中。在开发中的7.x版本中,DEC Alpha 的支援已被移除。
它支持 x86 兼容(包括 Pentium® 和 Athlon™)、amd64兼容(包括 Opteron™、Athlon 64和 EM64T)、 Alpha/AXP、IA-64、PC-98以及 UltraSPARC® 架构的计算机。它运行在Intel x86 family兼容处理器、DEC Alpha、Sun微系统的UltraSPARC、Itanium (IA-64)和AMD64处理器上。针对PowerPC的支持正在开发中。它被普遍认为是相当可靠和健壮的。苹果电脑的Mac OS X即以 Mach 为内核, 配合FreeBSD的驱动程序和实用工具为基础。FreeBSD 源于 BSD ──
美国加州大学伯克利分校开发 UNIX®; 版本它由来自世界各地的志愿者开发和维护。FreeBSD 为不同架构的计算机系统提供了不同程度的支持。
编辑本段历史
初期历史
FreeBSD 的发展始于1993年,取源于386BSD。然而,因为386BSD
源代码的合理性受到质疑以及Novell(当时UNIX的版权拥有者)与
柏克莱接连而来的诉讼,FreeBSD在1995年一月发布的 2.0-RELEASE 中以柏克莱
加州大学的 4.4BSD-Lite Release 全面改写,FreeBSD Handbook 中有更多 FreeBSD 的发展历史。
FreeBSD 2.0 最值得注意的部分也许是对
卡内基美隆大学的 Mach Virtual Memory 系统翻修以及 FreeBSD Ports system 的发明。前者对于高负荷的系统最佳化,后者则是建立了一套简单且强大的机制维护
第三方软件。有不少大型站台都使用 FreeBSD,(一个巨大的软件收集站台),Hotmail 以及 Yahoo。
FreeBSD 3.0 则引入了 ELF binary 格式,并开始支援多 CPU 系统(SMP,Symmetric multiprocessing)以及 64 位元 Alpha 平台。3.x 对于系统做了非常多的改革,这些措施在当时并没有带来好处,但却是 4.X 成功的基石。
FreeBSD 5
最后一个版本的 FreeBSD 5 是 5.5,是在 2006年五月发行的。
在FreeBSD 4的SMP架构下,在同一时间内只允许一个CPU进入核心(即Giant Lock),FreeBSD 5最大的改变在于改善底层核心Locking机制,审视并改写核心程式码,使得不同的CPU可以同时进入系统核心,藉以增加效率。
另外一个重大的改变在于自5.3开始支援m:n执行绪的KSE(Kernel Scheduled Entities),表示m个使用者执行绪共享n个核心执行绪的模式。
这个版本的许多贡献是由于商业化版本的BSD OS团队的支援。
FreeBSD 6
FreeBSD 6为目前的-STABLE发展版本,FreeBSD 6.3在2008年1月18日发行,这个版本主要针对软件的更新,并加入lagg(可以对多张网卡操作)的支援,并引入重新改写的unionfs。
FreeBSD 7
FreeBSD 7为目前第二个-STABLE发展版本,在2007年6月19日进入发行程序,2008年2月27日7.0-RELEASE正式发布。新增的功能包括了:
* SCTP(实做完成)
* 日志式UFS档案系统:gjournal(实做完成)
* 移植升阳所发展的DTrace(实做完成,但还未交付至CVS)
* 移植升阳所发展的ZFS档案系统(实做完成)
* 使用GCC4(移植完成,目前为4.2.1)
* 对ARM与MIPS平台的支援
* 重写过的USB stack(实做完成,但还未交付至CVS)
* Scalable concurrent malloc实做(已经可以使用)
* ULE排程表2.0(SCHED_ULE)(实做完成),并修改加强为SCHED_SMP(实做完成),在交付至CVS时的正式名称为ULE 3.0,这个版本在8核心的机器上以sysbench MySQL测试的结果,速度上比Linux 2.6快大约10%(无论是使用Google的tcmalloc或是glibc+cfs)
* Linux 2.6模拟层(已经可以使用)
* Camellia Block Cipher(实做完成)
FreeBSD 7.3
FreeBSD 7.3发布下载了,在经历了2个FreeBSD 7.3 RC版本之后本次迎来的是FreeBSD 7.3正式版。FreeBSD 7.3目前是FreeBSD 7系列的最新最稳定的版本。
FreeBSD 7.3主要包括如下改进: FreeBSD 7.3升级Gnome到Gnome 2.28.2
FreeBSD 7.3升级KDE到KDE 4.3.5
FreeBSD 7.3升级Perl到Perl 5.10
FreeBSD 7.3升级bind到bind 9.4-ESV
FreeBSD 7.3升级了ZFS到 ZFS 13
FreeBSD 7.3使用了新的gptzfsboot作为boot loader,目前支持GPT和在ZFS
FreeBSD 7.3改进了内核接口hwpmc(4),以支持最新的Core2/i7处理器
FreeBSD 7.3使用了mfiutil 和 mptutil作为RAID控制器
FreeBSD 8
2009年11月27日发布,增加如下新特性:
* 虚拟化方面:Xen DOM-U、VirtualBox guest及host支持、层次式jail。
* NFS:对NFSv3 GSSAPI的支持,以及试验性的NFSv4
客户端和服务器。
*
802.11s D3.03 wireless mesh网络,以及虚拟Access Point支持。
* ZFS不再是试验性的了。
* 基于Juniper Networks提供
MIPS处理器的实验性支持。
* SMP扩展性的增强,显著改善在16核心处理器系统中的性能。
* VFS加锁的重新实现,显著改善文件系统的可扩展性。
* 显著缓解缓冲区溢出和内核空指针问题。
* 可扩展的内核安全框架(MAC Framework)现已正式可用。
* 完全重新的USB堆栈改善了性能和设备兼容性,增加了USB target模式。
编辑本段命名规则
* A-CURRENT
在 -CURRENT 分支所使用的 CVS Tag 为 .,固定被称为 A-CURRENT,如目前的 -CURRENT 分支为 7-CURRENT,这个版本只建议开发者使用,通常在邮件论坛上测试过觉得没有什么大问题的功能会先被加到这个分支里。
* A.B-STABLE
在 -STABLE 分支里所使用的 CVS Tag 为 RELENG_A,如目前的 -STABLE 分支为 RELENG_6 与 RELENG_5。许多新的功能在 -CURRENT 分支测试一段期间觉得没有问题后就会将该项功能逆向移植(MFC,Merge from current)回 RELENG_6。
* A.B-BETA、A.B-RC
这是当开发团队认为 -STABLE 分支有足够的新功能或其他理由认为足以释出新版的 FreeBSD 时,会先将 -STABLE 分支的名称改为 -BETA,表示要进入 Release Cycle。
* A.B-RELEASE
在 -RELEASE 分支里所使用的 CVS Tag 为 RELENG_A_B 或 RELENG_A_B_C,这些 CVS 分支不会有功能的增加,只做安全性的维护。这些分支是在开发团队认为 -STABLE 内的功能累积到一定程度后,可以整理出来出新的版本。譬如 6.2-RELEASE、5.4-RELEASE。
* A.B.C-BETA、A.B.C-RC、A.B.C-RELEASE
当离上次释出版本的时间太短时,FreeBSD 团队会考虑只在后面加上一个次要版号。
编辑本段许可证
FreeBSD包含了
GNU通用公共许可证、
GNU宽通用公共许可证、ISC、CDDL和Beerware许可证的程式码,也有使用三条款和四条款的
BSD许可证的程式码。另外有些驱动程式也包涵了 binary blob,像是Atheros公司的硬件抽象层。这使得所有人都可以自由地使用还有再散布FreeBSD。
不过,FreeBSD的核心和新开发的程式码大多都使用两条款的BSD许可证释出,许多使用GPL的程式码都必须经过Cleanroom Software Engineering,以其他授权方式重写,这主要是避免整个核心受到GPL影响。
编辑本段BSD 家族
BSD是"Berkeley Software Distribution"的缩写,意思是“伯克利软件发行版”。显然,BSD这个名称并不是我们现在所理解的
操作系统,而且其原意也并非简单的操作系统,而是一整套软件发行版的统称。从软件发行版到操作系统的演变是有历史过程的,这一点对FreeBSD很重要。(此源自
伯克利加州大学,港译“加州大学伯克利”)
* NetBSD一个着重于跨平台特性的分支计划。
* OpenBSD由NetBSD分支出的计划,着重于安全性。
* DragonflyBSD是一个由FreeBSD 4-STABLE分支出来的项目,重点在于轻量级而高效能的线程、多处理支持以及其它用户工具、第三方软件管理系统的改进。
* Desktop-BSD为
桌面/个人环境设计的BSD分支。
* 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的
防火墙项目。
*
PC-BSD为桌面/个人环境设计的BSD分支。