Чем FreeBSD отличается от Linux
Давайте вместе разберемся, чем отличается FreeBSD от Linux. В статье мы рассмотрим сходства и отличия этих ОС, а также подробно расскажем, для чего нужна FreeBSD. Также мы постараемся разобраться, что лучше — FreeBSD или Linux – для сервера, встраиваемых систем, суперкомпьютера и обычного компьютера.
FreeBSD — что это такое
FreeBSD — это операционная система с открытым исходным кодом, которая принадлежит к семейству Unix. Её название условно состоит из двух частей: Free — что значит свободная и BSD — что расшифровывается как Berkeley Software Distribution (система распространения программного обеспечения).
BSD — это программное обеспечение, которое было придумано в 1990-е годы в Калифорнийском университете (Беркли). Со временем его код стал открытым, благодаря чему на основе БСД стали разрабатывать ОС под разные задачи. Таким образом сформировалось отдельное подсемейство BSD.
Основные дистрибутивы BSD:
NetBSD — хорошо подходит для сложных архитектур и встраиваемых систем. Является одним из самых первых дистрибутивов;
DragonFlyBSD — идеально подойдет для регулярной обработки данных на сервере и многопроцессорной обработки. Версия, которая позволяет работать на максимально высоком уровне производительности;
OpenBSD — подходит для крупных банков и государственных структур, поскольку обеспечивает высокий уровень безопасности;
OS — единственная коммерческая версия программного обеспечения. В настоящее время не поддерживается;
FreeBSD — самая популярная операционная система (установлена у 70% пользователей BSD). Эта версия проста в управлении и позволяет работать на высоком уровне производительности. Она подойдет как для домашнего, так и для коммерческого использования. Например, на её основе построен Yahoo.
TrueOS (или PC-BSD) — лучше всего подходит для использования на рабочих станциях. Эта ОС была разработана на базе FreeBSD.
FreeBSD лежит в основе таких продуктов, как FreeNAS (специальная ОС для сетевых хранилищ), Darwin (ядро macOS, iOS), pfSense (один из дистрибутивов межсетевых экранов) и многих других.
На Free удобно устанавливать приложения. Это можно сделать одним из двух способов:
Через диспетчер пакетов (лучше всего использовать версии не ниже 9.1 с гибкой реализацией пакетов).
Через коллекцию портов — автоматизированный механизм сборки программ из исходных кодов. Эта система помогает упростить процессы установки — достаточно выбрать нужные пункты и задать параметры сборки.
Сравнение FreeBSD и Linux
Правильнее будет говорить о сравнении операционной системы FreeBSD с одной из операционных систем семейства Linux (например, Ubuntu, CentOS или Debian). Также между собой можно сравнить два подсемейства — Linux и BSD, что мы и сделали.
Сходства
— Оба подсемейства поддерживают практику свободного распространения и имеют открытый исходный код.
— Linux и BSD имеют общие истоки — принадлежат к семейству UNIX. Поэтому их структура содержит схожие элементы (например, принцип иерархизации файлов).
Теперь разберемся, каковы основные отличия BSD и Linux систем.
Различия
— Одно из главных отличий заключается в том, что Linux является ядром сам по себе, в то время как BSD помимо ядра включает и другие комплектующие компоненты.
— BSD и Линукс работают по разным типам лицензии. Так все BSD-дистрибутивы работают по свободной лицензии — в этом случае нет четких границ и условий распространения. Linux же работает по лицензии GNU, в соответствии с которой при использовании кода необходимо строго соблюдать все условия распространения.
— Для установки пакетов БСД преимущественно использует порты (на сегодняшний день их порядка 33 000). Linux же получает пакеты в уже готовом — бинарном виде. Наиболее популярные форматы пакетов — RPM и DEB;
— Линукс — более популярное семейство, его чаще устанавливают. Также о нём знает или хотя бы слышал больший процент обычных пользователей. А это значит, к Linux изначально больше доверия.
На самом деле, в споре”FreeBSD vs Linux” нет гарантированно правильного ответа — рассматриваемые семейства очень похожи. Только вы можете определить, что лучше подойдет под ваш проект или конкретные цели.
Итак, мы подробно рассказали о FreeBSD — что это за программа и для каких целей подойдет. Надеемся, наш обзор помог вам разобраться, в чём отличие FreeBSD от операционных систем семейства Linux.
Источник
FreeBSD: гораздо лучше GNU/Linux
Сравню FreeBSD с GNU/Linux системами. Всё это исключительно субъективное мнение! Многое это просто мой опыт. Почти 100% всего времени я провожу за компьютером и исключительно Unix системами, примерно поровну с FreeBSD и GNU/Linux, вот уже 20+ лет.
Большая часть достоинств FreeBSD также относится и к другим популярным свободным BSD системам: NetBSD, OpenBSD, DragonflyBSD. Что-то в этих системах будет получше, многое появилось впервые не в FreeBSD, но перекочевало в неё. FreeBSD многое наследует от NetBSD (различные драйвера и подсистемы), от OpenBSD (сетевые технологии), DragonflyBSD (лучшая масштабируемость на многопроцессорных платформах), от Solaris (DTrace, идея Jail-ов, ZFS), сочетая самое лучшее ото всех.
Если коротко, то FreeBSD это высокое качество, надёжность, удобство и простота работы. GNU/Linux это зоопарк, помойка малосвязанного кода, мало чего доделываемое до конца, отсутствие документации, хаос, базар.
Главные отличия
FreeBSD | GNU/Linux |
---|---|
BSD это целостные законченные ОС, разрабатывающиеся как единое целое. Если решают добавить поддержку алгоритма сжатия Zstandard, то это появляется не только в компрессорах, но и в syslog-ротации и других местах. Если есть команды выдачи какой-либо статистики, то все они используют библиотеку типа libxo, унифицируя различные варианты вывода. Все команды создаются под одну гребёнку. | GNU это просто набор ПО, объединённый названием, copyright holder-ами, советами по созданию документации и конфигурированию сборки. Linux это один из вариантов ядра, наравне с Hurd или FreeBSD. Существуют сотни (тысячи?) дистрибутивов объединяющих всё это вместе, с совершенно разными и отличающимися требованиями, пакетными менеджерами, подходами, проверкой качества и тому прочим. Есть дистрибутивы и почти не использующие GNU ПО. Есть дистрибутивы не использующие Linux. |
Какой-либо унификации документации, конфигурации, вывода информации в софте толком нет. Всюду и везде будет явно и отчётливо видно, что вот эта небольшая программа/утилита написана одним человеком, а вот эта другим. Всюду и везде разные подходы ко всему: один считает так, другой считает так.
В основном забота о приведении всего к какому-то одному единому виду лежит на плечах distribution maintainer-ов, которым приходится править софт, возможно что-то дописывать за автором, ведь не всегда автор согласен на любого рода изменения. От maintainer-ов зависит удобство работы и качество (аккуратно разложенная документация, учёт демонов в системах ротации логов, системе логирования, периодичных заданий, и т.д.) предоставляемого ПО.
На практике, если сейчас взять одни из последних дистрибутивов Ubuntu, то вы не факт что сможете поставить его не на первый жёсткий диск, не факт что загрузчик GRUB сможет установится, не факт что вы сможете настроить IPv6, не факт что после первого же обновления пакетов системы во время установки у вас всё загрузится. Недавно я столкнулся с невозможностью штатно настроить MTU на сетевом интерфейсе в Ubuntu (серьёзно!?). Всё это я прошёл на практике и подобные банальные действия регулярно ломаются и не работают.
Взяв дистрибутив GNU/Linux, вы можете получить тысячу компонентов ПО вместе с GNOME, NetworkManager и чем-то подобным, потом занимаясь отключением и удалением последних. А можете получить дистрибутив в котором нет и компиляторов и даже netcat утилит которые бы умели IPv6 (и не будет ни telnet, ни socat), имея на руках мало на что пригодную даже для проверки работоспособности сети ОС.
Никаких гарантий что та или иная фича вообще когда-либо будет достаточно стабильна и надёжна. Например POSIX file locks, по сути, до сих пор не работают в Linux.
Framework для конфигурирования сети штатный один: настройки в rc файле, банально вызывающие ifconfig команды.
В FreeBSD есть три firewall-а: ipf, ipfw, pf — каждый со своими за/против, но каждый из них является полноценным законченным firewall-ом. ipfw это IPv4, IPv6, TCP/UDP/SCTP, ICMP*, Ethernet, traffic shaper/scheduler, NAT, NAT64, NPTv6, IPsec, stateless/stateful firewall в одном флаконе.
Почти всё что касается конфигурирования уровня ОС, глобального, использует sysctl.
Думаете что раз команда ip призвана всё заменить, то она справилась со своей задачей? STP для bridge вы всё равно не настроите на данный момент без brctl, который из коробки может и не стоять. Вместо десятка утилит с совершенно отличающимся синтаксисом, теперь мы имеем на одну утилиту больше, не отменяющую надобность в остальных. В FreeBSD всё описанное выше делается ровно одним ifconfig.
Framework-ов для конфигурирования сети масса: shell-based системы как в Debian, NetworkManager, systemd средства. У всех у них есть какие-нибудь да ограничения на возможные конфигурации.
Думаете можно обойтись одним только iptables, пришедшим на смену ipchains? Для Ethernet пакетов надо использовать ebtables, для IPv6 ip6tables, для ARP arptables. И при этом, как мне кажется, ни один здоровый человек не сможет сказать что синтаксис правил для iptables удобен — он выполняет задачу, но все будут писать собственные скрипты/обёртки с отличным синтаксисом для удобного конфигурирования типа ufw.
Используется ли это всё до сих пор? Безусловно. Однако это считается deprecated и должно замениться nftables. Однако и он объявлен уже deprecated и bpfilter его может заменить. Однако на практике многие популярные дистрибутивы используют firewalld.
Кроме sysctl имеется /sys, а также ещё и дубляж аналогичных ручек управления через специфичные команды.
Для управления разделами накопителей есть fdisk, parted, gdisk, sfdisk, gparted. Думаете хотя бы одна из них может сразу же и работать с MBR/GPT дисками, давать возможность скриптования, иметь удобный интерфейс для пользователя чтобы указывать не конкретное количество блоков/байт для размера партиций, а просто сказать 100%/full? Ни одной. В FreeBSD полностью всему этому удовлетворяющая команда gpart есть, которая, к тому же, ещё и загрузчики умеет устанавливать, делать бэкапы/восстановление разделов.
Постоянная технологическая отсталость GNU/Linux
FreeBSD | GNU/Linux |
---|---|
Production-ready ZFS имеется уже 12+ лет. |
UFS2 ФС показывает отличную производительность и устойчивость к сбоям. Хотя я часто слышал что теряли данные на UFS2, но у меня за всю жизнь с FreeBSD ни разу не было, тогда как на ext3/ext4 неоднократно.
ext4 появился лет на 10 позже UFS2 и только с ним в Linux появилась штатная система в которой хотя бы динамически происходит inode allocation. Однако, в ext4 при этом может утекать место занимаемое под директории и его невозможно вернуть назад без пересоздания ФС. Опыт компании ivi.ru говорит что на очень нагруженной (постоянно создание, удаление, тасование файлов) ext4 через месяцы работы становится неработоспособной и нужно пересоздавать ФС с нуля.
Также ext4 имеет смехотворный максимальный размер файла в 16 TiB для 4K блоков.
Про ReiserFS ничего не могу сказать, так как я её даже не успел попробовать, Райзер уже сел.
Единственной хорошей работающей достойной ФС в GNU/Linux я видел только XFS, творение начала 90-х SGI IRIX.
Более того, Linux не может полноценно эмулировать блочные устройства и если вы сделаете losetup, то у нового появившегося блочного устройства таблица разделов всё равно автоматически не будет прочитана.
Для слежения за изменением файлов был dnotify, потом его сменил inotify — отдельная от epoll подсистема. Всё это всё равно не покрывает все возможности kqueue.
sndio используемый в OpenBSD умеет resampling, микширование от разных приложений, причём микшируя по устройствам (одна колонка для одного приложения, другая для другого), запись программами того, что играют другие, независимое управление громкостью, поддержка MIDI (с кучей фич), near real-time маленькие задержки.
Я молчу о том, что преобладающая часть популярных дистрибутивов начала активно использовать systemd и один только факт того, что *BSD его не используют уже является killer-feature. Но если взять systemd-free дистрибутив, то тогда нормально. При этом в FreeBSD, среди NetBSD и OpenBSD, самая продвинутая система загрузки, поддерживающая зависимости между службами, легко конфигурируемая простым текстовым файлом, написанная на небольшом количестве pure shell.
Неужели у GNU/Linux нет достоинств? С ходу я могу сказать, что некоторый важный GNU софт работает значительно быстрее BSD вариантов: sed и grep я ставлю GNU-шные. Это, зачастую, ценой усложнения кода и всяких трюков, но нельзя совершенно отбрасывать со счетов производительность. Чем, кстати, OpenBSD не может похвалиться — она плохо масштабируется на несколько процессоров.
Источник