FreeBSD


FreeBSD (正體)

Free Web Hosting with Website Builder
FreeBSD

网站 FreeBSD官方网站
开发公司/
开发者
FreeBSD Project
操作系统家族 BSD
源码模式 自由软件
最新稳定版本 7.0-RELEASE / 2008年2月27日[1]
套件管理员 Ports System
支援平台 alpha/amd64/ia64/pc98/
powerpc/sparc64/x86
内核类别 单核心
授权条款 BSD许可证

FreeBSD是一种类Unix操作系统,是由经过BSD、386BSD和4.4BSD发展而来的 Unix 的一个重要分支。

FreeBSD 是以一个完善的操作系统的定位来做开发。其核心驱动程式以及所有的使用者层(Userland)应用程式(比方说是Shell)均由同一源代码版本控制系统保存(目前使用 CVS)。相较于另一知名的的操作系统Linux,其核心为一组开发人员设计,而使用者应用程式则交由他人开发(例如 GNU计划),最后再由其他团体整合并包装成Linux套件

作为一个操作系统,FreeBSD 被认为相当地稳建可靠。在 Netcraft 的开机时间报告中[2],最长的开机时间前50名,最多使用的操作系统就是 FreeBSD(在某些操作系统中,像是一些特殊版本的 Linux,无法计算其开机时间)。长的开机时间可以表示FreeBSD的系统相当稳定,不用为了安装新版本的核心而重开机造成重新计算开机时间。

目录

许可协议

FreeBSD 在BSD许可证下发布[3],允许任何人在保留版权和许可协议信息的前提下随意使用和发行。BSD许可协议并不限制将 FreeBSD 的源代码在另一个协议下发行,因此商业公司可以自由地将 FreeBSD 代码融入它们的产品之中去。

发展团队

FreeBSD 采用的 Core Team 的方式来发展。Core Team 的成员是决定整个 FreeBSD 计划的大方向还有对于开发者间的问题有最后的决定权,其他的开发者也可以送出建议或是他们修改过的程式码,但是 Core Team 保留的最终的决定权,决定要不要将这功能放进FreeBSD。这种方式与Linux很不一样。

Contributor [4]

也可以说是 Submitter,没有 FreeBSD 的 CVS 的存取权限,但是可以透过其它的方式,像是送出 Problem Reports 或是在 Mailing list 上面参与讨论,来对 FreeBSD 做出贡献。

Committer [5]

有对 FreeBSD 的 CVS 存取的权限,可以将他的程式码或是文件送到版本库里面。一个 committer 必须要在过去的 12 个月中有 commit 的动作。而一个活跃的 committer 指在每个月至少都有一次以上的 commit 动作。

虽然说没有必要限制一个有 commit 权限的人只能在程式码树中可以存取的地方,但是如果一个 committer 要在他/她没有做出贡献或是不熟悉的地方,他/她必须要读那个地方的历史记录,还有 MAINTAINER 档案,确认这个部份的维护者对于更改这边的程式码有没有什么特殊的要求。

Core Team [6]

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正式支援。而其他的平台都被归类到第四线平台。[7]

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

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,像是 cdrom.com(一个巨大的软件收集站台),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日发行[8],这个版本主要针对软件的更新,并加入lagg(可以对多张网卡操作)的支援,并引入重新改写的unionfs。

FreeBSD 7

