Концептуальна різниця між Linux та (безкоштовним) ядром BSD


19

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

Які понятійні та структурні відмінності між a

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

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

Чи є спільні зусилля, щоб сконцентрувати сили для одного загального ядра або певних модулів, чи це все-таки було б безглуздо?

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


Чи є спільні зусилля, щоб сконцентрувати сили для одного загального ядра чи певних модулів, чи це все-таки буде безглуздо? Моя перша думка - який момент може це мати ... створити третє ядро ​​"повністю на основі суміші Linux та freeBSD"?
золотинок

Ні, зовсім не, скоріше навпаки - встановіть співпрацю для частин, однакових для обох. Я думаю, що для певних водіїв це вже так, якщо я не помиляюся.
бінаномалія

1
@binaryanomaly: різні ліцензії дуже важливі для обох сторін. Настільки навіть, що можна назвати це ідеологією по обидва боки проходу. Наприклад, GCC раніше була больовою точкою в BSD, а FreeBSD тепер перейшов на Clang як їх замовчуванням саме з цієї причини: проблеми з ліцензією.
0xC0000022L

1
@ 0xC0000022L: Ви, безумовно, маєте рацію, і я не хотів сказати, що питання щодо ліцензування не важливі - я просто хотів, щоб це не стало головним фокусом у цій конкретній дискусії.
бінаномалія

Дійсно @goldilocks, ви не можете побачити користь третьої речі, яка не є ні занадто лінукс, ні занадто BSDish, але просто так ?
Джош Румбут

Відповіді:


22

1. Які концептуальні та структурні відмінності між Linux-ядром та BSD-ядром?

Що стосується архітектури та внутрішніх структур, то, звичайно, є відмінності в тому, як це робиться (тобто: lvm vs geom , рання і складна функція в'язниці для 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 , то в більшості випадків мова йде про драйвери та концепції, взяті чи натхнені одне від одного.


Узагальнення Glib щодо BSD, як правило, помилкові. Зауважимо, наприклад, що DragonFly BSD існує, оскільки консервативність - це не узагальнення, яке можна застосувати до світу BSD.
JdeBP

5

Часткова відповідь, що стосується декількох моментів

Багато варіантів часто сприймаються як погана річ, коли зовні дивлячись на розвиток з відкритим кодом, але думайте про це як у природі, існує багато видів (часто) типу тварини, скажімо, пінгвіни. Є 17 . Кожен спеціалізується на певному наборі вимог, так само і з проектами з відкритим кодом (як правило). Природний відбір подбає про вилучення відкритого коду, який менш сприятливий з часом.

Чи є спільні зусилля, щоб сконцентрувати сили для одного загального ядра або певних модулів, чи це все-таки було б безглуздо?

Було б безглуздо, часом це дублювання зусиль, але люди, які працюють над цими компонентами, теж не роблять це у вакуумі. Вони роздивляться, що роблять інші, і якщо є підхід чи алгоритм, вони включають його, коли це має сенс.

Я не можу поговорити з відмінностями у структурі щодо ваших інших куль, але я подумав, що хоча б 2 із них.


У вас, звичайно, є точка з спеціалізацією. З іншого боку, я б також ставку, що ДНК пінгвінів у дуже високому відсотку абсолютно однакова (як у мавп і людей), і вона відрізняється лише у крихітних областях. Природа досить добре уникає зайвих зусиль, але розрізняє лише те, коли і де це потрібно. Мільярди природних ітерацій (відтворення) вирішують (вибір), який із зразків найкраще адаптується до заданих умов навколишнього середовища. (Це стає філософським;)
бінаномія

@binaryanomaly - ось проблема з аналогіями 8-). Я, мабуть, не підніме його до цього рівня, оскільки співвідношення мов / кодів програмування складніше для кореляції з ДНК.
slm

Гарна відповідь і хороше порівняння з використанням пінгвінів. Часто ми забуваємо, що дублювання зусиль не завжди є поганим і що вилка проекту не завжди є кінцем. Це справді більше еволюційний процес, який повинен відбутися і може створити нові ідеї або зазнати невдач.
Рафаель Аренс
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.