面向 Linux 用户的 FreeBSD 比较介绍面向 Linux 用户的 FreeBSD 比较介绍面向 Linux 用户的 FreeBSD 比较介绍面向 Linux 用户的 FreeBSD 比较介绍
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

面向 Linux 用户的 FreeBSD 比较介绍

介绍

FreeBSD 是一个自由开源的类 Unix 操作系统和一个流行的服务器平台。虽然 FreeBSD 和其他基于 BSD 的系统与 Linux 等系统有很多共同点,但这两个系列在一些重要方面存在差异。

在本指南中,我们将简要讨论 FreeBSD 和 Linux 之间的一些共性,然后再进一步讨论它们之间的重要区别。下面的许多要点都可以准确地应用于更大的 BSD 派生系统系列,但由于我们的重点,我们将主要指 FreeBSD 作为该系列的代表。

注意:自 2022 年 7 月 1 日起,DigitalOcean 不再支持通过控制面板或 API 创建新的 FreeBSD Droplet。但是,您仍然可以使用自定义图像启动 FreeBSD Droplet。按照我们的产品文档了解如何将自定义图像导入 DigitalOcean。

FreeBSD 和 Linux 共有的特性

在我们开始研究 FreeBSD 和 Linux 的不同之处之前,让我们从广义上讨论一下这些系统的共同点。

虽然每个系列使用的特定许可不同(我们将在稍后讨论),但这两个系列的系统都是免费和开源的。用户可以根据需要查看和修改源代码,并且开发是公开进行的。

FreeBSD 和基于 Linux 的发行版本质上都是类 Unix 的。 FreeBSD 与过去的 Unix 系统有着密切的渊源,而 Linux 是作为一种开放的类 Unix 替代品从头开始创建的。这种关联会告知有关系统设计、组件应如何互操作以及对系统外观和完成情况的一般期望的决策。

常见的类 Unix 行为主要是因为这两个系列大多都符合 POSIX 标准。系统的整体感觉和设计相当标准化,并使用相似的模式。文件系统层次结构的划分类似,shell 环境是两个系统交互的主要方法,编程 API 具有相似的特性。

由于这些考虑,FreeBSD 和 Linux 发行版能够共享许多相同的工具和应用程序。有些情况表明这些程序的版本或风格在系统之间有所不同,但与非类 Unix 系统相比,应用程序可以更容易地移植。

考虑到这些要点,我们现在将继续讨论这两个操作系统系列的不同领域。希望这些共性将帮助您更准确地消化有关它们差异的信息。

许可差异

FreeBSD 和 Linux 系统之间最根本的区别之一是许可问题。

Linux 内核、基于 GNU 的应用程序以及源自 Linux 世界的许多软件都在某种形式的 GPL 或 GNU 通用公共许可证下获得许可。此许可证通常被描述为“copyleft”许可证,这是一种允许自由查看、分发和修改源代码的许可形式,同时要求任何衍生作品保持该许可。

另一方面,FreeBSD,包括内核和由 FreeBSD 贡献者创建的任何工具,在 BSD 许可下许可其软件。这种许可类型比 GPL 更宽松,因为它不需要衍生作品来维护许可条款。这意味着任何人或组织都可以使用、分发或修改程序,而无需回馈更改或发布他们正在创建的作品的源代码。唯一的要求是原始版权和 BSD 许可证的副本包含在衍生作品的源代码或文档(取决于发布方法)中,并且包含提供的限制责任的免责声明。主要许可证很短,可以在这里找到。

每种许可类型的吸引力几乎完全取决于理念和用户的需求。 GPL 许可证促进共享和开放生态系统高于所有其他考虑因素。专有软件必须非常小心,不要依赖基于 GPL 的软件。另一方面,BSD 许可的软件可以自由地合并到专有的封闭源代码应用程序中。这使得它对许多希望通过软件获利的企业和个人更具吸引力,因为可以直接销售软件并保留源代码。

开发人员往往更喜欢一种许可理念而不是另一种许可理念,但每种许可理念都有其优势。了解这些系统的许可可以帮助我们开始了解进入它们开发的一些选择和理念。

FreeBSD 血统及其影响

FreeBSD 和 Linux 系统之间的另一个重要区别是每个系统的沿袭和历史。除了上面讨论的许可差异外,这可能是每个阵营所坚持的哲学的最大影响因素。

Linux 是 Linus Torvalds 开发的内核,用于替代他在赫尔辛基大学使用的面向教育但限制性强的 MINIX 系统。结合其他组件(许多来自 GNU 套件),基于 Linux 内核构建的操作系统具有许多类 Unix 的属性,尽管它不是直接从以前的 Unix 操作系统派生而来。由于 Linux 是从头开始的,没有一些继承的设计选择和遗留考虑,因此它可能与与 Unix 联系更紧密的系统有很大不同。

