不同的BSD有什么共同点?


62

...它们之间有什么区别?我这样表达我的问题,以表明我对观点的激烈争论不感兴趣,而是对BSD Unix不同版本之间的客观比较不感兴趣。理想情况下,我可以从拥有所有经验的用户那里获得反馈。

背景

我最近发现,Unix不仅限于Linux。我在工作中使用Solaris,这让我大开眼界。现在,我对新的unice感兴趣,我想尝试一个新的unice,我自然对BSD感到好奇。

问题

我并不是要就要安装的BSD寻求建议或意见;我想知道它们之间的区别(和共同点),以便自己下定决心。问题在于很难在它们之间进行正确的比较。

如果幸运的话,您会得到一些草率的定义,例如:

FreeBSD = Popular all-rounder.
NetBSD = Portable (runs on a lot of platforms, including a toaster)
OpenBSD = Security above anything else.

(这可能是对的,但并不是真正有用。我确定FreeBSD也是可移植且安全的...)

如果您很不幸,您会陷入关于项目拆分,分叉,基于知识/道德理由重塑品牌的Unix不可避免的传奇故事中,Theo de Raadt是极端主义者,以及MacOS X和FreeBSD在20年前有着共同的祖先。

令人着迷,但不是真正有用的,是吗?

BSD

我感兴趣的BSD是:

  • FreeBSD
  • OpenBSD的
  • NetBSD

以及可选

  • 蜻蜓
  • 达尔文
  • ...

我的问题

为了更好地理解差异,以下是有关不同分布的一些相关问题列表(我们可以使用这个术语吗?)。如果您以某种表格数据的形式给出答案,那您就是我的历史英雄!

  • 他们使用相同的内核吗?
  • 他们使用相同的userland工具吗?(有什么区别?)
  • 他们是否使用相同的包/源管理系统?
  • 他们是否使用相同的默认外壳?
  • 它们之间可移植二进制文件吗?
  • 信号源在它们之间可移植吗?
  • 他们使用不同的目录树吗?
  • 他们各自的社区有多大?它们是同一数量级吗?
  • 目前有多少发展是普遍的?
  • 它们之间的主要不兼容之处是什么?

我不知道这些问题的答案有多容易,以及这个问题与StackExchange格式的实际关系如何。我只是从未遇到过一个简单的文档,它以清晰的方式列出了BSD之间的差异,对于经验丰富的用户来说,查看并轻松做出选择非常有用。


13
这是一个很好的问题,
2012年

4
我100%确信烤面包机是个玩笑... Embeddedarm.com/software/arm-netbsd-toaster.php
tkbx

哈哈,这只是一个演示。我喜欢屏幕上的刻录水平似乎超过200%。
Aki

Answers:


50

我认为我不会为您和每个人提供完美的答案,但是,每天使用BSD系统工作,我相信我可以为您提供有关BSD世界的有用见解。我从来没有使用过NetBSD,我不会谈论太多。

他们使用相同的内核吗?

否,尽管由于历史悠久的叉子而有相似之处。每个项目都是独立发展的。

他们使用相同的userland工具吗?(有什么区别?)

他们都遵循POSIX。您可以期望一组工具在* BSD之间具有相同的功能。在BSD中,在流程/网络管理工具中看到一些明显的差异也是很常见的。

他们是否使用相同的包/源管理系统?

它们提供了一个打包系统,每个操作系统都不同。

他们是否使用相同的默认外壳?

不,例如FreeBSD使用csh,OpenBSD使用ksh。

它们之间可移植二进制文件吗?

没有:

(XXXX@freebsd-6 101)file `which ls`
/bin/ls: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), for FreeBSD 5.5, dynamically linked (uses shared libs), stripped

它们实际上并不支持稳定和快速的二进制仿真。不要依赖它

信号源在它们之间可移植吗?

是的,例如,只要您不使用内核代码或libc代码(与操作系统紧密相关)即可。

他们使用不同的目录树吗?

不,它们在这里与Linux非常相似。但是FreeBSD提倡使用/ usr / local / etc作为第三方软件的配置文件。OpenBSD将所有内容都放在/ etc中。他们将所有第三方都放在/ usr / local中,而Linux发行版将按照他们认为合适的方式进行。通常,您可以说* BSD对此非常保守,事物属于它们所属的地方,而这并不是要弥补的。

他们各自的社区有多大?它们是同一数量级吗?

FreeBSD是最大和最活跃的,您可以通过许多不同的论坛,邮件列表,IRC频道等来访问它。

实际上,如果您认为需要一个良好的社区,那么FreeBSD是您的理想之选。NetBSD和OpenBSD社区以开发为中心,谈论新的改进等。他们实际上并不喜欢做基本的用户支持或广告。他们希望每个人都是高级UNIX用户,并能够在问任何问题之前先阅读文档。

目前有多少发展是普遍的?

由于真正的免费许可证代码可以在项目之间流动,因此OpenBSD经常在NetBSD之后修补他们的代码(因为它们的来源有很多共同点),FreeBSD需要并集成OpenBSD的Packet Filter,等等。在驱动程序和其他方面,这显然更加困难内核的东西。

