FreeBSD
2010-01-30 11:44:02 阿炯

简介
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 Unix派生,但是从法律的角度来看,它并不是“UNIX”。因为现在“UNIX”商标属于国际开放标准组织,而FreeBSD并没有使用该商标的授权。

许可协议
FreeBSD在BSD许可协议下发布,允许任何人在保留版权和许可协议信息的前提下随意使用和发行。BSD许可协议并不限制将FreeBSD的代码在另一个协议下发行,因此商业公司可以自由地将FreeBSD代码融入它们的产品之中去。FreeBSD包含了GNU通用公共许可证、GNU宽通用公共许可证、ISC、CDDL和Beerware许可证的程式码,也有使用三条款和四条款的 BSD许可证的程式码。另外有些驱动程式也包涵了 binary blob,像是Atheros公司的硬件抽象层。这使得所有人都可以自由地使用还有再散布FreeBSD。不过,FreeBSD的核心和新开发的程式码大多都使用两条款的BSD许可证释出,许多使用GPL的程式码都必须经过Cleanroom Software Engineering,以其他授权方式重写,这主要是避免整个核心受到GPL影响。

团队
FreeBSD 采用的 Core Team 的方式来发展。Core Team 的成员是决定整个 FreeBSD 计划的大方向还有对于开发者间的问题有最后的决定权,其他的开发者也可以送出建议或是他们修改过的程式码,但是 Core Team 保留的最终的决定权,决定要不要将这功能放进FreeBSD。这种方式与Linux很不一样。FreeBSD也可以运行其他操作系统的二进制软件,比如Linux的。借助ports和软件包管理器pkg,用户能安装各种应用程序。根据2005年的调查,77%的BSD用户使用FreeBSD,因此FreeBSD拥有BSD系列中最大的用户社区。

核心团队
Core Team 成员由 committer 互相推选出来,是整个 FreeBSD 计划的领导人,他们提升活跃的 contributor 成为 committer,还有可以指派“Hat”(指在计划中负责一些特定工作或领域的人),也是对于决定整个计划的大方向的最后仲裁者。在2004年7月1日,core team 有9位成员,而该核心团队选举每两年举行一次。

平台
FreeBSD所支援的平台依照支援程度分成四个等级。第一线平台(Tier 1,完整支援平台)目前包括i386、Sparc64、AMD64及PC98。第二线平台(Tier 2,发展平台)包括PowerPC及IA64。对于第一线与第二线平台,FreeBSD会维持维护及稳定性,同时大多数的新功能也都会被要求在这些平台上能够正常运作。第三线平台(Tier 3,实验平台)目前只包括了S/390,这个等级的平台不被FreeBSD正式支援。而其他的平台都被归类到第四线平台。对ARM和MIPS架构的支援正在开发中。在开发中的7.x版本中,DEC Alpha 的支援已被移除。

命名规则
* 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支持IPv4,IPv6,SCTP,IPSec和无线网络Wi-Fi。其IPv6和IPSec栈是由KAME Project得到的。从FreeBSD 5.4开始支持共享地址冗余协定CARP,CARP允许多节点共享IP地址群。所以如果一个节点出现瘫痪,其他的节点仍然能接收请求。

存储
FreeBSD的UFS文件系统支持软更新和文件系统快照。FreeBSD通过GEOM架构支持RAID功能。FreeBSD支持UFS、ZFS等多种文件系统。支持两种数据加密基础体系:GBDE和Geli,两者操作均在磁盘层级上。GBDE是由波尔-亨宁·坎普所编写的,并在遵守双BSD许可证即“简化BSD许可证”和“FreeBSD许可证”二者的情况下发布的。而Geli则是GBDE的替代品,它第一次在FreeBSD 6.0上出现,由帕·雅·戴夫Pawel Jakub Dawidek编写。

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分支, 由华人开发, 注重中文环境

降低对 i386 架构的支持

FreeBSD 开发团队于2021年2月1日宣布,从 FreeBSD 13.0 开始,对 i386 架构的支持级别将降级为 Tier 2,未来的 14.0 可能还将会在此基础上进一步降低对 i386 架构的支持。而对于 FreeBSD 11.x 和 12.x 的 i386 架构支持级别仍保持为 Tier 1。会继续为 13.x 分支提供面向 i386 架构的 release 镜像、二进制更新和预构建软件包。不过在 13.x 中出现关于 i386 架构的特定问题(包括 SA)可能不会修复。

i386 架构诞生已有 35 年,主要芯片公司基本上不再提供 i386 芯片,主流的 Linux 发行版也都陆续停止了对该架构的支持。它不仅是 FreeBSD 项目历史和成功的重要组成部分,还是 FreeBSD 最早唯一支持的架构,i386 计算机的易用性也是 FreeBSD 发展和被采用的关键。不过计算机行业和 x86 架构一直在随着时间而发展,在过去十年里,无论是从用户角度还是从积极的开发角度来看,64 位的 x86 架构才是 FreeBSD 的主要支持架构,而 FreeBSD/i386 的用户群体规模则持续下降。因此,i386 架构的支持级别将从 FreeBSD 13.0 开始降级为 Tier 2。

FreeBSD 对 ARM 架构的支持升级为 Tier 1

2021年4月上旬,FreeBSD 项目通过开发者邮件列表宣布,从 FreeBSD 13 起,FreeBSD 对 arm64 架构(也称作 AArch64)的支持级别将升级为 Tier 1。这就意味着 FreeBSD 会面向 arm64 设备提供发布镜像、二进制包、安全和勘误更新。当然,支持新架构的变更不可避免地会存在小瑕疵,不过 FreeBSD 团队认为目前的端口已足够成熟,并且他们会在 FreeBSD 13 的生命周期内解决问题。公告里还提到,他们最早于2014年启动了对 FreeBSD/arm64 的开发,Arm、Cavium 和 FreeBSD 基金会提供了财务和技术支持。2016年10月发布的 FreeBSD 11.0 是支持该架构的首个版本,此版本改进了内核、工具链、用户界面和端口。软件包基础架构自此也一直在优化和改进。

AArch64 生态的成熟确保了其产品的多样性及硬件的后续发展。FreeBSD 团队认为,AArch64 将是未来几年市场的重要组成部分,FreeBSD 增加对该架构平台的支持以及将支持级别升级为 Tier 1 可从中获益。

FreeBSD的发展历史

FreeBSD版本更新录(202x)

官方主页:https://www.freebsd.org/


该文章最后由 阿炯 于 2021-12-09 11:19:58 更新,目前是第 4 版。