1.3. 关于 FreeBSD 项目

下面的章节提供了项目的一些背景信息, 包括简要的历史、项目目标、以及项目开发模式。

1.3.1. 简述 FreeBSD 历史

FreeBSD 项目起源于 1993 年早期,部分代码源于 Unofficial 386BSD Patchkit 的副产物,Patchkit 的最后 3 个协调维护人是:Nate Williams, Rod Grimes 和 Jordan Hubbard。

我们最初的目标是做出一份 386BSD 的测试版以修正一些 Patchkit 机制无法解决的错误(bug)。 很多人可能还记得早期的项目名称叫做 386BSD 0.5 或者 386BSD Interim 就是这个原因。

386BSD 是 Bill Jolitz 的操作系统, 到那时已被严重地忽视了一年之久。 由于 Patchkit 在过去的每一天里都在急剧膨胀, 使得对其进行消化吸收变得越来越困难, 因此我们一致同意应该做些事情并决定通过提供这个临时的 cleanup 版本来帮助 Bill。 然而,Bill 却在事先没有指出这个项目应该如何开展下去的情况下, 突然决定退出这个项目,最终这个计划只好被迫停止。

没过多久,我们认为即便没有 Bill 的支持,项目仍有保留的价值, 因此,我们采用了 David Greenman 的意见,给其命名为 FreeBSD。在和当时的几个用户商量后,我们提出了最初的目标, 而这件事明朗化后, 这个项目就走上了正轨,甚至可能成为现实。 为了拓展 FreeBSD 的发行渠道,我抱着试试看的心态, 联系了光盘商 Walnut Creek CDROM, 以便那些上网不方便的用户得到 FreeBSD。 Walnut Creek CDROM 不仅支持发行 FreeBSD 光盘版的想法, 还为这个计划提供了所需的计算机和高速网络接入。 在那时, 若没有 Walnut Creek CDROM 对一个完全未知的项目的空前信任, FreeBSD 不太可能像它今天这样,影响如此深远, 发展如此快速。

第一个 CD-ROM (以及在整个互联网范围内发行的) 发行版本是 FreeBSD 1.0,于 1993 年 10 月发布。这个版本基于 U.C. Berkeley 的 4.3BSD-Lite(Net/2)磁带, 也有许多组件是 386BSD 和自由软件基金会提供的。 对于第一次发行,这算是相当成功了。 在 1994 年 5 月,我们发布了更加成功的 FreeBSD 1.1 版。

在这段时间, 发生了一些意外的情况。 Novell 和 U.C. Berkeley 就 Berkeley Net/2 磁带知识产权的马拉松式的官司达成了和解。 和解中的一部分是 U.C. Berkeley 作出的让步, 令 Net/2 中的一大部分内容成为 受限的 (encumbered) 和属于 Novell 知识产权的代码, 而后者在不久前刚刚从 AT&T 收购了这些产权; 作为回报, Berkeley 得到了来自 Novell 的 许诺, 在 4.4BSD-Lite 版本正式发布时, 可以声明为不受限的 (unencumbered), 现有的 Net/2 用户则强烈建议转移到这个版本。 这包括了 FreeBSD, 而我们的项目则被允许在 1994 年 6 月底之前继续发行基于 Net/2 的产品。 根据和解协议, 在最后期限之前我们发布了一个最终版本, 这个版本是 FreeBSD 1.1.5.1。

接下来, FreeBSD 开始了艰苦的从全新的、 不太完整的 4.4BSD-Lite 重新编写自己的过程。 Lite 版本中, Berkeley 的 CSRG 删除了用于让系统能够引导的一大部分代码 (由于各种各样的法律需求), 而当时 4.4 在 Intel 平台的移植版本还有很多工作没有完成。 直到 1994 年 11 月, 我们的项目才完成了这项过渡, 并通过网络以及 CD-ROM (在 12 月底) 上发布了 FreeBSD 2.0。 尽管系统中还有很多比较粗糙的地方, 这个版本还是取得了巨大的成功, 并在 1995 年 6 月发布了更强大和易于安装的 FreeBSD 2.0.5 版本。

从那时候开始,每当对旧版本的功能,速度及特性进行改进后便会发布一系列新版本。

目前,长期开发项目处在13.X-CURRENT(trunk)分支。快照版本处在12.X分支。可以在快照服务器 看到发布进程。

1.3.2. FreeBSD 项目目标

贡献者: Jordan Hubbard.

FreeBSD 项目的目标是提供可用于任何目的且不附加任何条件的软件。我们当中的许多人对代码 (和项目) 有大量投资,当然不会介意偶尔从中获得一点经济补偿,但我们绝对不准备一直这样做。我们认为,我们的首要使命是为任何人提供代码,无论其出于何种目的,以便代码得到尽可能广泛的使用,并提供尽可能广泛的好处。我认为,这是自由软件最基本的目标之一, 也是我们孜孜不倦所追求的目标。

我们的源代码树中有一些是以 GNU 通用公共许可证(GPL)或较宽松通用公共许可证(LGPL)协议发布的,他们附带的说明文字略多,但至少是要求开源而不是闭源。然而,由于GPL软件的商业用途可能会产生难以预料的麻烦。如果可以选择,我们确实更喜欢在更为宽松的 BSD 协议下发布软件。

