Что общего у разных BSD?

62

... а какие различия между ними? Я сформулировал свой вопрос таким образом, чтобы было ясно, что я не заинтересован в бешеной борьбе мнений, а скорее в объективном сравнении между различными разновидностями BSD Unix. В идеале я мог бы получить отзывы от пользователей, которые имеют опыт во всех из них.

Фон

Недавно я обнаружил, что в Unix есть гораздо больше, чем просто в Linux. Я использую Солярис на работе, он открыл мне глаза. Теперь меня интересуют новые объединения, я хочу попробовать новый, и мне, естественно, любопытно узнать о BSD.

Проблема

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

Если вам повезет, вы получите какое-то поспешное определение, подобное этому:

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

(Это может быть правдой, но это не очень полезно. Я уверен, что FreeBSD также переносима и безопасна ...)

Если вам не повезло, вы попадаете в одну из тех неизбежных легенд Unix, которые касаются разделения проектов, разветвления, ребрендинга на интеллектуальных и моральных основаниях, как Тео де Раадт является экстремистом и как MacOS X и FreeBSD имели общего предка более 20 лет назад.

Захватывающе, но не очень информативно, не так ли?

BSDs

BSD, которые меня интересуют:

  • FreeBSD
  • OpenBSD
  • NetBSD

и опционально

  • Стрекоза
  • Дарвин
  • ...

Мои вопросы

Чтобы лучше понять различия, вот список несколько связанных вопросов о различных дистрибутивах (можем ли мы использовать этот термин?). Если вы представите свой ответ в виде табличных данных, вы мой герой на все времена!

  • Они используют одно и то же ядро?
  • Используют ли они одни и те же инструменты пользователя? (какие есть различия?)
  • Они используют ту же систему управления пакетами / источником?
  • Они используют ту же оболочку по умолчанию?
  • Являются ли двоичные файлы переносимыми между ними?
  • Портативны ли источники между ними?
  • Они используют разные деревья каталогов?
  • Насколько велики их сообщества? Они того же порядка?
  • Насколько распространено текущее развитие?
  • Каковы основные несовместимости между ними?

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

rahmu
источник
13
Это отличный вопрос, +1
n0pe
4
Я был на 100% уверен, что тостер был шуткой ... embeddedarm.com/software/arm-netbsd-toaster.php
tkbx
Хаха, это была просто демо. Мне нравится, как уровень выгорания выше 200% на экране дисплея.
Аки

Ответы:

50

Я не думаю, что предоставлю вам и всем идеальный ответ, однако, используя систему BSD каждый день для работы, я уверен, что смогу дать вам полезную информацию о мире BSD. Я никогда не использовал NetBSD, я не буду много говорить об этом.

Они используют одно и то же ядро?

Нет, хотя есть сходства из-за исторических вилок. Каждый проект развивался отдельно.

Используют ли они одни и те же инструменты пользователя? (какие есть различия?)

Все они следуют 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-каналов и т. Д. OpenBSD имеет хорошее сообщество, но в основном это видно через IRC и списки рассылки.

На самом деле, если вы думаете, что вам нужно хорошее сообщество, FreeBSD - это путь. Сообщества NetBSD и OpenBSD сосредоточены вокруг разработки, говорят о новых улучшениях и т. Д. Они не очень любят заниматься основной поддержкой пользователей или рекламой. Они ожидают, что все будут продвинутыми пользователями Unix и смогут прочитать документацию, прежде чем что-то спросить.

Насколько распространено текущее развитие?

Из-за действительно свободных лицензий код может передаваться между проектами, OpenBSD часто исправляет свой код в соответствии с NetBSD (поскольку их источники имеют много общего), FreeBSD берет и интегрирует пакетный фильтр OpenBSD и т. Д. Очевидно, что это сложнее, когда дело доходит до драйверов и других ядерные вещи.

Каковы основные несовместимости между ними?