FreeBSD 与其 Unix 传统有许多直接联系。 BSD,或 Berkeley Software Distribution,是加州大学伯克利分校创建的 Unix 发行版,它扩展了 AT&T 的 Unix 操作系统的功能集,并具有同意的许可条款。后来,决定尝试用开源替代品尽可能多地替换原来的 AT&T 操作系统,这样用户就不需要获得 AT&T 许可证就可以使用 BSD。最终,原始 AT&T Unix 的所有组件都在 BSD 许可下重写,并作为 386BSD 移植到 i386 架构。 FreeBSD 是从这个基础上分叉出来的,目的是维护、改进和现代化已经存在的工作,并最终出于许可问题而重新基于一个名为 BSD-Lite 的不完整版本。

通过漫长和多阶段的推导过程,FreeBSD 在许可方面变得畅通无阻,但与过去保持着密切的联系。致力于创建该系统的开发人员一直致力于 Unix 的做事方式,这可能是因为 FreeBSD 始终旨在作为 Unix 的公开许可克隆来运行。这些根源影响了任何进一步发展的方向,也是我们将讨论的一些选择背后的原因。

核心操作系统与附加软件的分离

FreeBSD 和 Linux 发行版之间在开发工作和系统设计方面的一个关键区别是系统的范围。 FreeBSD 团队将内核和基本操作系统作为一个整体来开发,而 Linux 在技术上仅指内核,其他组件来自各种来源。

这似乎是一个很小的差异,但实际上会影响您与每个系统交互和管理的方式。在 Linux 中,发行版可能会将一组选定的软件包捆绑在一起,以确保它们能够很好地协同工作。然而,大多数组件将来自广泛的来源,发行版开发人员和维护人员的任务是将它们塑造成一个正常运行的系统。

从这个意义上说,基本组件与通过发行版存储库提供的可选包没有太大区别。该发行版的包管理工具用于以完全相同的方式跟踪和管理这些组件。一个发行版可能会根据哪些团队负责某些包来维护不同的存储库,因此核心开发团队必须只担心可用软件的一个子集,但这是组织和重点上的差异,通常不会导致软件差异从用户的角度进行管理。

相比之下,FreeBSD 维护着一个完整的核心操作系统。内核和一系列软件(其中许多是由 FreeBSD 开发人员自己创建的)作为一个单元进行维护。更换属于该核心集合的组件并不那么简单,因为从某种意义上说,它是一个整体软件集。这使得 FreeBSD 团队能够非常密切地管理主要操作系统,确保紧密集成和更高的可预测性。

核心操作系统中包含的软件被认为完全独立于作为可选添加提供的组件。 FreeBSD 提供了大量的可选软件,就像 Linux 发行版一样,但这是单独管理的。核心系统作为一个单独的单元独立更新,可选软件可以单独更新。

发布是如何形成的

大多数 Linux 发行版都是从各种来源收集软件并根据需要进行修改的结果。发行版维护者决定将哪些组件包含在安装介质中,哪些组件包含在发行版维护的存储库中,等等。一起测试这些组件后,将创建包含测试软件的版本。

在上一节中,我们了解到:

  • FreeBSD 操作系统的很大一部分是由 FreeBSD 团队开发的。
  • 基本操作系统是正在生成的主要输出。
  • 基础软件被认为是一个内聚的整体。

这些品质导致了与大多数 Linux 发行版不同的软件发布方法。因为 FreeBSD 在操作系统级别组织事物,所以所有基本组件都在单个源代码存储库中维护。这有几个重要的含义。

首先,由于这些工具都是在单个存储库中串联开发的,因此只需选择存储库分支之一的修订版即可形成发布。这类似于大多数软件的发布方式,即从有组织的代码库中选择一个稳定点。

由于基本操作系统都处于主动版本控制之下,这也意味着用户可以根据他们希望系统组件经过多好的测试来“跟踪”不同的分支或稳定性级别。用户不必等待开发人员批准更改以使它们进入他们的系统。

这有点类似于用户跟踪某些 Linux 发行版中按稳定性组织的不同存储库。在 Linux 中,您可以跟踪一个包存储库,而在 FreeBSD 中,您可以跟踪一个集中源代码存储库的分支。

软件差异与系统设计

我们将讨论的其余差异将与软件本身和系统的一般质量有关。

支持的包和源安装

从用户的角度来看,FreeBSD 与大多数 Linux 发行版之间的主要区别之一是打包软件和源安装软件的可用性和支持。

虽然大多数 Linux 发行版仅提供发行版支持的软件的预编译二进制包,但 FreeBSD 包含预构建包以及用于从源代码编译和安装的构建系统。对于大多数软件,这允许您在使用合理默认值构建的预编译包和在编译过程中通过自己构建来自定义软件的能力之间进行选择。 FreeBSD 通过一个称为“ports”的系统来做到这一点。

FreeBSD 端口系统是 FreeBSD 知道如何构建的软件集合。 /usr/ports 目录中提供了代表此软件的有组织的层次结构,用户可以在该目录中深入了解每个应用程序的目录。这些目录包含一些文件,这些文件指定了可以获得源文件的位置,以及有关编译器如何正确修补源代码以在 FreeBSD 中正常工作的说明。

