FreeBSD
| FreeBSD 网站:FreeBSD官方网站 |
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]
对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,像是 cdrom.com(一个巨大的软件收集站台),Hotmail 以及 Yahoo。
FreeBSD 3.0 则引入了 ELF binary 格式,并开始支援多 CPU 系统(SMP,Symmetric multiprocessing)以及 64 位元 Alpha 平台。3.x 对于系统做了非常多的改革,这些措施在当时并没有带来好处,但却是 4.X 成功的基石。
BSD 家族BSD是"Berkeley Software Distribution"的缩写,意思是“伯克利软件发行版”。显然,BSD这个名称并不是我们现在所理解的操作系统,而且其原意也并非简单的操作系统,而是一整套软件发行版的统称。从软件发行版到操作系统的演变是有历史过程的,这一点对FreeBSD很重要。(此源自伯克利加州大学,港译“加州大学伯克利”)
* NetBSD一个着重于跨平台特性的分支计划
* OpenBSD由NetBSD分支出的计划,着重于安全性
* DragonflyBSD是一个由FreeBSD 4-STABLE分支出来的项目,重点在于轻量级而高效能的线程、多处理支持以及其它用户工具、第三方软件管理系统的改进
* 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分支
* relaxBSD为桌面/个人环境设计的BSD分支, 由华人开发, 注重中文环境
最后一个版本的 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为目前的-STABLE发展版本,FreeBSD 6.3在2008年1月18日发行[8],这个版本主要针对软件的更新,并加入lagg(可以对多张网卡操作)的支援,并引入重新改写的unionfs。
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]
对ARM与MIPS平台的支援
重写过的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_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影响。
一般来说,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.
正体中文:
Freenode上的#bsdchat
其他 channel 可以参考 FreeBSD官方wiki 的 IrcChannels 页面。
BSD
386BSD
DragonFly BSD
NetBSD
OpenBSD
BSD小恶魔
FreeSBIE
- FreeBSD官方站点
- FreeBSD官方维基
- FreeBSD中文网站 (简体)
- FreeBSD中国社区站点
- FreshPorts
- http://www.freebsdsoftware.org/
- ChinaUnix UNIX技术站点
- FreeBSD 使用手册 (简体)
- FreeBSD 使用手册 (正体)
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 | 更多... |
)


