FreeBSD Friday

  • 原文链接:[FreeBSD Friday](https://freebsdfoundation.org/wp- content/uploads/2020/09/FreeBSD- Friday.pdf)

  • 作者:DEB GOODKIN

这是几场入门讲座和 101 课程中的第一场,旨在帮助您入门 FreeBSD。本系列由 Deb Goodkin 主讲的《FreeBSD 简介》拉开序幕。

我是 Deb Goodkin,FreeBSD 基金会的执行董事。欢迎来到我们的 FreeBSD Friday 讲座,这是后续几个月内我们将涵盖的众多入门主题中的第一场。

许多听众可能是 FreeBSD 的新手,但我也假设我们当中有来自社区的成员。因此,本次讲座将是一个非常基础的 FreeBSD 入门信息会——对部分人而言可能也是一次复习。

我自己也在不断学习 FreeBSD,所以我会观看这些讲座,并与你们一起学习。感谢你们和我一起踏上这段旅程。

今天的讲座是对 FreeBSD 的一个非常基础的介绍。接下来的两场 FreeBSD Friday 讲座将专注于 FreeBSD 入门,包括由 Roller Angel 主讲的“安装章节”(Installfest)第 1 和第 2 部分。您可以观看他一小时的演示,该内容将被录制。之后,当您准备在自己的系统上安装 FreeBSD 时,可以随时访问这些课程,并按照自己的节奏学习。

在 Roller Angel 的课程之后,我们将迎来 Dr. Marshall Kirk McKusick(《BSD 快速文件系统的历史》)。大多数人认识他是因为他创造了 Fast Filesystem。这将是一场录播讲座,但 Kirk McKusick 会在最后进行问答互动。然后,我们计划的最后一场讲座是 Dan Langille 主讲的《ZFS 简介》。您可能不仅在社区中认识 Dan,还知道他是 BSDCan 的组织者。

我建议大家关注基金会的网页,我们将陆续推出更多 FreeBSD 101 级别的讲座,帮助大家了解 FreeBSD 的各个领域。

虽然我已经做了自我介绍,但这里再补充一些背景信息。我于 2005 年加入 FreeBSD 基金会。在此之前,我曾是一名存储领域的开发人员,主要从事磁盘驱动器的开发——最初是一名固件工程师,后来进入不同的研究和开发领域,并从事市场营销和技术销售工作。基金会的目标是支持 FreeBSD 操作系统及其社区,因此深入理解 FreeBSD 对我而言至关重要。我个人对学习它感到非常有趣,并且享受这个过程。

今天的目标是为大家提供非常基础的 FreeBSD 概览,包括人们为什么使用它、这个项目是如何运作的、为什么你应该使用它并为其做出贡献。我们的目标是传播信息、教育公众,并吸引更多人使用和贡献 FreeBSD。

让我先说一句,即使到了 2020 年,仍然有人不清楚 FreeBSD 不是 Linux 发行版。当有人问你的“最喜欢的 Linux 发行版”时,有时候他们会把 FreeBSD 也算进去,这的确容易让人困惑。所以,我们一直在努力让大家理解——FreeBSD 不是 Linux,它不是 Linux 发行版。尽管如此,我也知道他们会把 FreeBSD 算进去的原因,那是因为 FreeBSD 太受欢迎了。真正的问题应该是:你最喜欢的操作系统是什么?

FreeBSD 由三个不同的组成部分构成:第一部分是实际的操作系统,这正是你们在 Roller Angel 的指导下要安装到计算机上的内容。 第二部分是社区——正在观看这场直播的人、对 FreeBSD 感兴趣的人,以及想要开始使用、尝试、探索并为其做出贡献的人。 第三部分是基金会,由我负责管理。基金会实际上是一个独立的组织,今天在结束前我会介绍我们具体做些什么。

那么,FreeBSD 到底是什么?它是世界上历史最悠久、规模最大、最成功的开源项目之一。它是一款完整的操作系统,并且支持 33,000 余个第三方软件包。我们的社区由技术水平极高、富有奉献精神的贡献者组成,整个项目有一千余名贡献者。FreeBSD 可以运行在所有主流平台上,并且我们持续确保它能够支持新的架构,同时也能运行在大多数主流云服务提供商的平台上。全球已有数千万台设备在运行 FreeBSD。

接下来简单回顾一下历史:FreeBSD 源自 BSD,而 BSD 本身则起源于 AT&T UNIX。后来,FreeBSD 和 NetBSD 从 BSD 分支而出,而 OpenBSD 又是从 NetBSD 分支出来的。如果有机会,你可以去基金会网站查看时间轴,那真的很有趣。UNIX 诞生于 1969 年,最初是在 AT&T 实验室中开发的,而伯克利大学在 1974 年开始对其进行改进和修改。第一款不受 AT&T 版权限制的操作系统 386BSD 于 1992 年发布,并在此基础上继续发展。我们将 BSD 的生日定为 6 月 19 日,因为当时 BSD 这个名字——Berkeley Software Distribution(伯克利软件发行版)正式被采用。至今,我们已经经历了 27 年的创新与发展。

我想在这个时候提一下 1992 年的一场相关诉讼。之所以提到它,是因为这场诉讼持续了大约两年,并且在那段时间内极大地限制了 BSD 的开发和普及。大部分当时参与开发的人都被这场诉讼分散了注意力,导致进展严重放缓。而正如你们中的一些人所知道的,那正是 Linux 崛起的时期。有时候人们会问:为什么 Linux 能够迅速流行起来?其中一个回答就是——这场诉讼是原因之一,甚至可能是主要原因。

UNIX 在 1969 年诞生后,大多数主要的计算机公司都采用了它,并开发了自己的 UNIX 版本。例如 IBM、HP 和 Sun 都拥有各自的专有 UNIX 版本。

大多数从 UNIX 衍生出来的开源版本都源自伯克利 UNIX,而 FreeBSD 直接继承了伯克利 UNIX 的血统,而伯克利 UNIX 又是从原始 UNIX 发展而来的。然而,Linux 是完全独立发展出来的,它创建了自己的开源 UNIX 版本。如果你想了解更多关于这段历史的信息,网上有许多有趣的资源可以参考。

很多公司都在使用 FreeBSD。实际上,你很可能正在使用 FreeBSD。例如,Apple 最初采用了 BSD 的组件,而 FreeBSD 的许多技术至今仍然存在于 macOS 等操作系统中。如果你正在观看 Netflix 电影,并通过流媒体播放,那背后的服务器运行的就是 FreeBSD。如果你在玩 PlayStation,那它的系统也是基于 FreeBSD。许多人可能没有意识到,但实际上许多产品和公司都基于 FreeBSD 构建,而我们所做的就是提高大家对这一点的认知。

无论是普通用户、产品开发者,还是科研人员,每个人使用 FreeBSD 的理由可能都不一样。而对于开源项目而言,吸引人们加入和贡献的原因往往是技术本身的吸引力。但是,在成千上万的开源项目中,人们最终选择加入哪一个,通常是因为这个社区。

FreeBSD 还因其优秀的文档而受到高度认可。这不仅仅是因为可以随时获取这些文档,还因为你可以在一个地方找到几乎所有的相关信息,包括完整的手册页,甚至可以直接安装 FreeBSD 手册。这完全取决于你的需求。

此外,FreeBSD 的基础系统非常小巧,你可以按需安装自己需要的软件包。所有的软件包都保持最新版本,并且来自官方的统一软件仓库。如果我想安装 Firefox,我不需要去 Firefox 的官方网站下载,它已经在 FreeBSD 自己的基础设施上提供了官方的软件包。

正如我之前提到的,FreeBSD 还支持多种 CPU 架构,并且采用了 BSD 许可证。如果你只是一个普通的桌面用户,像我一样在自己的电脑上安装 FreeBSD,可能不会太在意 BSD 许可证。但对于许多开发者和商业用户,这却是一个至关重要的因素。此外,FreeBSD 以其稳定性、安全性和可靠的性能而闻名。

FreeBSD 项目是独立于 FreeBSD 基金会的,它由核心团队(Core Team)领导。开发者需要通过导师制度(mentorship process)获取提交权限(commit bit)。整个社区由个人贡献者和功能团队组成,他们共同构建并维护这个操作系统。整个项目采用协作开发模式(collaborative development model),这使得 FreeBSD 的发展更加高效和持续。

我们有两个高层级的职能组织。FreeBSD 基金会是个正式组织,而 FreeBSD 项目则是志愿者团队。在 FreeBSD 项目之下,有核心团队(Core Team),在核心团队之下,又有许多不同的功能团队,比如安全团队(Security Team)、文档团队(Document Team)等。这些团队相互协作,共同打造 FreeBSD。整个项目由多个不同的团队支持,这为贡献者提供了多种参与方式,使他们能够以不同的方式做出贡献。

核心团队每两年选举一次,候选人由志愿者自行提名(self-nominated),然后由活跃的提交者(active committers)进行投票。目前,大约有 400 名提交者(committers)。核心团队的成员都是志愿者,通常每两周开一次会议,最少每月一次。

如果社区内部发生冲突,核心团队可能会介入调解。他们还负责为 FreeBSD 提供战略方向。但他们并不会强制决策,不会告诉大家“我们就要这么做”。在 FreeBSD 项目中,开发者可以自由选择自己想要参与的领域。不过,核心团队可以鼓励大家投身于某些对 FreeBSD 发展有重要作用的领域。我们没有“仁慈的独裁者”(benevolent dictator),也没有 1% 的人掌控整个项目并做出所有决定。FreeBSD 项目属于整个社区。

从年龄层来看,项目中有许多年纪较轻的开发者,大多数年龄在 30 至 40 岁之间。但同时,也有资历更深、经验更丰富的开发者。值得一提的是,许多资深开发者自 FreeBSD 创立以来就一直在参与。

其中一些人甚至早在 BSD 还是伯克利 UNIX(Berkeley UNIX)时就已经加入,这非常令人敬佩!他们带来了非常宝贵的经验和独特的知识。年轻的开发者可以向这些资深人士学习。而且,这些长期参与 FreeBSD 项目的老成员非常平易近人,在各种技术会议上,你可以面对面地与他们交流。他们会告诉你,为什么当初做出某些决策,为什么某些方面发生了变化,在伯克利时是如何做的,而这些方法为什么今天仍然有效。

这种经验传承和知识共享是 FreeBSD 项目持续发展并保持活力的关键。此外,FreeBSD 是一个真正全球化的社区,来自世界各地的开发者共同参与,这使得社区更加多元化和国际化。

在 FreeBSD 社区的核心理念中,最小惊讶原则(Principle of Least Astonishment,POLA)是非常重要的一点。这意味着所有的更改都是为了改进 FreeBSD、增加功能、提升性能。这个社区不会为了变更而变更。正是因为遵循这一理念,FreeBSD 的变更通常不会破坏已有功能。而且由于这种哲学的成功,它已经被 FreeBSD 项目广泛采纳。

FreeBSD 有两种主要的版本发布方式——主版本(Major Release)和小版本(Point Release)。

  • 主版本:例如,12.0 版本的发布,或者明年即将发布的 13.0 版本。主版本通常每几年发布一次。

  • 小版本(点 Release):这些通常属于安全补丁或小的功能更新,大约每九个月发布一次。

此外,FreeBSD 还有两个源码分支:

  • Current 分支(最新开发版本):如果你提交代码,它首先会进入 Current 分支。

  • Stable 分支(稳定版本):只有通过测试后,Current 中的更改才会进入 Stable 分支。

说到开源项目,大家往往认为必须写代码才算贡献。编写代码确实是最直接的贡献方式,但其实还有许多同样重要的领域,例如:

  • 文档维护:FreeBSD 以优质的文档而闻名,这离不开文档贡献者(doc committers)的努力。他们与 Ports 维护者(负责维护 33,000 余个第三方软件包)一样,在社区中备受尊敬。

  • 宣传:这正是我现在在做的事情!很多人通过 YouTube 频道、技术博客、FreeBSD 教程、使用指南等方式推广 FreeBSD。任何人都可以通过写文章、制作视频、分享经验来贡献。

  • 翻译:如果你熟悉某种语言,可以翻译 FreeBSD 文档,这不仅能帮助别人,也能帮助自己更深入理解 FreeBSD。

  • 问题修复:你可以浏览 PR(Problem Report,问题报告)列表,并帮助修复一些 bug。这是一个很好的切入点!

  • 维护 Port:如果有你喜欢的软件还没有移植到 FreeBSD,你可以主动支持它!

哪怕你是一名软件工程师,我仍然建议你从贡献文档开始。例如,更新 man 手册页,你会更好地理解命令的工作原理。你可以在学习的同时贡献 FreeBSD。

当我去和各家公司谈论 FreeBSD 时,他们通常已经非常了解 FreeBSD 的历史,并且对 FreeBSD 充满信心。

  • 他们喜欢最小惊讶原则(POLA),因为这意味着系统的稳定性,即使升级到新版本,现有系统仍能正常工作。

  • 他们看重高性能(High Performance)和成熟的发布模型。

  • 优秀的文档也让他们能够快速上手和解决问题。

所有这些特性,使得 FreeBSD 成为企业首选的操作系统之一。

公司最常告诉我的使用 FreeBSD 的原因之一是 BSD 许可证。

  • BSD 许可证是一种宽松的许可证,这意味着公司可以将自己的专有技术(IP)、自己的“独门秘方”或其他自有代码与 FreeBSD 代码结合,而无需开源他们的修改。

  • 尽管如此,我们发现大多数公司仍然会贡献他们的大部分代码(当然,不包括他们的专有技术)。这不仅有利于 FreeBSD 社区,对他们自己来说也是一种好处。

另一个最常被提及的 FreeBSD 优势是对 ZFS 文件系统的支持。

顺便提一下,我强烈推荐一本书——《FreeBSD 操作系统设计与实现》,由 Marshall Kirk McKusick 和 George V. Neville- Neill 撰写。这本书是学习 FreeBSD 内核实现的绝佳资源。

FreeBSD 基金会(FreeBSD Foundation)是一家 501(c)(3) 组织,这是一种美国税务代码下的非营利公益机构。这意味着我们的目标是为了公众利益,而我们的一切工作都围绕支持 FreeBSD 项目和社区。

  • 我们的资金来源:

    • 100% 依靠捐赠,捐赠者包括个人用户和企业用户。

    • 个人捐款从 $5 到 $50,000 不等,而企业捐款一般在 $10,000 到 $1,000,000 之间。

    • 正是这些捐款,让我们得以持续支持 FreeBSD。

  • 我们的角色:

    • 我们与 FreeBSD 项目是独立的,并不会对项目进行管理或干预。

    • 我们的工作是识别 FreeBSD 的最紧迫需求,然后提供支持。

    • 我们与各家公司沟通,了解他们的使用需求、遇到的问题和痛点,并思考如何帮助他们更好地使用 FreeBSD。

    • 我们同时倾听社区的声音,关注邮件列表、社交媒体,并留意用户遇到的问题,努力提供帮助。

  • 我们的工作

    • 我们资助 FreeBSD 相关项目,无论是内部项目还是外部项目。

    • 我们推动 FreeBSD 的推广和宣传。

    • 由于当前我们无法参加线下会议,因此我们发起了 FreeBSD Friday 系列,希望通过线上分享介绍 FreeBSD 的各个方面,帮助大家相互学习。

为什么学习 FreeBSD?

如果你想学习操作系统,FreeBSD 是一个很好的入门选择,因为它的代码库较小。

  • 例如,FreeBSD 内核约有 500 万行代码,而 Linux 内核大约有 2600 万行代码。

  • 仅从源码阅读的角度来看,FreeBSD 更精简,更容易学习和理解。

为什么选择 FreeBSD 项目?

  • 我们的社区包容友好,欢迎新成员。

  • 我们有很强的“导师文化”,新贡献者可以从经验丰富的开发者那里获得指导。

  • FreeBSD 项目规模较小,这意味着你的贡献会更容易被看到,影响力也更大。

这就是 FreeBSD 的魅力所在!

最后更新于

这有帮助吗?