软件的打包版本实际上是从 ports 系统生成的,这使得 FreeBSD 成为一个源代码优先的发行版,提供方便的软件包。您的系统可以由源代码构建和预打包软件组成,软件管理系统可以充分处理这两种安装方法的组合。

香草与定制软件

对于熟悉一些更流行的 Linux 发行版的用户来说,一个可能看起来有点奇怪的决定是 FreeBSD 通常选择尽可能提供未修改的上游软件。

许多 Linux 发行版都对软件进行了修改,以便更容易与其他组件连接并尝试使管理更容易。这种趋势的一个很好的例子是重组常见的 Web 服务器配置层次结构以使服务器配置更加模块化。

虽然许多用户发现这些更改很有用,但这种方法也有缺点。进行修改的一个问题是它假定知道哪种方法最适合用户。它还使来自其他平台的用户更加难以预测软件,因为它与上游约定不同。

FreeBSD 维护人员通常确实使用补丁修改软件,但这些通常比某些 Linux 发行版的软件包选择更保守。通常,对 FreeBSD 生态系统中软件的修改是使软件在 FreeBSD 环境中正确构建和运行所必需的修改以及定义一些合理的默认值所需的修改。放置在文件系统上的配置文件通常不会进行大量修改,因此可能需要进行一些额外的工作才能使组件相互通信。

常用工具的 FreeBSD 风味

FreeBSD 系统的另一个可能让 Linux 用户感到困惑的方面是熟悉的工具的可用性,这些工具的操作与在 Linux 系统上的操作略有不同。

FreeBSD 团队维护着大量常用工具的自己版本。虽然 Linux 系统上的许多工具都来自 GNU 套件,但 FreeBSD 经常为其操作系统推出自己的变体。

这个决定有几个原因。由于 FreeBSD 负责开发和维护核心操作系统,因此控制这些应用程序的开发并将它们置于 BSD 许可之下是必要的或有用的。这些工具中的一些还与派生它们的 BSD 和 Unix 工具有密切的功能联系,这与 GNU 套件不同,后者通常倾向于不太向后兼容。

这些差异通常体现在命令的选项和语法中。您可能习惯于在 Linux 机器上以某种方式运行命令,但这些在 FreeBSD 服务器上的工作方式可能不同。经常检查命令的 man 页面以熟悉 FreeBSD 变体的选项是很重要的。

标准外壳

一个可能引起混淆的相关点是 FreeBSD 中的默认 shell 不是 bash。相反,FreeBSD 使用 tcsh 作为它的默认 shell。

这个shell是csh的改进版,是为BSD开发的C shell。 bash shell 是一个 GNU 组件,因此将其作为 FreeBSD 的默认设置是一个糟糕的选择。虽然这两个 shell 通常在命令行上以相似的方式运行,但不应在 tcsh 中编写脚本。使用基本的 Bourne shell sh 更可靠,并且避免了一些与 tcsh 和 csh 脚本相关的有据可查的陷阱。

还值得注意的是,如果您更喜欢那种环境,将 shell 更改为 bash 非常简单。

更分层的文件系统

我们在上面多次提到,FreeBSD 区分基本操作系统和可以安装在该层之上的可选组件或端口。

这对 FreeBSD 如何在文件结构中组织组件有影响。在 Linux 中,可执行文件通常位于 /bin、/sbin、/usr/sbin 或 /usr/bin 目录,具体取决于它们的用途以及它们对核心功能的重要性。 FreeBSD 认识到这些差异,但也在作为基本系统的一部分安装的组件和作为端口安装的组件之间强加了另一层分离。基本系统软件位于上述目录之一。任何作为端口或包安装的程序都放在 /usr/local/bin 或 /usr/local/sbin 中。

/usr/local 目录包含的目录结构主要反映了 / 或 /usr 目录中的结构。这是通过 ports 系统安装的软件的主要根目录。几乎所有端口配置都是通过位于 /usr/local/etc 中的文件完成的,而基本系统配置照常保存在 /etc 中。这使得识别应用程序是否是基本系统端口的一部分变得容易,并有助于保持文件系统清洁。

最后的想法

FreeBSD 和 Linux 有许多共同点,但如果您有 Linux 背景,那么识别和理解它们的不同之处很重要。在他们的路径不同的地方,两种系统都有它们的优势,来自任何一个阵营的支持者都可以指出做出选择的原因。

将 FreeBSD 视为自己的操作系统,而不是坚持通过 Linux 镜头来看待它,这将帮助您避免与操作系统发生冲突,并且通常会带来更好的体验。到目前为止,我们希望您对前进过程中需要注意的差异有相当好的理解。

如果您不熟悉运行 FreeBSD 服务器,下一步可能是我们的 FreeBSD 入门指南。

©2015-2025 艾丽卡 support@alaica.com