来自当知百科
跳转到: 导航搜索

目录

简介

  
4c5c0739bf00d.jpg
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 的存取权限,但是可以透过其它的方式,像是送出 ProblemReports 或是在 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所支援的平台依照支援程度分成四个等级。第一线平台(Tier1,完整支援平台)目前包括i386、Sparc64、AMD64及PC98。第二线平台(Tier2,发展平台)包括PowerPC及IA64。对于第一线与第二线平台,FreeBSD会维持维护及稳定性,同时大多数的新功能也都会被要求在这些平台上能够正常运作。第三线平台(Tier3,实验平台)目前只包括了S/390,这个等级的平台不被FreeBSD正式支援。而其他的平台都被归类到第四线平台。

  对ARM和MIPS架构的支援正在开发中。在开发中的7.x版本中,DEC Alpha 的支援已被移除。

历史

初期历史

  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,Symmetricmultiprocessing)以及 64 位元 Alpha 平台。3.x对于系统做了非常多的改革,这些措施在当时并没有带来好处,但却是 4.X 成功的基石。

FreeBSD 5

  最后一个版本的 FreeBSD 5 是 5.5,是在 2006年五月发行的。

  在FreeBSD 4的SMP架构下,在同一时间内只允许一个CPU进入核心(即Giant Lock),FreeBSD5最大的改变在于改善底层核心Locking机制,审视并改写核心程式码,使得不同的CPU可以同时进入系统核心,藉以增加效率。

  另外一个重大的改变在于自5.3开始支援m:n执行绪的KSE(Kernel ScheduledEntities),表示m个使用者执行绪共享n个核心执行绪的模式。

  这个版本的许多贡献是由于商业化版本的BSD OS团队的支援。

FreeBSD 6

  FreeBSD 6为目前的-STABLE发展版本,FreeBSD6.3在2008年1月18日发行,这个版本主要针对软件的更新,并加入lagg(可以对多张网卡操作)的支援,并引入重新改写的unionfs。

FreeBSD 7

  FreeBSD7为目前第二个-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时的正式名称为ULE3.0,这个版本在8核心的机器上以sysbench MySQL测试的结果,速度上比Linux2.6快大约10%(无论是使用Google的tcmalloc或是glibc+cfs)

  * Linux 2.6模拟层(已经可以使用)

  * Camellia Block Cipher(实做完成)

FreeBSD 7.3

  FreeBSD 7.3发布下载了,在经历了2个FreeBSD 7.3 RC版本之后本次迎来的是FreeBSD7.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控制器

命名规则

* 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 fromcurrent)回 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许可证的程式码。另外有些驱动程式也包涵了 binaryblob,像是Atheros公司的硬件抽象层。这使得所有人都可以自由地使用还有再散布FreeBSD。

  不过,FreeBSD的核心和新开发的程式码大多都使用两条款的BSD许可证释出,许多使用GPL的程式码都必须经过CleanroomSoftware Engineering,以其他授权方式重写,这主要是避免整个核心受到GPL影响。

BSD 家族

  BSD是"Berkeley SoftwareDistribution"的缩写,意思是“伯克利软件发行版”。显然,BSD这个名称并不是我们现在所理解的操作系统,而且其原意也并非简单的操作系统,而是一整套软件发行版的统称。从软件发行版到操作系统的演变是有历史过程的,这一点对FreeBSD很重要。(此源自伯克利加州大学,港译“加州大学伯克利”)

  * NetBSD一个着重于跨平台特性的分支计划

  * OpenBSD由NetBSD分支出的计划,着重于安全性

  * DragonflyBSD是一个由FreeBSD4-STABLE分支出来的项目,重点在于轻量级而高效能的线程、多处理支持以及其它用户工具、第三方软件管理系统的改进

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

  * FreeSBIE项目提供FreeBSD各个发行版本的liveCD,类似于基于Linux的Knoppix项目

  * Frenzy是另一个基于FreeBSD的live CD项目,主要针对俄语用户。启动中按“e”才是英文版界面

  * BSDeviant是一个FreeBSD的live CD项目,目的在于产生可以存在一张迷你CD-R上的系统

  * PicoBSD为了在单张1.44MB磁片执行而设计的FreeBSD精简版本

  * m0n0wall是一个基于FreeBSD的防火墙项目

  * PC-BSD为桌面/个人环境设计的BSD分支

  * relaxBSD为桌面/个人环境设计的BSD分支, 由华人开发, 注重中文环境

研发

  初期历史

  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,Symmetricmultiprocessing)以及 64 位元 Alpha 平台。3.x对于系统做了非常多的改革,这些措施在当时并没有带来好处,但却是 4.X 成功的基石。

个人工具
名字空间

变换
查看
操作
导航
工具箱