自从 Warty Warthog 以来,我一直在使用 Ubuntu。我正在考虑尽快安装 Jaunty;但我注意到周末NetBSD 5.0、Dragonfly BSD 2.2.1、OpenBSD 4.5和FreeBSD 7.2都发布了,所以我很好奇:
BSD有什么好处?为什么我应该或不应该安装其中之一而不是 Ubuntu?他们的主要卖点是什么?表现?稳定?硬件兼容性?使用方便?安全?它们在旧硬件上运行良好吗?它是什么?
编辑:这是从(主要是Java)桌面开发人员的角度来看的,但我也很想知道对其他人的利弊。他们是否更多地针对服务器?对于企业用户?或者是什么?
BSD 的优点
与 Linux 相比,*BSD 系列系统具有(恕我直言)一些关键优势,特别是对于服务器 O/S。
简单和控制:*BSD 发行版都没有必要添加 Linux 发行版所展示的功能。因此,大多数 BSD 派生系统的默认安装相对简单。
稳定性:部分受简单性驱动,BSD 往往是最稳定的 O/S 平台之一。 FreeBSD(它是较老的“现代” BSD 之一)为许多知名的 .com 提供支持,例如Yahoo和(在某一时刻)hotmail。 事实上,微软曾一度因为无法将 Hotmail 从 FreeBSD 迁移到 Windows 而遭受了很多尴尬。
安全性:尤其是OpenBSD在安全性方面有着非常出色的记录,而且他们的大部分工作都在 *BSD 社区中普遍存在。
可移植性:特别是NetBSD可以移植到几十个平台,并且以非常容易移植而著称。
一些弱点
对大型 SMP 配置的支持少于 Linux。随着具有大量内核的盒子越来越普遍,这将成为一个更大的问题。然而,大多数真正成为 BSD 主场的网络服务应用程序并不是那么消耗 CPU (1)。
BSD 内核上的 SMP 性能在过去十年中得到了显着提高。提高 SMP 性能是Dragonfly BSD的主要目标之一,而FreeBSD SMPNg 项目在该平台上显着提高了 SMP 性能,在 8 核平台上的性能优于 Linux。 这意味着人们可以期望在主流 2 和 4 插槽服务器上获得良好的性能。
一些辩论FreeBSD 上提供 NUMA 支持的早期工作是存在的,因为该系统目前不支持用于内存分配、亲和性管理的 API 或其他用于显式 NUMA 支持的设施。可以在此处找到有关 NUMA 支持的良好入门。
比 Linux 更小的硬件支持范围:实际上,这实际上只意味着您需要检查硬件兼容性列表中的组件。 对于服务器来说,在大多数情况下这不是问题,但安装在随机桌面 PC 上会有点棘手。如果您希望机器安装 BSD,您仍然必须逐个组件地检查,而 Linux 不太可能出现这种情况。
对桌面的重视程度较低:Linux 的桌面发行版(例如 Ubuntu)往往对多媒体、仿真和捆绑应用程序提供更丰富的桌面支持。尽管许多此类应用程序确实具有到各种 BSD 平台的端口,但桌面 Linux 发行版的开箱即用支持通常会更好。
软件方面的一些差距:很多商业 Linux 软件没有 BSD 端口。例如,主要的 JVM 供应商都没有为任何 BSD 平台维护其 Java 运行时的本机端口。在某些情况下,第三方维护端口,但在任何 BSD 上都没有对(例如)Oracle 的官方支持。这种差距在 BSD 的某些地方会出现;如果您在存在此类差距的空间中工作,BSD 可能不适合您。
一些重点
90 年代最伟大的宗教战争之一是 GPL 与 BSD。BSD 是根据 BSD 许可证获得许可的,该许可证具有与 GPL 不同的一组权利。本质上,BSD 许可证不需要您重新分发 BSD 许可软件的修改版本的源代码。
Oracle 等商业供应商对 BSD 的支持程度不及他们对 Linux 的支持程度。因此,如果您想使用这样的产品,您可能最好使用 Linux。但是,大多数都提供跨 Linux、System V、Solaris 等的二进制兼容性,因此您通常可以为另一个操作系统运行二进制文件。
BSD 社区的运行方式往往与 Linux 不同,而且通常更小(尽管在许多情况下不再有绅士风度 - Theo De Raadt有一个臭名昭著的名声)。
一些 BSD 变体是利基市场产品,针对特定目标进行了优化。例如,OpenBSD 专门针对在面向 Internet 的计算机上提供安全的网络基础设施进行了优化,需要大量的工作来检查缓冲区溢出漏洞等安全漏洞。许多具有安全意识的组织正是出于这个原因使用它。NetBSD 是为移植到几十个平台而设计的,并且在嵌入式系统中得到了广泛的应用。对于这些系统之一的最佳应用程序,它很可能是平台的最佳选择。
*BSD 的主场是网络服务——电子邮件和网络服务器、基础设施等。您可以使用任何 BSD 设置一个完美的极客桌面,并且理论上可以产生像 Ubuntu 一样温暖和蓬松的东西。然而,这不是大多数 BSD 产品的核心焦点,尽管PC-BSD等一些产品确实旨在提供桌面系统。
如果您想制作一个传统的 unix geek 桌面,BSD 将与任何其他 unix-oid 系统一样做到这一点。
我认为 BSD 不像桌面上的 Linux 那样成熟,但对于服务器来说,它是坚如磐石的。
您是否要安装 BSD 完全取决于您使用机器的目的。虽然许多事情与 Linux 相似,但也有许多不同之处。
然而,这里是不同 BSD 的简述
OpenBSD:如果它的邮件目标是成为最安全的操作系统(它可能是)
NetBSD:它的座右铭是“当然它会运行 NetBSD”。这必须是最便携的操作系统之一。许多人也在台式机上运行它。
FreeBSD:在服务器上非常流行,尽管很多人也在桌面上运行它。可能是所有 BSD 中最受欢迎的
DragonFly BSD:一个相对较新的人(2003 年),它是 FreeBSD 4.8 的一个分支。我自己没有使用过,但显然很稳定。
在 Linux 世界中,发行版往往缺乏那种……凝聚力。它们通常以分散的方式构建,这往往会导致这种情况。
BSD 通常由一个人管理,因此您会感觉每个变体都是一个实际产品,背后有很多计划。事情很好地协同工作,所有组件都有很好的文档记录。你很少能找到杂物。
这奠定了非常坚实的基础,使 BSD 成为一个易于维护的平台,因此有可能导致更安全和可管理的环境。
我成为 Linux 用户已有 13 年了,虽然我仍然认为它是一个可行的平台,但由于上述原因,我已将所有生产和个人服务器都移至 BSD。
但是,由于其最先进的驱动程序支持,Linux 仍然可能是桌面的更好选择。
默认情况下,BSD 通常被认为是安全的,它禁用除核心服务之外的所有服务。它也非常稳定,您可以通过查看众多正常运行时间监控服务之一来判断这一点。
但是请注意,Linux 与 BSD 不同……有一个学习曲线,所以不要指望直接跳进去。例如,您会发现所有核心命令,例如
ls
具有不同的标志,起初可能会令人困惑,并且可能需要一段时间才能打破使用 Linux 标志的旧习惯。我真的很喜欢
/usr/ports
。这并不是说我也不太喜欢apt-get
,但很高兴知道您的安装是在您的特定机器上构建的,并且您喜欢将任何优化放入 makefile 默认值中。迷信的好处有多大,我还没有做研究来找出答案,但我喜欢它。:)
*BSD 是一个完整的操作系统,这意味着内核和用户空间是从同一个源代码树开发的,而 Linux 发行版是从不同的源代码中拼凑而成的。这就是为什么 BSD 系统感觉更有凝聚力和稳固性的原因。也有更好的记录。
只是几个问题:
专业版(免费)BSD:
魂斗罗 BSD:
作为一名 Java 开发人员,最大的问题是没有适用于 *BSD 的主流 JVM。在每个人都把我烧死之前,我的意思是,目前还没有 Sun 或任何其他主要供应商(IBM、BEA/Oracle)提供的 JDK,所以你将永远是 linux 和 windows 用户的次要角色。
许可
BSD 和 Linux 之间的主要区别在于许可。
您可以获取 BSD 代码库,对其进行任何更改,然后分发生成的二进制文件、出售它等,而无需打开您所做的源代码更改。
这对 Apple 等公司非常有吸引力,因为对其股东的法律义务可能要求他们保持专有 IP 的“安全”。例如,Apple 的一些内核基于 FreeBSD。
如果 Tivo 构建在 BSD 之上而不是 Linux 之上,那么 Tivo 就不会遇到多年前遭受的(次要)许可问题。
一些实际差异
-亚当
安全,安全和一次安全。