本文是“攻玉计划”的一部分,翻译自 https://www.ateamsystems.com/tech-blog/freebsd-vs-linux-which-open-source-os-is-superior/
FreeBSD 和 Linux,哪一个更强大?这个问题没那么简单。它们各有春秋,不能一概而论。
来自我们 A-Team Systems 的专家们有数十年这两个系统的使用经验,所以,我们将详细阐述这两个系统的优势和劣势,供你选择最适合的系统。
让我们比较一下这两个 Unix 系统的关键几个方面:
在这一点上,FreeBSD 更有优势。
这是因为 Linux 实际上并不是一个完整的操作系统,而只是一个内核。这是一个很常见的误解,因为很多用户经常把 Linux 看成是一个完整的操作系统。
各个 Linux 发行版通常会将必需的软件和库文件打包进系统,这些软件和库文件大多来自 GNU 项目,所以自由软件基金会才将 Linux 称作“GNU/Linux”。
以下是一些流行的 Linux 发行版:
关于价格,二者不分胜负。因为作为开源软件,FreeBSD 和 Linux 自然都是免费的。
译者按:在译者看来,开源并不一定意味着免费,很多开源许可证并不允许商用。当然,Linux 和 FreeBSD 是允许免费商用的。
你可能需要为某些额外功能付费,比如服务支持、硬件等。
任何人都可以免费使用、修改、分发、查阅 Linux 及 FreeBSD 的源代码。但是,任何对 Linux 所作的修改都必须公开源码。
而 FreeBSD 并不需要公开,因此,需要在产品中使用相关源码的公司,在这一点上可能更倾向于使用 FreeBSD。
FreeBSD 比 Linux 略微更安全一点。FreeBSD 项目的核心支柱之一就是安全性,并且预先安装了顶级的安全功能,所以在这一点上,毫无疑问它更有优势。
但这也并不意味着 Linux 不安全。Linux 是高度可配置的,因此可以实现你想要的任何安全特性。但是从操作系统整体角度来看,FreeBSD 的安全性更高。
如果比较硬件与架构支持度的话,Linux 绝对是占优势的。Linux 可以在许多不同的平台上运行,但是 FreeBSD 不行。所以,如果你很在乎兼容性和跨平台性,请选择 Linux。
但这也是一把双刃剑,为了能在大量不同的平台上运行,Linux 必须牺牲一部分性能以换取兼容性。而另一方面,FreeBSD 无需牺牲性能,因为它只需要在有限数量的平台上运行即可。
由于 Linux 是一个主流的系统,而 FreeBSD 不是,所以设备制造商更倾向于制造兼容 Linux 的软硬件。举个例子,如果你需要经常更新显卡驱动,Linux 会比 FreeBSD 更快获取相关更新支持。
FreeBSD 对硬件支持的短板大多集中在外设和显卡这种桌面级应用方面。但 FreeBSD 的目标场景是服务器应用,所以这并没有多大影响。
Linux 和 FreeBSD 都相当稳定可靠。但如果必须得比个高下的话,FreeBSD 会更稳定一点。这又回到了一个事实:FreeBSD 更有组织性。Linux 的稳定性可能会被用户使用的额外组件而拖累。而与此同时,FreeBSD 是一个完整的操作系统,所以它的默认配置更加可靠。总而言之,二者都不缺乏稳定性。
虽然业界没有确凿的证据证明 FreeBSD 比 Linux 的性能更优,但是大多数用过二者的用户都说 FreeBSD 在这方面更强一点。这同样归咎于 Linux 的高兼容性。FreeBSD 更精简,无需对环境做额外的判断,因此通常来说它的性能更好。
FreeBSD 的延迟比 Linux 更低。这里延迟指的是系统时钟中断发生后,到处理器开始运行代码的这段时间。但是大多数应用在 Linux 上跑得更快。
FreeBSD 使用了它自己的 BSD 许可证。该许可证允许用户免费使用该操作系统,并随意修改源码。如果愿意的话,用户也可以发布修改后的源码,或者直接闭源,BSD 许可证允许他们这么做。
Linux 使用的是 GNU GPL 许可证(GNU通用公共许可协议)。用户可在遵循该许可证限制的情况下随意修改源码。主要区别是,如果你对 Linux 源码作了修改,那么法律意义上你必须公开你的代码。
译者按:译者认为这是片面的,如果你修改代码并仅供自己研究使用,那么不需要公开代码。你只需要把源码公开给用户即可。
这个许可证既有好处也有坏处,最大的劣势就是,用户不能用 Linux 开发闭源的系统。而优势是,所有用户都可互相贡献代码,推动整个项目前进。这也是 Linux 能有这么大社区的原因。
大多数用户无需关心本节的区别,因为大多数人根本不会修改源码。但如果你想使用一个开源的系统来开发闭源的系统,请选择 FreeBSD 而不是 Linux。
从用户角度,大多数人可能认为 Linux 默认的 BASH 比 FreeBSD 的 tcsh 更强大,因为 tcsh 太落伍了。BASH 非常灵活,用户几乎可以在任何 Unix 兼容的系统上做任何事。但这也并不意味着 tcsh 一无是处,tcsh 只是学习路线更陡峭而已。当然,在 FreeBSD 上安装 BASH 也很简单。
这一方面,二者也是平手。Linux 和 FreeBSD 都采用了非常高效的文件系统。
FreeBSD 默认使用 ZFS(泽字节文件系统),这绝对是长期存储数据的最佳文件系统之一。它内置了一个磁盘卷管理器,因此允许用户在同一个存储池上创建多个文件系统。因此在发生物理故障、操作失误或者数据损坏的情况下,仍能保证数据一定的可靠性。
ext4 是大多数 Linux 发行版的默认文件系统。它不如 ZFS 那么灵活,但相当可靠。
这一轮 Linux 获胜。IBM、戴尔和惠普的服务器都直接支持运行 Linux。FreeBSD 也能在这些服务器上运行,并且有 A-Team Systems 团队可提供支持。你可以查阅 FreeBSD 的 硬件制造商 以了解当前所支持的硬件。
当考虑更新时,你需要关注两方面:更新的便捷度以及更新发布是否及时。
在便捷度方面,FreeBSD 更胜一筹。用户可以依其意愿选择更新某些组件,比如,你可以只更新某些核心组件,比如内核、源码等,或者只更新它们的子组件。当然也可以全部更新,操作非常简单。
而对于更新的及时度,Linux 表现得更好。开源公司通常有很强的动力去更新,因此,只要有需求,更新很快就能发布。FreeBSD 可能需要花更长的时间去开发、发布更新,但事实上,Linux 和 FreeBSD 经常可以同时获取相关更新,因为他们使用了同样的上游项目。
在 FreeBSD 上安装软件包很简单。FreeBSD Ports 项目包含了将近 40000 个软件源,用户或管理员可以方便快捷地安装它们。每个软件源都有针对用户实际系统的相关补丁,以确保软件能在特定平台上正常运行。
而不同 Linux 发行版的包管理工具就参差不齐了,有些非常棒,有些就很一般。以下是一些做得比较好的包管理工具:
FreeBSD 核心团队有 9 名成员,并在世界范围内有大约 500 名代码贡献者。这个团队负责调试、开发并优化主线代码仓库。大多数贡献者都是不求回报的志愿者,核心团队成员由所有活跃的贡献者每两年一次投票选出。
而 Linux 内核由 Linus Torvals 先生管理维护,他也是 Linux 的缔造者。Linus 先生对 Linux 的新功能拥有最终决定权。
FreeBSD 是一个完整的操作系统,拥有内核、驱动、文档以及各种工具。Linux 只有内核以及部分驱动,并且依赖第三方系统软件才能运行。FreeBSD 的源码使用 BSD 许可证,而 Linux 使用 GPL 许可证。
Linux 广泛支持各种硬件,而 FreeBSD 支持的硬件非常有限。Linux 也是当前市场上最流行的开源操作系统,所以不缺各种支持。FreeBSD 也有非常忠实的用户群,但远不能与 Linux 的用户群相提并论。
FreeBSD 的安全问题通常比 Linux 更少,但是差距并不大。Linux 的用户比 FreeBSD 更多,所以也会发现更多的漏洞。由于 FreeBSD 提供了完整的操作系统,所以其默认配置非常安全。
Linux 系统的安全性取决于用户的配置。由于其高度的可定制化,Linux 用户可以让他们的系统变得几乎牢不可破。
FreeBSD 提供了与 Linux 的 二进制兼容性。这允许用户在 FreeBSD 系统上安装并运行 Linux 的二进制程序。FreeBSD 上默认没有安装 Linux 的相关库文件,但可以从 FreeBSD Ports 上安装,或者手动安装。
这其中有多个原因。一方面,FreeBSD 缺乏硬件支持,这就限制了用户使用它的场景。
另一个原因是 FreeBSD 缺乏商业支持。有如 Red Hat 这样的大公司能确保 Linux 及时获取更新支持,但对于 FreeBSD 而言这是不可能的。
最后,Linux 拥有数量众多的软件,允许其发挥最大的灵活性和可用性。FreeBSD 提供了一些预编译的软件包,但仍无法与 Linux 相比。
FreeBSD 和 Linux 都需要一定的学习成本。但是,FreeBSD 相对而言更易学习使用,因为它没有那么多学习选项,例如发行版、包管理工具等等。
大多数开发者认为,比起 FreeBSD,Linux 太混乱了。对于同一个任务有无数种实现方案,并且不同的用户对应该如何选择方案有不同(且强烈)的意见。Linux 社区是一个快节奏的社区,经常经历变化。因此,很多用户更喜欢 FreeBSD 社区的一致性和条理性。
总的来说,FreeBSD 通常比 Linux 更快。这主要是因为它是一个完整的系统。此外,FreeBSD 的延迟比 Linux 低,也就意味着它能更快处理输入。有如网飞、苹果和思科之类的公司会采用 FreeBSD 以获取这种处理速度优势。
Linux 也能获得类似的速度,但是,这取决于你的配置。还值得注意的是,大多数应用程序在 Linux 上运行得更快。因此大多数超级计算机会使用 Linux 而不是 FreeBSD。
FreeBSD 和 Linux 都可作为开源用户的选择。最主要的区别就是,FreeBSD 更完整,更标准化,而 Linux 只提供了内核及驱动,需要第三方软件支持。
如果想要尽可能少地配置系统,FreeBSD 是更好的选择。但是,Linux 提供了更多的自定义选项,对于想要定制系统的人是个更好的选择。另外,如果你有硬件平台限制的话,Linux 的支持性可能更好点。
如果你喜欢紧跟技术潮流,Linux 的新技术、新特性和更新速度肯定会让你满意。如果稳定性、性能和安全性对你来说更重要,FreeBSD 也许更适合你。