1.3.3. FreeBSD 开发模式

贡献者:Satoshi Asami.

FreeBSD 的开发是一个非常开发和轻松的过程。实际上,FreeBSD 构建于世界各地成千上万的贡献之上。比如我们的贡献者名单。FreeBSD 的开发架构允许数千个开发者通过网络进行协作。我们欢迎新的新的开发者加入我们,带给我们更多灵感。希望加入 FreeBSD 开发的朋友可以联系FreeBSD 技术讨论列表。希望了解 FreeBSD 工作动态的用户可以订阅FreeBSD 公告邮件列表

了解 FreeBSD 项目及其开发过程的有用信息,无论是独立工作还是密切合作:

SVN 源

几年来, FreeBSD 的中心源代码树一直由CVS (并发版本系统) (并行版本系统) 维护,这是一个免费的源代码控制工具。2008年6月,该项目改用SVN (Subversion)。由于源代码树的迅速扩展和已经存储的历史量, CVS 所施加的技术限制变得越来越明显,因此这种转换是必要的。文档项目和 Port 存储库也分别于2012年5月和2012年7月从 CVS 转移到 SVN。有关获取 FreeBSD src/信息请参考Obtaining the Source,有关使用 Port 的详细信息, 请参阅Using the Ports Collection

Committer 列表

committer是具有对 Subversion 仓库的写入访问权限的人员,并有权对 FreeBSD 源进行修改(术语提交器来自提交,源代码管理命令用于向存储库中引入新更改)。任何人都可以将 Bug 提交到Bug 数据库。在提交 Bug 报告之前,FreeBSD 邮件列表、IRC 频道或论坛可用于帮助验证问题实际上是 Bug。

FreeBSD 核心团队

The FreeBSD core team would be equivalent to the board of directors if the FreeBSD Project were a company. The primary task of the core team is to make sure the project, as a whole, is in good shape and is heading in the right directions. Inviting dedicated and responsible developers to join our group of committers is one of the functions of the core team, as is the recruitment of new core team members as others move on. The current core team was elected from a pool of committer candidates in July 2018. Elections are held every 2 years.

注意:

与大多数开发人员一样, 核心团队的大多数成员在 FreeBSD 开发方面也是志愿者, 在财务上并不受益, 因此 承诺 也不应被误解为 有保证支持的含义 董事会 上面的类比不是很准确, 也许更适合说, 这些人放弃了自己的生命, 支持 FreeBSD, 反对他们更好的判断!

外部贡献者

最后, 但绝对不是最不重要的, 最大的开发人员组是用户自己, 他们几乎不断地向我们提供反馈和错误修复。与 FreeBSD 更非集中的开发保持联系的主要方式是订阅 FreeBSD 技术讨论邮件列表 在这种情况下事情的讨论。有关各种 FreeBSD 邮件列表的详细信息, 请参阅 附录 C, 网络资源

The FreeBSD 贡献者名单 是一个漫长而不断发展的过程,那么为什么不加入它,在今天就把一些东西贡献给 FreeBSD 呢?

提供代码并不是为项目做出贡献的唯一方式;有关需要做的事情的更完整的清单, 请参阅 FreeBSD 项目网站

总之, 我们的开发模型被组织为一组松散的同心圆。集中式模型是为了方便 用户 FreeBSD, 他们提供了一种简单的方法来跟踪一个中央代码库, 而不是不让潜在的贡献者!我们的愿望是提供一个稳定的操作系统与大量的相干 application programs。用户可以轻松地安装和使用-这种模型在实现这一目标非常好的工作。

我们所要求的是那些愿意加入我们的 FreeBSD 开发者,是它现在的人对它的持续成功所做的一些同样的奉献!

1.3.4. 第三方软件

除了基本发行版外, FreeBSD 还提供了一个移植的软件集合,其中包含数千个通常需要的程序。在撰写本文时, 有超过 24, 000个 Port!Port 列表的范围从 http 服务器到游戏、语言、编辑器, 以及介于两者之间的几乎所有内容。整个 Port 集合需要大约 500 MB。若要编译Port。只需更改为要安装的程序的目录。键入 make install,并让系统完成其余操作。您生成的每个端口的完整原始分发将动态检索,因此您只需要足够的磁盘空间即可生成所需的端口。几乎每个 Port 也都是作为预编译的 提供的,不希望从源编译自己的端口的人可以使用命令 ( pkg install ) 进行安装。有关包和 Port 的更多信息, 请参见第 4 章 使用 Package 和 Ports 安装应用程序

1.3.5. 附加文档

所有受支持的 FreeBSD 版本都在安装程序中提供了一个选项, 可以在初始系统安装过程中在/usr/local/share/doc/freebsd下安装其他文档。文档也可以在以后使用 第 23.3.2 节 “自Port更新说明文件”中所述的软件包在以后的任何时间安装。您可以使用以下 Url 查看本地安装的手册以及任何支持 HTML 的浏览器:

您还可以在 https://www.FreeBSD.org/中查看主副本 (也是最经常更新的副本)。

本文档和其它文档可从这里下载: ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

如果对于FreeBSD有问题,请先阅读 文档,如不能解决再联系 <questions@FreeBSD.org>.

关于本文档的问题请发信联系 <doc@FreeBSD.org>.