Linux和(免费)BSD内核之间的概念差异


19

(我已经注意到之前曾问过这个问题,但我认为它并没有以我希望了解该主题的方式得到回答。)

两者之间在概念和结构上有什么区别

  • Linux内核
  • BSD内核(比方说FreeBSD)

归根结底,它们都是内核-我认为结构,功能和专业化可能会有所不同。在哪种情况下,一种内核会比另一种优势?(Web服务器,数据库,计算等)

是否有任何共同努力将力量集中在一个通用内核或某些模块上,还是毫无意义?

PS:在这种情况下,不同的许可证类型或运输/包装/维护方法并不重要。我真的很想了解它们在结构,功能/功能级别和专业化方面的区别。


是否有任何共同努力将力量集中在一个通用内核或某些模块上,还是毫无意义?我的第一个想法是,“完全基于linux和freeBSD的混合”创建第三个内核可能有什么意义?
goldilocks

不,完全没有,反之亦然-为双方都相同的零件建立合作关系。我认为对于某些驱动程序,如果我没有记错的话,情况已经如此。
二元异常2014年

1
@binaryanomaly:不同的许可证对双方都很重要。在某种程度上,甚至可以称其为过道两侧的意识形态。例如,GCC曾经是BSD中的痛点,而FreeBSD现在由于以下原因而默认切换为Clang:许可证问题。
0xC0000022L 2014年

1
@ 0xC0000022L:您当然是对的,我不想说许可问题并不重要-我只是希望它不成为此特定讨论的主要焦点。
二元异常2014年

真的@goldilocks,您看不到第三件事的好处,这既不是linuxy,也不是BSDish,但是吗?
Josh Rumbut

Answers:


22

1. Linux内核和BSD内核之间在概念和结构上有什么区别?

关于架构和内部结构,事情的完成方式当然有所不同(即:lvm vs geom,FreeBSD的早期和复杂的监狱功能,...),但是总体而言,两者之间并没有太大差异:

  • BSD *内核和Linux内核都已经从纯粹的单片方法演变为混合/模块化的方法。

尽管如此,它们的方法和历史仍存在根本差异:

  • BSD内核正在使用BSD许可证,Linux内核正在使用GPL许可证
  • BSD内核不是独立的内核,而是作为整体的一部分开发。当然,这仅是一种哲学观点,而不是技术观点,但这赋予了系统一致性
  • BSD内核的开发具有更保守的观点,并且比具有奇特的功能更关注与方法保持一致。
  • Linux内核更多关于驱动程序,功能……(越多越好)。

正如在其他地方指出的

它是智能设计与订购(BSD *)与自然选择与混乱(GNU / Linux)。

2.在哪种情况下,一种内核比另一种更有优势?

关于它们的总体结构和概念,在比较几乎是普通的Linux内核和FreeBSD内核时,它们或多或少具有相同的一般用法级别,即没有特别的专业性(不是实时的,不是高度并行的,不是面向游戏,而非嵌入式,...)。

当然,这之间存在一些差异,例如本地ZFS支持或FreeBSD的geom架构与Linux的许多驱动程序或各种文件系统相比。但是,某些通用软件(例如Web服务器或数据库)并不会真正起到真正的作用。在这些情况下进行比较很可能会在两者之间进行一场调优之战,这没什么大不了的。

但是,有些人会认为OpenBSD对安全性具有深刻而一致的方法,而经过强化的Linux发行版是原始Linux内核的“仅”修改版本。对于像Steam-OS这样的高度专业化的系统,这可能是正确的。将成为玩游戏的第一人。

3.是否有共同努力集中力量于一个共同的内核某些模块?

没有由于存在大量许可,哲学或方法问题,为集中一个共同内核集中力量的共同努力。

如果存在诸如OpenZFS之类的真正共同的努力,大多数情况下,更多的是关于彼此借鉴或启发的驱动程序和概念。


关于BSD的Glib概括通常是错误的。请注意,例如在这里,DragonFly BSD之所以存在是因为保守并不意味着可以适用于BSD世界。
JdeBP

5

解决部分问题的部分答案

从外部看开放源代码开发时,很多选择通常被认为是一件坏事,但认为它是自然界中的一种动物,通常有很多物种,例如企鹅。有17个。每个项目都专用于一组特定的要求,对于开源项目(通常)也是如此。自然选择将消除随着时间的推移不太适合的开源。

是否有任何共同努力将力量集中在一个通用内核或某些模块上,还是毫无意义?

毫无意义,这有时是重复的工作,但是从事这些组件工作的人也不是在真空中进行工作。他们会四处看看别人在做什么,如果有一种方法或算法,他们会在有意义的时候将其合并。

我无法谈及关于其他子弹的结构差异,但我想至少要解决其中的2个。


您当然有一个专门化的观点。另一方面,我也敢打赌,企鹅的DNA占很高的百分比(与猿和人一样),并且完全相同,而且只在很小的区域内有所不同。大自然非常擅长避免多余的工作,但只能在需要的时间和地点进行区分。然后,数十亿次自然迭代(复制)决定(选择)哪种模式最适合给定的环境条件。(变得越来越哲学;)
二元异常2014年

@binaryanomaly-这就是类比8的麻烦。由于编程语言/代码的关联要与DNA关联起来比较棘手,因此我可能不会将其提高到这个水平。
slm

使用企鹅,答案很好,比较也不错。通常,我们忘记了重复工作并不总是坏事,而项目的分叉并不总是结局。实际上,它实际上是一个进化过程,需要发生并且可能会产生新的想法或惨败。
拉斐尔·阿伦斯
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.