FreeBSD 7为目前第二个-STABLE发展版本,在2007年6月19日进入发行程序[9]2008年2月27日7.0-RELEASE正式发布[1]。新增的功能包括了:

  • SCTP(实做完成)[10]
  • 日志式UFS档案系统:gjournal(实做完成)[11]
  • 移植升阳所发展的DTrace(实做完成,但还未交付至CVS
  • 移植升阳所发展的ZFS档案系统(实做完成)[12]
  • 使用GCC4(移植完成,目前为4.2.1)[13]
  • ARMMIPS平台的支援
  • 重写过的USB stack(实做完成,但还未交付至CVS
  • Scalable concurrent malloc实做(已经可以使用)[14] [15]
  • ULE排程表2.0(SCHED_ULE)(实做完成)[16],并修改加强为SCHED_SMP(实做完成),在交付至CVS时的正式名称为ULE 3.0[17],这个版本在8核心的机器上以sysbench MySQL测试的结果,速度上比Linux 2.6快大约10%(无论是使用Google的tcmalloc或是glibc+cfs)[18]
  • Linux 2.6模拟层(已经可以使用)
  • Camellia Block Cipher(实做完成)[19] [20]

命名规则

  • A-CURRENT
在 -CURRENT 分支所使用的 CVS Tag 为 .,固定被称为 A-CURRENT,如目前的 -CURRENT 分支为 7-CURRENT,这个版本只建议开发者使用,通常在邮件论坛上测试过觉得没有什么大问题的功能会先被加到这个分支里。
  • A.B-STABLE
在 -STABLE 分支里所使用的 CVS Tag 为 RELENG_A,如目前的 -STABLE 分支为 RELENG_6RELENG_5。许多新的功能在 -CURRENT 分支测试一段期间觉得没有问题后就会将该项功能逆向移植(MFC,Merge from current)回 RELENG_6
  • A.B-BETAA.B-RC
这是当开发团队认为 -STABLE 分支有足够的新功能或其他理由认为足以释出新版的 FreeBSD 时,会先将 -STABLE 分支的名称改为 -BETA,表示要进入 Release Cycle。
  • A.B-RELEASE
在 -RELEASE 分支里所使用的 CVS Tag 为 RELENG_A_BRELENG_A_B_C,这些 CVS 分支不会有功能的增加,只做安全性的维护。这些分支是在开发团队认为 -STABLE 内的功能累积到一定程度后,可以整理出来出新的版本。譬如 6.2-RELEASE、5.4-RELEASE。
  • A.B.C-BETAA.B.C-RCA.B.C-RELEASE
当离上次释出版本的时间太短时,FreeBSD 团队会考虑只在后面加上一个次要版号。

许可证

FreeBSD包含了GNU通用公共许可证GNU宽通用公共许可证、ISC、CDDL和Beerware许可证的程式码,也有使用三条款和四条款的BSD许可证的程式码。另外有些驱动程式也包涵了 binary blob,像是Atheros公司的硬件抽象层。这使得所有人都可以自由地使用还有再散布FreeBSD。

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

安装问题

  • 一般来说,FreeBSD 所支援的硬件较 Linux 为少。安装前请参考 FreeBSD 网站上 Release Information [21] 里要安装版本的 Hardware Notes。

相关书籍

  • Absolute BSD, The Ultimate Guide to FreeBSD. Michael Lucas. No Starch Press, July 2002. ISBN 1886411743.
  • BSD Hacks, 100 Industrial-Strength tips for BSD users and administrators. Dru Lavigne. O'Reilly, May 2004. ISBN 0596006799.
  • The Complete FreeBSD, 4th Edition, Documentation from the Source. Greg Lehey. O'Reilly, April 2003 ISBN 0596005164.
  • The Design and Implementation of the FreeBSD Operating System. Marshall Kirk McKusick and George V. Neville-Neil. Pearson Education. ISBN 0201702452. Expected availability August 2004.
  • The FreeBSD Corporate Networkers Guide. Ted Mittelstaedt. Addison-Wesley, December 2000. Paperback, book & CD edition, 401 pages. ISBN 0201704811.
  • Designing BSD Rootkits: A Introduction to Kernel Hacking. Joseph Kong, No Starch Press, US, March 29 2007. Paperback, 144 pages, ISBN 1593271425.

IRC

正体中文:

  • Freenode上的#bsdchat

其他 channel 可以参考 FreeBSD官方wikiIrcChannels 页面。

参考资料

参见

外部链接

类Unix操作系统

A/UX | AIX | BSD | DragonFly BSD | FreeBSD | GNU | HP-UX | IRIX | Linux | LynxOS | Mac OS X | Minix | NetBSD | NEXTSTEP | OpenBSD | QNX | SCO OpenServer | Solaris | System V | Tru64 | Xenix | 更多... |







Why are we here?
All text is available under the terms of the GNU Free Documentation License
This page is cache of Wikipedia. History