Концептуальная разница между Linux и (бесплатным) ядром BSD

19

(Я уже заметил, что этот вопрос задавался ранее, но я думаю, что на него не ответили так, как мне хотелось бы понять тему.)

Каковы концептуальные и структурные различия между

  • Ядро Linux
  • Ядро BSD (скажем, FreeBSD)

Хотя в конце концов они оба являются ядрами - я бы предположил, что могут быть различия в структуре, функциональности и специализации. В каких случаях одно ядро ​​будет иметь преимущество перед другим? (Веб-сервер, база данных, компьютер и т. Д.)

Существуют ли какие-либо совместные усилия для сосредоточения усилий на одном общем ядре или определенных модулях или это все равно будет бессмысленно?

PS: Различные типы лицензий или подходы к доставке / упаковке / обслуживанию не имеют значения в этом контексте. Мне действительно интересно понять, чем они отличаются по структурному, функциональному / функциональному уровню и специализации.

binaryanomaly
источник
Существуют ли какие-либо совместные усилия для сосредоточения усилий на одном общем ядре или определенных модулях или это все равно будет бессмысленно? Моя первая мысль: какой смысл это может иметь ... создать третье ядро, «полностью основанное на смеси linux и freeBSD»?
Златовласка
Нет, совсем нет, скорее наоборот - установить сотрудничество для частей, которые одинаковы для обоих. Я думаю, что для некоторых водителей это уже тот случай, если я не ошибаюсь.
бинаномаи
1
@binaryanomaly: разные лицензии очень важны для обеих сторон. До такой степени, что это можно назвать идеологией по обе стороны прохода. Например, GCC раньше был больным местом в BSD, и FreeBSD теперь переключается на Clang по умолчанию по этой самой причине: проблемы с лицензией.
0xC0000022L
1
@ 0xC0000022L: Вы, конечно, правы, и я не хотел сказать, что вопросы лицензирования не важны - я просто хотел, чтобы он не стал главным предметом обсуждения.
бинанома
На самом деле @goldilocks, вы не можете увидеть преимущества третьей вещи, которая не является ни слишком linuxy, ни слишком BSDish, но просто так ?
Джош Рамбут

Ответы:

22

1. Каковы концептуальные и структурные различия между ядром Linux и ядром BSD?

Что касается архитектуры и внутренних структур, то, конечно, существуют различия в том, как это делается (например, lvm против geom , ранняя и сложная функция jail для FreeBSD, ...), но в целом между этими двумя не так много различий:

  • Ядро BSD * и ядро ​​Linux превратились из чисто монолитного подхода в нечто гибридное / модульное.

Тем не менее, есть фундаментальные различия в их подходе и истории:

  • Ядро BSD использует лицензию BSD, а ядро ​​Linux использует лицензии GPL .
  • Ядро BSD не являются автономными ядрами, а разрабатываются как единое целое . Конечно, это просто философская точка зрения, а не техническая, но это дает системную согласованность .
  • Ядро BSD разработано с более консервативной точки зрения и больше заботится о том, чтобы оставаться в согласии с их подходом, чем иметь причудливые функции.
  • Linux-ядро больше о драйверах, функциях, ... (чем больше, тем лучше).

Как сильно сказано где-то еще :

Это интеллектуальный дизайн и порядок (BSD *) против естественного отбора и хаоса (GNU / Linux).

2. В каких случаях одно ядро ​​будет иметь преимущество перед другим?

Что касается их общей структуры и концепции, то, сравнивая почти ванильное Linux-ядро и FreeBSD-ядро, они более или менее имеют один и тот же общий уровень использования , то есть без какой-либо конкретной специализации (не в реальном времени, не с высокой степенью параллелизма, не ориентированный на игру, не встроенный, ...).

Конечно, есть и некоторые отличия, такие как поддержка ZFS или архитектура geom для FreeBSD по сравнению со многими драйверами или различными файловыми системами для Linux. Но ничего такого общего программного обеспечения, как веб-серверы или базы данных, на самом деле не использовалось бы, чтобы добиться реальных результатов. Сравнения в этих случаях, скорее всего, закончатся неким настраивающим сражением между ними, ничего особенного.

Но некоторые утверждают, что OpenBSD имеет глубокий и последовательный подход к безопасности, в то время как усиленные дистрибутивы Linux являются «просто» модифицированными версиями ванильного Linux-ядра. Это может быть верно для такой сильно специализированной системы, поскольку Steam-OS будет номером один, чтобы играть в игры.

3. Существуют ли совместные усилия по концентрации усилий для одного общего ядра или определенных модулей?

Там нет нет совместных усилий , чтобы сконцентрировать силы для одного общего ядра, так как есть основные лицензии, философские или подходить к решению вопросов.

Если существуют какие-то реальные общие усилия, такие как OpenZFS , большую часть времени это больше о драйверах и концепциях, взятых или вдохновленных друг от друга.

Ouki
источник
Глебские обобщения о BSD обычно неверны. Отметьте здесь, например, что DragonFly BSD существует, потому что консервативность не является обобщением, которое можно применить к миру BSD.
JdeBP
5

Частичный ответ по нескольким пунктам

Многие варианты часто воспринимаются как плохая вещь, когда снаружи смотрят на разработку открытого исходного кода, но считают, что в природе существует много видов (часто) видов животных, говорят пингвины. Есть 17 . Каждый специализируется на определенном наборе требований, также как и в проектах с открытым исходным кодом (как правило). Естественный отбор позаботится о том, чтобы отсеять открытый исходный код, который со временем станет менее подходящим.

Существуют ли какие-либо совместные усилия для сосредоточения усилий на одном общем ядре или определенных модулях или это все равно будет бессмысленно?

Было бы бессмысленно, иногда это дублирование усилий, но люди, работающие над этими компонентами, тоже не делают этого в вакууме. Они будут смотреть на то, что делают другие, и, если есть подход или алгоритм, они включают его, когда это имеет смысл.

Я не могу говорить о структурных различиях относительно ваших других пуль, но думал, что по крайней мере рассмотрю 2 из них.

SLM
источник
У вас наверняка есть точка с специализацией. С другой стороны, я бы также поспорил, что ДНК пингвинов в очень высоком процентном отношении абсолютно одинакова (как у обезьян и людей) и отличается только в крошечных областях. Природа довольно хорошо избегает лишних усилий, но различает только когда и где это необходимо. Миллиарды естественных итераций (воспроизведение) решают (выбор), какой из шаблонов лучше всего приспособлен к данным условиям окружающей среды. (Это становится философским;)
бинанома
@binaryanomaly - это проблема с аналогиями 8-). Я бы, вероятно, не поднял бы его до такого уровня, поскольку корреляция языков программирования / кода сложнее соотнести с ДНК.
СЛМ
Хороший ответ и хорошее сравнение с использованием пингвинов. Часто мы забываем, что дублирование усилий не всегда плохо, и что форк проекта не всегда конец. Это действительно скорее эволюционный процесс, который должен произойти и может создать новые идеи или потерпеть неудачу.
Рафаэль Аренс