它们之间的主要不兼容之处是什么?

它们不以二进制形式兼容,但是它们在语法和代码上大多兼容。您可以依靠它来实现代码的可移植性。它会在所有版本的BSD上轻松构建或/和执行,除非您离内核太近(ifconfig,pfctl ...)。

您可以通过以下方法从BSD世界中学习:

尝试用openbsd盒替换您的家用路由器,使用pf和网络玩。您将看到制作自己想要的东西有多么容易。干净,可靠和安全。使用FreeBSD作为桌面,它们支持很多GPU,可以在一定程度上使用Flash,并且与Linux二进制文件具有一定的兼容性。您可以安全地构建您的自定义内核(实际上建议这样做)。总体而言,这是一次很好的学习体验。在非常旧的硬件甚至是烤面包机上尝试NetBSD 。

尽管它们有所不同,但它们每个都试图成为一个好的操作系统,它将比情况更适合用户。作为一种学习体验,请尝试全部使用它们(Net / Open / Free),但是稍后您可能会发现自己在大多数情况下只使用1(因为您在特定系统中的知识更加丰富,或者与社区更加融合)。

其他BSD是混合版本,或者只是稍微修改的版本,我发现最好紧贴软件开发源(在OpenBSD上使用数据包过滤器,在FreeBSD上配置自己的桌面,...)。

作为个人说明,我很高兴见到像您这样的发烧友,并希望您能在BSD世界中找到很多好东西。BSD并不是讨厌Windows或其他操作系统,而是喜欢Unix。


5
向下滚动,我确定这是一个吉尔斯的答案。感谢Aki的出色回答!
n0pe 2012年

2
@MaxMackie-我知道你的意思,我在想同样的事情!:-)
克里斯·

2
哈哈我在这里不是很活跃,所以我不知道吉尔斯是谁,但我很期待阅读他的答案!
Aki 2012年

1
非常感谢您的出色回答!我特别喜欢最后一部分。我刚刚在虚拟机上安装了FreeBSD。让我们看看它如何发展……
rahmu 2012年

6
+1为最后一句话。但是我希望我可以整体上+2
Shiplu Mokaddim 2012年

16

(我无法给出完整的答案,但是我也无法回避这个问题,所以...我只想解决一些问题... FreeBSD是最常用的BSD(在2005年),所以我尝试提供有关“其他”的一些线索。)

  • 首先,您无视单行的解释,OpenBSD的座右铭是“自由,功能和安全”,而NetBSD开发人员也努力创建一个功能系统。
  • 二进制兼容性:您显然可以在NetBSD上运行FreeBSD二进制文件(我从未尝试过)。这是我所知道的BSD之间唯一的二进制兼容形式(除了NetBSD和FreeBSD(有限的)Linux二进制兼容性之外)。
  • 港口:NetBSD和DragonFlyBSD的端口使用pkgsrc,OpenBSD的是在这里,FreeBSD的这里。您可以参考该文件以比较可用的软件包。各自的生态系统相似但不相同。
    • pkgsrc因为它是便携式的,所以脱颖而出,也就是说,您也可以在Minix 3或Linux上使用它。因此,它与非BSD无关,并且(可能因此)有更多端口。 pkgsrc-wip使贡献变得容易。
  • NetBSD最近引入了一个全面的自动测试框架(另请参见kyua),使他们能够运行自动测试(有了rump,这使得在用户空间中测试内核代码成为可能)。我认为它也得到了最全面的XEN支持。他们与“可携带性”追求略有不同,引入了三个层次:“重点”,“有机”和“生命支持”。他们还将Lua引入了基本系统。
  • 为了赶上OpenBSD的发展这些“论文”(大多是精美的幻灯片)是宝贵的资源,可让您了解OpenBSD的最新发展。
  • DragonFlyBSD开发了他们自己的ZFS竞争者HAMMER,这显然减少了对内存的需求(我可能无法断定其功能是否完整)。
  • 我不同意@Aki 缺乏对 OpenBSD或NetBSD 的支持的情况,查看邮件列表,它们都为社区提供了帮助- 看看 自己 -引用联机帮助页也没有冒犯。

底线?环顾四周,然后尝试一下。使用二进制软件包(通常随二进制发行版一起提供,即,不是来自的快照-current),获得可用的BSD系统并不需要太多工作。

编辑你可能有兴趣在他们的星球: undeadly.orgOpenBSD系统,blogs.FreeBSDish.org为FreeBSD和planet.netbsd.se所有的人?此刻())


5
好答案。我认为有很多要说的,应该写一篇论文。我并不是说OpenBSD社区没有帮助。我做了一些关于二进制兼容性的研究,还有更多内容:OpenBSD上的netbsd.org/docs/compat.html和compat_linux。显然,Open以前具有freebsd二进制兼容性:nixdoc.net/man-pages/OpenBSD/man8/compat_freebsd.8.html。如您所说,它是有限的,我不会依赖它。
Aki 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.