Они не совместимы в двоичном виде, но в основном они совместимы по синтаксису и коду. Вы можете положиться на это для достижения переносимости в вашем коде. Он будет легко собираться и / или выполняться на всех разновидностях BSD, кроме случаев, когда вы слишком близко подходите к ядру (ifconfig, pfctl ...).

Вот как вы можете получать удовольствие от обучения в мире BSD:

Попробуйте заменить ваш домашний маршрутизатор на коробку openbsd, поиграйтесь с pf и сетью. Вы увидите, как легко сделать то, что вы хотите. Это чисто, надежно и безопасно. Используйте FreeBSD в качестве настольного компьютера, они поддерживают множество графических процессоров, вы можете до некоторой степени использовать флэш, есть некоторая совместимость с бинарными файлами Linux. Вы можете безопасно собрать свое собственное ядро ​​(на самом деле это рекомендуется). В целом, это хороший опыт обучения. Попробуйте NetBSD на очень старом оборудовании или даже на тостерах .

Хотя они разные, каждая из них старается быть хорошей ОС, и она будет соответствовать пользователям больше, чем ситуациям. В качестве обучающего опыта, попробуйте все (Net / Open / Free), но позже вы можете использовать только 1 для большинства ситуаций (так как вы более осведомлены в конкретной системе или больше вписываетесь в сообщество).

Другие BSD - это гибриды или просто слегка измененные версии, я считаю, что лучше оставаться рядом с источником разработки программного обеспечения (используйте фильтр пакетов в OpenBSD, настройте свой рабочий стол во FreeBSD, ...).

Что касается меня, я рад видеть такого энтузиаста, как вы, и надеюсь, что вы найдете много хорошего в мире BSD. BSD - это не ненависть к окнам или другим ОС, а любовь к Unix.

Aki
источник
5
Прокручивая вниз, я был уверен, что это был ответ Жиля. Спасибо за отличный ответ, хотя Аки!
n0pe
2
@MaxMackie - я знаю, что вы имеете в виду, я думал о том же! :-)
Крис Даун
2
Ха-ха, я не очень активен здесь, поэтому я не знаю, кто такой Жиль, но я с нетерпением жду его ответа!
Аки
1
Большое спасибо за отличный ответ! Особенно мне понравилась последняя часть. Я только что установил FreeBSD на виртуальную машину. Посмотрим, как пойдет ...
Рахму
6
+1 за последнее предложение. Но я бы хотел +2 для всего
Шиплу Мокаддим
16

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

  • Прежде всего, вы правы, отклоняя объяснения в одну строку , девиз OpenBSD - «бесплатный, функциональный и безопасный», и разработчики NetBSD также стремятся создать функциональную систему.
  • бинарная совместимость : вы можете запускать двоичные файлы FreeBSD в NetBSD (чего я никогда не пробовал). Это единственная форма бинарного сжатия между известными мне BSD (кроме двоичной совместимости Linux с NetBSD и FreeBSD (ограниченной)).
  • порты : используются порты 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, просматривая списки рассылки, оба предлагают полезные сообщества - посмотрите сами - обращение к man- странице - не оскорбление.

Нижняя линия? Посмотрите вокруг и попробуйте. Используя бинарные пакеты (обычно предлагаемые с бинарным выпуском, то есть не для снимков из -current), это не так много работы, чтобы получить работающую систему BSD.

Редактировать Возможно, вас заинтересуют их планеты: undeadly.orgдля OpenBSD, blogs.FreeBSDish.org для FreeBSD и planet.netbsd.seдля всех них ( в данный момент недоступно (?))

Sr-
источник
5
Хороший ответ. Я думаю, что так много можно сказать, это заслуживает написания статьи. Я не хотел сказать, что сообщество OpenBSD бесполезно. Я провел некоторое исследование о бинарной совместимости, есть еще: netbsd.org/docs/compat.html и compat_linux в OpenBSD. Видимо Open раньше имел двоичный компас freebsd: nixdoc.net/man-pages/OpenBSD/man8/compat_freebsd.8.html . Как вы заявили, это ограничено, и я бы не стал на это полагаться.
Аки