Отличия linux от freebsd

FreeBSD vs GNU/Linux: What’s the difference

Every person in the tech industry or those that have spent some time tinkering with computers has heard of GNU/Linux. When it comes to FreeBSD, far less people are aware of its existence and not a lot of users (or even system administrators) understand the difference between the two operating systems. The most likely scenario of how you wound up here is that you have used Linux for a while, and are now wondering if FreeBSD is better or if it is a good idea to switch.

In this article, we will shed some light on FreeBSD vs GNU/Linux, as we compare the operating systems across a few key areas to help you understand the differences between them. You will find that the two systems have a lot in common, but also substantial differences once you get past the superficial similarities. Join us below as we go into the details of these two operating systems, ultimately helping you choose which one would be better for your needs.

In this tutorial you will learn:

  • FreeBSD vs GNU/Linux: What are the differences?

FreeBSD vs GNU/Linux: What's the difference

Software Requirements and Linux Command Line Conventions
Category Requirements, Conventions or Software Version Used
System GNU/Linux and FreeBSD
Software N/A
Other Privileged access to your Linux system as root or via the sudo command.
Conventions # – requires given linux commands to be executed with root privileges either directly as a root user or by use of sudo command
$ – requires given linux commands to be executed as a regular non-privileged user

Fundamental Differences

When people say “Linux,” what are they actually referring to? Linux is not technically an operating system itself, but a kernel that serves as the foundation for a fully packaged operating system. GNU makes its way onto most distributions, which is a collection of free software. Some refer to this combination as GNU/Linux or LiGNUx, but it has become more common (and erroneous) to simply say Linux, with the understanding that GNU software is pretty much implied.

Contrast this to FreeBSD, which is not only a system kernel, but all the user land tools as well. This makes for a more coherent development model and can result in a more robust operating system.

Why does this matter?

Because it means that FreeBSD developers do not just develop the kernel and call it a day. They also see to the integration of all the utilities that a user will need to use. This makes for a more cohesive environment. FreeBSD contains very little software developed by GNU, and instead uses versions that have been written to mimic the original Unix behavior.

Читайте также:  Линукс папка с паролем

Linux, on the other hand, is just a kernel. With GNU applications on top of it, we get GNU/Linux. Furthermore, each publisher puts their own spin on the operating system and releases them as a “distribution.” The end result is undeniably less cohesive than that of FreeBSD’s development model, but still makes for a great operating system at the end of the day.

Hardware Support

Not much competition here. Linux took off in the 90s while BSD variants were encumbered by licensing issues. Since Linux gained wider acceptance early on, the effects have rippled into our present time. Suffice it to say that GNU/Linux enjoys much more widespread hardware support than FreeBSD. FreeBSD can still run on nearly all modern hardware, but gets into some trouble with legacy support.

Licenses

The licensing philisophies of these two operating systems is something of a hot button issue, and can often be the deciding factor for prospective users of either system. Both operating systems are open source, but there are some differences in how users and developers are allowed to utilize that source code.

FreeBSD uses the BSD license, which is a very permissive license that allows anyone to modify and redistribute the code, even more commercial purposes (did Apple come to mind for anyone?).

The GNU license also allows users to modify and redistribute code, but the key difference is that they are not allowed to commercialize these tools.

For the end user, this may not make any difference. You could use either system for years while being blissfully unaware of the licensing rules. To developers, however, this can make a huge difference. On FreeBSD, developers have a bit more freedom with what they can do with the code.

Which One Is Better?

The operating system that you should use is going to depend on your individual needs and perspective. GNU/Linux is usually the superior choice for desktop users, as it enjoys wider hardware and software support. FreeBSD’s approach to updates is much more careful and curated, and this is a great thing for servers. For desktops, not so much. For servers, FreeBSD can be a better choice if you want a very predictable and coherent operating system. However, certain GNU/Linux can provide equal stability and while also retaining access to some of the newest features.

Источник

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 (серьёзно!?). Всё это я прошёл на практике и подобные банальные действия регулярно ломаются и не работают.

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 в одном флаконе.

Думаете что раз команда 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, а также ещё и дубляж аналогичных ручек управления через специфичные команды.

Постоянная технологическая отсталость GNU/Linux

ext4 появился лет на 10 позже UFS2 и только с ним в Linux появилась штатная система в которой хотя бы динамически происходит inode allocation. Однако, в ext4 при этом может утекать место занимаемое под директории и его невозможно вернуть назад без пересоздания ФС. Опыт компании ivi.ru говорит что на очень нагруженной (постоянно создание, удаление, тасование файлов) ext4 через месяцы работы становится неработоспособной и нужно пересоздавать ФС с нуля.

Также ext4 имеет смехотворный максимальный размер файла в 16 TiB для 4K блоков.

Про ReiserFS ничего не могу сказать, так как я её даже не успел попробовать, Райзер уже сел.

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 не может похвалиться — она плохо масштабируется на несколько процессоров.

Источник

Оцените статью
Adblock
detector