![Linux 和(免费)BSD 内核之间的概念差异](https://linux22.com/image/53964/Linux%20%E5%92%8C%EF%BC%88%E5%85%8D%E8%B4%B9%EF%BC%89BSD%20%E5%86%85%E6%A0%B8%E4%B9%8B%E9%97%B4%E7%9A%84%E6%A6%82%E5%BF%B5%E5%B7%AE%E5%BC%82.png)
(我已经注意到这个问题之前被问过,但我认为它还没有以我想要理解这个主题的方式得到回答。)
a 之间的概念和结构差异是什么?
- Linux内核
- BSD 内核(比如说 FreeBSD)
虽然归根结底它们都是内核 - 我认为在结构、功能和专业化方面可能存在差异。在哪些情况下,一种内核比另一种内核更有优势? (网络服务器、数据库、计算等)
是否有任何共同努力将力量集中在一个通用内核或某些模块上,或者这是否毫无意义?
PS:在这种情况下,不同的许可证类型或运输/包装/维护方法并不重要。我真的很想了解它们在结构、功能/特性级别和专业化方面的差异。
答案1
1. Linux 内核和 BSD 内核之间的概念和结构差异是什么?
关于架构和内部结构,当然在完成事情的方式上存在差异(即:左室厚度与几何, 早期且复杂监狱FreeBSD 的功能,...),但总的来说,两者之间没有太大区别:
- BSD* 内核和 Linux 内核都已从纯粹的整体方法发展为混合/模块化的方法。
尽管如此,他们的方法和历史仍然存在根本差异:
- BSD 内核正在使用BSD 许可证Linux内核正在使用GPL 许可证。
- BSD内核不是独立的内核但被开发为整体的一部分。当然,这只是一种哲学观点,而不是技术观点,但这赋予系统一致性。
- BSD 内核是以更保守的观点开发的,并且更关心与他们的方法保持一致,而不是拥有花哨的功能。
- Linux 内核更多地涉及驱动程序、功能……(越多越好)。
大大地在别处陈述过:
这是智能设计与订单(BSD*) 与自然选择与混沌(GNU/Linux)。
2. 在哪些场景下,一种内核比另一种内核更有优势?
关于它们的整体结构和概念,在比较几乎普通的 Linux 内核和 FreeBSD 内核时,它们或多或少是相同的一般使用级别,即没有特定的专业化(不是实时的,不是高度并行的,不是面向游戏的,不是嵌入式的,......)。
当然,这里和那里存在一些差异,例如 FreeBSD 的本机 ZFS 支持或 geom 架构与 Linux 的许多驱动程序或各种文件系统。但网络服务器或数据库等通用软件并不能真正发挥作用。这些情况下的比较很可能会以两者之间的一些调优战争而告终,没什么大不了的。
但是,有些人会认为开放BSD具有深入且一致的安全方法,而强化的 Linux 发行版“只是”普通 Linux 内核的修改版本。对于如此高度专业化的系统来说,这可能是正确的,就像Steam操作系统成为玩游戏的第一名。
3.是否有任何共同努力,集中力量实现一个共同的核心或者某些模块?
有不由于存在重大许可、哲学或方法问题,共同努力将力量集中到一个共同核心。
如果存在一些真正的共同努力,例如OpenZFS,大多数时候,更多的是关于相互借鉴或启发的驱动因素和概念。
答案2
部分答案解决了一些问题
当外界研究开源开发时,多种选择通常被认为是一件坏事,但在自然界中,一种动物(通常)有很多物种,比如企鹅。有17个。每个项目都专门针对一组特定的需求,开源项目也是如此(通常)。随着时间的推移,自然选择将淘汰那些不太合适的开源软件。
是否有任何共同努力将力量集中在一个通用内核或某些模块上,或者这是否毫无意义?
这有点毫无意义,有时这是重复的工作,但从事这些组件工作的人也不是在真空中做这件事。他们会看看其他人在做什么,如果有一种方法或算法,他们会在有意义的时候将其纳入其中。
我无法谈论您其他项目符号的结构差异,但我想我至少会解决其中的两个问题。