Введение в FreeBSD для пользователей Linux. FreeBSD в деталях. О плюсах и минусах системы

FreeBSD – свободно распространяемая, Unix-подобная операционная система с открытым исходным кодом. Является потомком AT&T Unix , ответвление BSD, образовавшееся в Калифорнийском университете в Беркли. Работает на PC-совместимых системах x86, в том числе Microsoft Xbox, а также на DEC Alpha, Sun UltraSPARC, IA-64, AMD64, PowerPC, NEC PC-98, ARM.

Краткая история операционной системы FreeBSD

Операционная система Unix, зародилась в 1969 году, в научно-исследовательском подразделении, компании AT&T, Bell Labs. В то время, монополия на компьютерную индустрию принадлежала государству, и кампания AT&T не могла продавать свое программное обеспечение. В результате, в 1976, AT&T решила бесплатно предоставить свое программное обеспечение и его исходные коды, университетской среде. Одни в этом случае получили возможность сэкономить значительные средства, и доступ к технологии, вторые, бесплатную площадку для экспериментов и целое поколение специалистов, выросших на их оборудовании. В конце 70-х годов, в компании AT&T, была создана рабочая группа поддержки Unix (Unix Support Group, USG), в последствии преобразованная в систему лабораторий Unix (Unix System Laboratories, USL). В задачи USL, входила раскрутка операционной системы Unix, в качестве коммерческого продукта, что с успехом и делалось, система продавалась предприятиям за большие деньги. Разработка системы продолжалась и в Bell Labs и в USG. Группа по исследованию компьютерных систем (Computer Systems Research Group, CSRG) Калифорнийского университета, участвовавшая в разработке и усовершенствовании системы Unix, стала центральным хранилищем исходных кодов и их улучшений. Группа собирала изменения, оценивала, упаковывала и передавала остальным обладателям действительной лицензии AT&T Unix. Кроме того, CSRG, работала с подразделением министерства обороны США, управлением перспективных исследовательских проектов (Advanced Research Projects Agency, ARPA), с целью реализации в Unix, различных функциональных возможностей, например, стек протоколов TCP/IP. Итоговая коллекция программного обеспечения Калифорнийского университета, получила название BSD (Berkley Software Distribution). Первый выпуск BSD был создан в 1977 году. В конце концов финансирование CSRG прекратилось, после чего, университетом в Беркли, было принято решение, открыть исходный код BSD для широкой публики. Первым дистрибутивом операционной , стала FreeBSD версии 1.0, выпущенная в 1993 году. За основу была взята лента 4.3BSD-Lite (""Net/2""), университета в Беркли, с многочисленными добавлениями из проекта 386BSD, и уже в мае 1994 года, выла выпущена FreeBSD 1.1 RELEASE. Тем временем, между компанией Novell и Калифорнийским университетом в Беркли назревал скандал, связанный с легальностью версии Net/2 из Беркли. Судебное разбирательство тянулось достаточно долго. В итоге, по условиям соглашения, достигнутого в ходе данного процесса, Калифорнийский университет признавал, что большие куски кода Net/2, были «унаследованным» кодом, права на который принадлежали компании Novell, ранее выкупившей эти права у компании AT&T. Взамен Novell давала «добро» на то, что версия 4.4BSD-Lite, будет объявлена как полностью свободной, а пользователям Net/2 будет настоятельно рекомендовано перейти на нее. Данное соглашение так-же касалось и FreeBSD, проекту было дано время, до конца июля 1994 года, для прекращения распространения продукта на основе Net/2. До истечения срока, было разрешено выпустить версию FreeBSD 1.1.5.1. Проекту предстояло почти все пересоздавать практически с нуля, взяв за основу, по сути не законченный проект 4.4BSD-Lite, и в ноябре 1994 года, была выпущена FreeBSD 2.0. Все это довольно запутанно, информация из различных источников как правило довольно противоречива. Очевидно одно, версия 4.4BSD-Lite, является бабушкой текущего кода FreeBSD а так-же прародительницей многих других операционных систем семейства BSD.

Другие BSD системы

4.4BSD-Lite породила не только операционную систему FreeBSD, но и массу других проектов, из которых можно выделить следующие:

NetBSD

- во многом подобна FreeBSD, а их команды делят между собой разработчиков и сам программный код. Основное назначение NetBSD, предоставить надежную и безопасную операционную систему, которая может быть перенесена практически на любую аппаратную платформу с минимальными усилиями. Так NetBSD работает на VAX, PocketPC, высокопроизводительных серверах SPARC и Alpha.

OpenBSD

- ответвилась от проекта NetBSD в 1996 году. Основным отличием от других BSD систем, изначальная ориентированность на повышенную безопасность. Одним из дочерних проектов OpenBSD, является пакет OpenSSH, использующийся практически всеми операционными системами и производителями аппаратного обеспечения.

MacOS X

- Стабильная операционная система с дружественным интерфейсом, использующаяся на компьютерах компании Apple, на процессорах PowerPC и Intel, так-же содержит в себе значительные участки кода BSD.

Операционные системы на основе FreeBSD:

  • DragonFly BSD
  • ClosedBSD
  • DesktopBSD
  • FreeSBIE
  • FreeNAS
  • Frenzy Live CD
  • Debian GNU/kFreeBSD
  • Gentoo/FreeBSD
  • IronPort AsyncOS - защитные устройства
  • Juniper Networks JunOS - роутеры Juniper
  • MidnightBSD
  • Nokia IPSO - защитные устройства Nokia IP
  • PC-BSD
  • PicoBSD
  • RofreeSBIE
  • The Dark Star
  • TrueBSD
  • m0n0wall
  • pfSense
  • Paxym FreeBSD для Octeon Cavium_Networks

Операционные системы на основе NetBSD:

  • OpenBSD – ответвление от NetBSD 1.0, акцент на активной безопасности и интегрированной криптографии
  • BlackBSD
  • Force10 Networks FTOS, операционная система для роутеров/свичей Force10 TeraScale E-Series
  • Debian GNU/NetBSD
  • Gentoo/NetBSD
  • Jibbed
  • PolyBSD/pocketSAN
  • Redback Networks SEOS, операционная система для роутеров серии Redback SmartEdge

Операционные системы на основе OpenBSD:

  • Quetzal
  • Anonym.OS
  • FuguIta
  • BSDAnywhere
  • Gentoo/OpenBSD
  • MirOS MirOS BSD
  • OliveBSD

Операционные системы на основе Dragonfly BSD:

Firefly BSD

Лицензия BSD

Лицензию BSD, можно считать самой свободной в плане ограничений налагаемых на пользователя, по сравнению с другими лицензиями на свободное программное обеспечение. Данная лицензия существует в двух вариантах, оригинальная и измененная. В измененную был добавлен дополнительный, 3-й пункт, гласящий: * * Ни название <Организации>, ни имена ее сотрудников не могут быть * использованы в качестве поддержки или продвижения продуктов, * основанных на этом ПО без предварительного письменного разрешения. Ниже приведен текст оригинальной лицензии BSD. * Copyright 1994-2009 The FreeBSD Project. All rights reserved. * * Разрешается повторное распространение и использование как в виде исходного * кода, так и в двоичной форме, с изменениями или без, при соблюдении * следующих условий: * * * При повторном распространении исходного кода должно оставаться * указанное выше уведомление об авторском праве, этот список условий и * последующий отказ от гарантий. * * При повторном распространении двоичного кода должна сохраняться * указанная выше информация об авторском праве, этот список условий и * последующий отказ от гарантий в документации и/или в других * материалах, поставляемых при распространении. * * ЭТА ПРОГРАММА ПРЕДОСТАВЛЕНА ВЛАДЕЛЬЦАМИ АВТОРСКИХ ПРАВ И/ИЛИ ДРУГИМИ * СТОРОНАМИ "КАК ОНА ЕСТЬ" БЕЗ КАКОГО-ЛИБО ВИДА ГАРАНТИЙ, ВЫРАЖЕННЫХ ЯВНО * ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ ИМИ, ПОДРАЗУМЕВАЕМЫЕ * ГАРАНТИИ КОММЕРЧЕСКОЙ ЦЕННОСТИ И ПРИГОДНОСТИ ДЛЯ КОНКРЕТНОЙ ЦЕЛИ. НИ В * КОЕМ СЛУЧАЕ, ЕСЛИ НЕ ТРЕБУЕТСЯ СООТВЕТСТВУЮЩИМ ЗАКОНОМ, ИЛИ НЕ УСТАНОВЛЕНО * В УСТНОЙ ФОРМЕ, НИ ОДИН ВЛАДЕЛЕЦ АВТОРСКИХ ПРАВ И НИ ОДНО ДРУГОЕ ЛИЦО, * КОТОРОЕ МОЖЕТ ИЗМЕНЯТЬ И/ИЛИ ПОВТОРНО РАСПРОСТРАНЯТЬ ПРОГРАММУ, КАК БЫЛО * СКАЗАНО ВЫШЕ, НЕ НЕСЁТ ОТВЕТСТВЕННОСТИ, ВКЛЮЧАЯ ЛЮБЫЕ ОБЩИЕ, СЛУЧАЙНЫЕ, * СПЕЦИАЛЬНЫЕ ИЛИ ПОСЛЕДОВАВШИЕ УБЫТКИ, ВСЛЕДСТВИЕ ИСПОЛЬЗОВАНИЯ ИЛИ * НЕВОЗМОЖНОСТИ ИСПОЛЬЗОВАНИЯ ПРОГРАММЫ (ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ * ПОТЕРЕЙ ДАННЫХ, ИЛИ ДАННЫМИ, СТАВШИМИ НЕПРАВИЛЬНЫМИ, ИЛИ ПОТЕРЯМИ * ПРИНЕСЕННЫМИ ИЗ-ЗА ВАС ИЛИ ТРЕТЬИХ ЛИЦ, ИЛИ ОТКАЗОМ ПРОГРАММЫ РАБОТАТЬ * СОВМЕСТНО С ДРУГИМИ ПРОГРАММАМИ), ДАЖЕ ЕСЛИ ТАКОЙ ВЛАДЕЛЕЦ ИЛИ ДРУГОЕ * ЛИЦО БЫЛИ ИЗВЕЩЕНЫ О ВОЗМОЖНОСТИ ТАКИХ УБЫТКОВ.

Протестировал FreeBSD 10 и пришел в неописуемый восторг. Сначала сильно разочаровался, а потом еще сильнее удивился, но уже приятно.

Часть 1. Разочарование

После установки FreeBSD 10 пользователь получает только командную строку. Выбрать GNOME, KDE, Xfce и т.п. еще в инсталляторе нельзя. Даже Иксов нет. Все это предстоит установить и настроить пользователю.

По умолчанию используется файловая система UFS, отличающаяся медлительностью и тем, что в случае внезапного выключения компьютера вы останетесь без своих файлов. Собственно, это и произошло. Во время настройки Xorg система повисла. Пришлось жать хард ресет. После этого в /etc пропала половина файлов, включая главный конфигурационный файл /etc/rc.conf. В домашней директории файлы остались, но стали нулевой длины. В результате программы начали вести себя немного странно. Ну, например:

Невозможно загрузить штатную тему оформления. Штатная тема оформления была загружена.

Локализация проводится в ручную. Загрузчик GRUB отсутствует, есть какой-то совсем примитивный загрузчик версии 1.0.

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

Часть 2. Восторг

Ну не может быть Фряха настолько убогой, наверное это я не разобрался в философии FreeBSD. Сел за чтение руководства. Выделил под установку комп с отдельным диском (весь диск под установку, а не один из разделов - о том, зачем это нужно чуть ниже).

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

Pkg install mc

Пакетный менеджер pkg показался мне даже более удобным, чем apt-get. Зацените как просто найти пакет по описанию:

Pkg search apache

А вот пользователя apt-get зачем-то заставляют запускать apt-cache search для этих целей, что не вполне логично.

Таким образом, установка Иксов и Гнома выглядит так:

Pkg install xorg pkg install gnome2

Да-да, Гном здесь второй! Моя любимая версия, по которой я очень скучал. Третьего Гнома нет не потому, что во Фряхе и все остальное ПО старых версий, а потому, что он не нужен. Кстати, софт в FreeBSD будет посвежее того, что в Debian. Например, удивил LibreOffice, который оказался едва ли не последней версии. Ruby так и вообще версии 2.0, тогда как даже в Ubuntu до сих пор 1.9.

Настройка автозапуска Гнома вместо консоли тоже довольно проста. Основная сложность лишь в том, что это нигде не задокументировано. В хваленом официальном руководстве описаны неработающие способы через извращения с startx и.xinintrc. Правильный рецепт удалось найти - вы не поверите - в ролике на Ютюбе. Оказывает, правильно запускать Гном так:

Hald_enable="YES" dbus_enable="YES" gnome_enable="YES"

Всё. Это один раз заносится в главный конфигурационный файл /etc/rc.conf и после этого Gnome стартует автоматически.

Загрузив графическую среду, я принялся доустанавливать привычный мне софт. И тут началось самое удивительное - программы запускаются в 5-10 раз быстрее, чем в Linux. Не по субъективным ощущениям, а я засекал. Например, запуск LibbreOffice Writer выглядит так: появляется окно с логотипом и прогрессбаром, прежде чем индикатор прогрессбара успевает тронуться с места закрывается окно с логотипом - Writer загружен. Такое же было, когда я заменил HDD на SSD. Но на этом тестовом компьютере стоял старенький Seagate 1 Tb.

То ли дело в ZFS, то ли в отказе от GCC в пользу Clang, то ли из-за легкого GNOME 2, то ли еще какая причина, но факт в том, что все летает и это очень приятно. Очень трудно после такого возвращаться на Linux, который по сравнению с FreeBSD кажется еле живым.

Таким образом, установив FreeBSD 10 пользователь получает:

  • одну из самых продвинутых файловых систем - ZFS;
  • удобный менеджер пакетов;
  • свежие версии программ, к которым пользователь привык в Linux;
  • репозиторий набит под завязку, в нем есть практически все;
  • программы запускаются значительно быстрее;
  • порядок в директориях (файлы операционной системы и стороннего прикладного софта не перемешиваются);
  • удобный и быстрый GNOME2;
  • бинарники под Linux даже в режиме эмуляции работают в FreeBSD быстрее, чем в самом Linux;
  • и множество других приятнейших особенностей.

В общем, FreeBSD 10 - приятнейшая система, которую я буду обязательно использовать. Остается только сравнить производительность Apache под FreeBSD, но мне уже кажется , что пользователей Фряхи и тут ждет приятный сюрприз.

Многие Linux пользователи уже слышали про FreeBSD, эта система использует ядро BSD, похожее на Linux, поскольку оба ядра основаны на Unix и поддерживают одни и те же стандарты POSIX. Это такая же свободная, бесплатная операционная система с открытым исходным кодом, разработанная для обеспечения максимальной безопасности и гибкости. Чаще всего она используется на серверах. Основное отличие от Linux в том, что разработкой ядра и программного обеспечения занимается одна команда разработчиков.

FreeBSD поддерживает множество различных процессорных конфигураций, от серверов до микрокомпьютеров, таких как Raspberry Pi. Как и Linux, система поставляется с множеством программ, которые можно очень просто установить с помощью портов. Всего доступно более 20 000 пакетов. В этой инструкции мы рассмотрим как выполняется установка FreeBSD 11 последней, на данный момент, версии на компьютер amd64. Будем устанавливать версию с интерфейсом командной строки, она лучше всего подходит для серверов.

Как обычно, сначала нам нужно скачать установочный образ, и только потом может быть выполнена установка и настройка freebsd 11.

На официальном сайте есть несколько версий для разных архитектур, нам нужна amd64 или x86, в зависимости от количества оперативной памяти, которую вы желаете использовать.

Мы будем устанавливать последнюю версию FreeBSD 11.1, но если позже выйдет более новая версия, то я думаю, что статья будет все еще актуальна и для нее.

Шаг 2. Запись образа на диск

Далее вам нужно записать полученный образ на диск или на флешку. Вы можете использовать один из известных вам методов для этого. Например, в Linux вы можете использовать Unetbootin или Etcher, а в Windows есть Rufus.

Далее вставьте носитель в компьютер и измените настройки BIOS так, чтобы загрузка выполнялась из вставленного носителя. Чтобы войти в BIOS, во время загрузки нажмите одну из клавишей: F2, F11, F12 перед загрузкой операционной системы. Затем перейдите на вкладку "Boot" и поставьте там ваш носитель на первое место.

Установка FreeBSD 11

Шаг 3. Меню загрузчика

В первом меню загрузчика вам не нужно менять никаких параметров. Просто нажмите "Enter" для продолжения работы:

Шаг 4. Выбор действия

Шаг 5. Раскладка клавиатуры

Выберите вашу раскладку клавиатуры, по умолчанию используется английская, в большинстве случаев лучше ее оставить:

Шаг 6. Имя хоста

Введите имя хоста для новой системы:

Шаг 7. Выбор программ

На следующем экране вам предстоит выбрать компоненты системы, которые вы хотите установить FreeBSD 11 на свой компьютер. Для того, чтобы отметить компонент нажмите "Пробел" . Для сервера достаточно оставить библиотеки совместимости lib32 и Ports.

Когда завершите, нажмите "Enter" .

Шаг 8. Автоматическая разметка диска

Дальше нужно выполнить разметку диска. Вы можете довериться установщику и выполнить автоматическую разметку или же сделать все вручную. Если у вас есть несколько жестких дисков, которые необходимо подключить, лучше использовать ZFS. Но мы рассмотрим на примере UFS.

Затем выберите таблицу разделов. Если ваш диск больше 2 Тб или вы используете UEFI вместо BIOS, то вам лучше использовать GPT, в всех остальных случаях более предпочтительно MBR. Даже будет лучше если вы отключите защищенную загрузку и будете использовать MBR:

В следующем окне система покажет вам созданные разделы. В случае MBR будет создано два раздела - корень и раздел подкачки. Используйте "Tab" для выбора кнопки "Commit" , а затем нажмите "Enter" :

Шаг 9. Установка FreeBSD


Шаг 10. Пароль суперпользователя

Когда установка завершится, система предложит вам ввести пароль для суперпользователя. Установщик спросит пароль два раза, но он не будет отображаться на экране:

Шаг 11. Настройка сети

Затем выберите "Yes" , чтобы выполнить настройку ip адреса IPv4:

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

Настройку адреса IPv6 можно пропустить:

Последний этап настройки сети - настройка DNS серверов. Лучше всего добавить, кроме стандартного, DNS сервер от Google - 8.8.8.8:

Шаг 12. Регион

Выберите географический регион, в котором расположен ваш компьютер:

Затем выберите вашу страну:

Шаг 13. Настройка даты

На следующем этапе нужно ввести текущую дату и время, если они были неверно получены из сети:


Дальше нужно выбрать какие сервисы будут загружаться по умолчанию при старте системы. Например, SSH, NTP и Powerd. Последний позволяет автоматически регулировать частоту процессора в зависимости от нагрузки на систему.

Шаг 15. Дополнительные оптимизации

Эти опции позволяют усилить безопасность вашей системы. Отключите доступ к буферу ядра для непривилегированных пользователей. Отключите отладку, Включите очистку /tmp во время загрузки, отключите сокет Syslogd и Sendmail если вы не планируете использовать почтовый сервер:

Шаг 16. Другие пользователи

Дальше установщик спросит вас не желаете ли вы добавить к системе еще пользователей. Выберите "yes" и введите всю необходимую информацию о пользователе. Безопаснее всего оставить все поля по умолчанию, для этого достаточно нажимать "Enter" :

В качестве оболочки вы можете выбрать Bourne shell (sh) или tcsh. Когда завершите, просто наберите "Yes" :

Шаг 17. Завершение установки

На последнем экране перед вами появится простое меню действий. Если вы не хотите ничего менять, просто выберите первый пункт - "Exit" и ответьте "no" , чтобы перезапустить компьютер:


FreeBSD – свободная и открытая Unix-подобная операционная система и популярная серверная платформа. Хотя FreeBSD и другие BSD-системы имеют много общего с такими системами, как Linux, между ними есть много важных отличий.

Данная статья вкратце ознакомит вас с основными общими чертами и различиями между системами FreeBSD и Linux.

Примечание : Статья сосредоточена на FreeBSD, но многие из перечисленных ниже пунктов касаются и других BSD-систем.

Что общего между FreeBSD и Linux?

Для начала нужно выяснить, чем эти системы похожи друг на друга.

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

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

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

Поэтому дистрибутивы FreeBSD и Linux могут совместно использовать многие инструменты и приложения. В некоторых случаях отличаются версии или варианты программ, но приложения между этими системами мигрировать легче, чем в не-Unix-подобную систему.

Теперь пора разобраться, чем же отличаются FreeBSD и Linux.

Различия в лицензировании

Одно из самых фундаментальных различий между системами FreeBSD и Linux – вопрос лицензирования.

Ядро Linux, приложения на основе GNU и многие программные продукты из мира Linux лицензируются по GPL (или GNU General Public License). Эта лицензия часто называется свободной (copyleft). По сути, это форма лицензирования, которая позволяет свободно просматривать, распространять и изменять исходный код при условии, что любые производные продукты будут поддерживать эту же лицензию.

FreeBSD (включая ядро и все инструменты, созданные разработчиками FreeBSD) распространяет свое программное обеспечение под лицензией BSD. Этот тип лицензироавния более либеральный, чем GPL, поскольку он не требует, чтобы производный продукт поддерживал условия этой лицензии. Это означает, что любой человек или организация может использовать, распространять или модифицировать программу без необходимости делать вклад в ее развитие или открывать исходный код. Единственное требование заключается в том, что в исходный код или документацию производной программы (в зависимости от метода выпуска) должны быть включены авторские права, копия лицензии BSD и отказ от обязательств. Сама лицензия очень короткая, ее можно найти .

Преимущества каждого из этих типов лицензирования почти полностью зависят от философии и потребностей пользователя. Лицензии GPL ратуют за совместное использование кода и открытую экосистему. Закрытое программное обеспечение не должно основываться на программах с лицензией GPL. А лицензионное программное обеспечение BSD можно свободно включать в закрытые приложения. Это делает лицензирование BSD более привлекательным для многих компаний и частных лиц, надеющихся монетизировать свое программное обеспечение – оно позволяет продать программное обеспечение и сохранить исходный код закрытым.

Понимание лицензирования систем FreeBSD и Linux поможет вам лучше разобраться с их философией.

История развития FreeBSD

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

Linux – это ядро, разработанное Линусом Торвальдсом как средство замены ограничительной системы MINIX, которую он использовал в Хельсинском университете. В сочетании с другими компонентами, многие из которых поступают из набора GNU, операционная система на ядре Linux имеет много уникальных свойств Unix, несмотря на то, что она не была непосредственным ответвлением системы Unix. Поскольку Linux была запущена с нуля, не наследует дизайн и некоторые из устаревших соображений, она может значительно отличаться от систем с более тесными связями с Unix.

FreeBSD имеет множество прямых связей с Unix. BSD (или Berkeley Software Distribution) – это дистрибутив Unix, созданный в Калифорнийском университете в Беркли, который расширил набор функциональных возможностей AT&T Unix и имел приемлемые условия лицензирования. Позже было принято решение попытаться заменить исходную операционную систему AT&T, используя альтернативы с открытым исходным кодом, чтобы пользователям не требовалось получать лицензию AT&T для работы с BSD. В конце концов, все компоненты оригинальной системы AT&T были переписаны под лицензией BSD и перенесены в архитектуру i386 как 386BSD. Система FreeBSD стала форком этой базы с целью улучшить и модернизировать проделанную работу и в конечном итоге была перебазирована в неполный релиз под названием BSD-Lite для решения вопросов лицензирования.

Благодаря длительному и многоэтапному процессу ответвления FreeBSD стала свободной от лицензий, но поддерживала тесные связи с ее прошлым. Разработчики системы по-прежнему реализовали многие функции способами, принятыми в Unix, возможно, потому, что FreeBSD всегда разрабатывалась в качестве клона Unix с открытой лицензией. Это повлияло на дальнейшее развитие и повлекло за собой последствия, речь о которых пойдет ниже.

Базовая операционная система и дополнительное программное обеспечение

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

Это различие может показаться незначительным, но на самом деле это сильно влияет на взаимодействие и управление системой. В Linux дистрибутив может объединить пакеты, гарантируя, что они хорошо взаимодействуют друг с другом. Однако большинство компонентов будут поступать из широкого круга источников, а разработчики дистрибутива только формируют из них наборы, которые правильно функционируют в системе.

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

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

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

Формирование релизов

Большинство релизов Linux являются результатом сбора программного обеспечения из разных источников (и, при необходимости, его изменения). Составители дистрибутива решают, какие компоненты должны быть включены в установку, какие – в поддерживаемые репозитории и т. д. После совместного тестирования компонентов создается релиз.

В предыдущем разделе вы узнали, что:

  • Большая часть операционной системы FreeBSD разрабатывается командой FreeBSD.
  • Базовая операционная система FreeBSD – основной выход.
  • Базовое программное обеспечение FreeBSD считается единым и неделимым набором.

Эти качества FreeBSD приводят к тому, что при релизе программного обеспечения используется не такой подход, как в большинстве дистрибутивов Linux. Поскольку FreeBSD организует все на уровне операционной системы, все базовые компоненты поддерживаются в одном репозитории исходного кода. Это имеет несколько важных последствий.

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

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

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

Различия в программном обеспечении и системном дизайне

Оставшиеся различия связаны с самим программным обеспечением и общими качествами системы.

Установка поддерживаемых пакетов и исходного кода

Одним из ключевых различий между FreeBSD и большинством дистрибутивов Linux с точки зрения пользователя является наличие и поддержка программного обеспечения как в виде пакетов, так и в виде исходного кода.

Хотя большинство дистрибутивов Linux предоставляют только предварительно скомпилированные бинарные пакеты программного обеспечения, FreeBSD содержит как готовые пакеты, так и систему сборки для компиляции и установки из исходного кода. Это позволяет выбирать между предварительно скомпилированными пакетами с разумными значениями по умолчанию и возможностью отладить программное обеспечение во время процесса компиляции, создавая его самостоятельно. FreeBSD делает это через систему портов.

Система портов FreeBSD – это коллекция программного обеспечения, которое умеет собирать FreeBSD. Организованная иерархия, представляющая это программное обеспечение, доступна в каталоге /usr/ports, где пользователи могут развернуть каталоги для каждого приложения. Эти каталоги содержат несколько файлов, в которых указывается, где можно найти исходные файлы, а также инструкции для компилятора о том, как отладить исходный код для корректной работы с FreeBSD.

Пакетные версии программного обеспечения фактически производятся из системы портов, что делает FreeBSD дистрибутивом на основе исходного кода с доступными пакетами для удобства. Ваша система может состоять как из скомпилированного, так и из предварительно упакованного программного обеспечения. Система управления программным обеспечением может адекватно обрабатывать комбинацию этих методов установки.

Стандартное ПО vs пользовательское ПО

Одним из аспектов, который может показаться пользователям Linux немного странным, является тот факт, что FreeBSD обычно предоставляет программное обеспечение upstream по возможности без изменений.

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

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

Разработчики FreeBSD часто модифицируют программное обеспечение с помощью патчей, но эти изменения, как правило, более консервативны, чем некоторые варианты пакетов дистрибутивов Linux. В целом, в экосистеме FreeBSD выполняются только те модификации программного обеспечения, которые необходимы для правильной сборки и работы в среде FreeBSD, а также создания хорошей настройки по умолчанию. Конфигурационные файлы, которые помещаются в файловую систему, обычно не сильно отредактированы, поэтому вам может потребоваться дополнительная настройка, чтобы заставить компоненты взаимодействовать друг с другом.

Общие инструменты FreeBSD

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

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

Для этого есть несколько причин. Поскольку команда FreeBSD отвечает за разработку и поддержание основной операционной системы, контроль разработки этих приложений и размещение их под лицензией BSD является необходимым и полезным моментом. Некоторые из этих инструментов также имеют тесную функциональную связь с инструментами BSD и Unix, на основе которых они были созданы, в отличие от пакетов GNU, который в целом не имеет тенденции к обратной совместимости.

Эти различия часто проявляются в вариантах и синтаксисе команд. Определенные команды работают на машинах Linux, но они могут не работать на сервере FreeBSD. Важно всегда проверять справку команд, чтобы ознакомиться с вариантами для FreeBSD.

Стандартная оболочка

Следующее отличие, которое может вызвать путаницу, связано с предыдущим и заключается в том, что FreeBSD не использует bash по умолчанию. Вместо этого FreeBSD использует tcsh.

Эта оболочка является улучшенной версией csh – оболочки C, разработанной для BSD. Оболочка bash является компонентом GNU, а потому она не может быть оболочкой по умолчанию в FreeBSD. Хотя обе оболочки обычно работают аналогично в командной строке, в tcsh не выполняются сценарии. Базовая оболочка Bourne sh более надежная и позволяет избежать некоторых ошибок, связанных с сценариями tcsh и csh.

Конечно, можно также очень просто настроить bash как оболочку FreeBSD.

Структура файловой системы

Ранее несколько раз упоминалось то, что FreeBSD делится на базовую операционную систему и дополнительные компоненты или порты, которые можно установить.

Это влияет на то, как FreeBSD организует компоненты в файловой структуре. В Linux исполняемые файлы обычно находятся в каталогах /bin, /sbin, /usr/sbin или /usr/bin в зависимости от их назначения и того, насколько важны их основные функции. FreeBSD распознает эти различия, но также накладывает еще один уровень разделения между компонентами базовой системы и компонентами, установленными из портов. Программное обеспечение базовой системы находится в одном из вышеперечисленных каталогов. Любые программы, установленные через порт или пакет, помещаются в /usr/local/bin или /usr/local/sbin.

Каталог /usr/local содержит структуру каталогов, которая в основном отражает структуру каталогов / или /usr. Это основной каталог для программного обеспечения, установленного через систему портов. Почти вся конфигурация портов выполняется через файлы, расположенные в каталоге /usr/local/etc, в то время как базовая конфигурация системы хранится в /etc (как обычно). Это позволяет легко распознать, является ли приложение частью базовой системы, и помогает поддерживать файловую систему в чистоте.

Заключение

FreeBSD и Linux имеют много общего и еще больше различий. Обе системы имеют свои преимущества.

FreeBSD следует воспринимать как отдельную операционную систему и не пытаться подогнать ее под восприятие Linux.

Если вы окончательно решили отдать предпочтение UNIX, а не Windows, Мас OS или другой системе, то встает следующий вопрос какую разновидность UNIX выбрать? FreeBSD -- один из нескольких доступных вариантов, и нужно понимать, чем эта система отличается от других аналогичных систем. Во многих случаях любая UNIX-система вполне подходит для решения поставленных задач, но бывают ситуации, когда FreeBSD лучше (или хуже) справляется с конкретной задачей.

Как правило, в различных UNIX-системах используется одно и то же программное обеспечение. Например, во всех системах работают популярные серверы sendmail и Apache, а также Х Window System. Ниже перечислено то, что действительно отличает UNIX-системы друг от друга.

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

Аппаратная поддержка. UNIX-системы работают не только на платформе х86. Производительность процессоров х86 ставит их на нижнюю ступень, по крайней мере в семействе процессоров универсального назначения. Некоторые UNIX-системы ориентированы на суперкомпьютеры, и обычные операционные системы, такие как FreeBSD, не могут с ними конкурировать. Поддержка конкретных аппаратных устройств (модемов, сетевых и звуковых плат и т.д.) зависит от ядра и вспомогательных программ.

Стратегия распространения. Некоторые разновидности UNIX распространяются как коммерческие продукты, но в основном они представляют собой системы с открытым исходным кодом. Это означает, что любой желающий может получить исходный код системы, модифицировать его и распространить дальше. Системы с открытым исходным кодом значительно дешевле в эксплуатации, чем их коммерческие аналоги. Впрочем, в 1990-е годы коммерческие разновидности UNIX упали в цене, а некоторые из них даже стали бесплатными для определенного круга применений.

Стандартный набор и конфигурация программного обеспечения. UNIX существует уже около трех десятилетий, и за это время появилось множество версий популярных утилит, конфигурируемых самыми разными способами. В каждой UNIX-системе свой набор стандартных программ. В одних системах используются конфигурационные сценарии BSD-типа, в других -- сценарии System V. Наиболее распространенным почтовым сервером является программа sendmail, но в некоторых системах работают другие серверы. Подобные различия определяют уникальность каждой операционной системы семейства UNIX. Если сравнивать UNIX и, скажем, Windows, то эти различия несущественны, но в то же время их более чем достаточно для того, чтобы при переходе из одной UNIX-системы в другую приходилось покупать справочное руководство.

Ядро FreeBSD является производным от открытой реализации исходного ядра AT&T UNIX. Изначально система предназначалась для процессоров семейства Intel х86, но впоследствии стала поддерживать родственные семейства процессоров компаний AMD, VIA (Cyrix), Transmeta и других (большей частью не существующих сегодня). Ведутся работы по переносу системы на другие процессоры, например Alpha, но они еще далеки от завершения.

Ядро FreeBSD отличается монолитностью, т.е. имеет единую логическую структуру. Вспомогательные компоненты, например драйверы файловой системы, помещаются в так называемое пространство ядра и потому могут контролировать аппаратные компоненты и структуры данных ядра. В некоторых разновидностях UNIX применяется иная модель, называемая микроядром. В такой схеме ядро имеет меньший размер и взаимодействует с внешними компонентами, реализующими традиционные функции ядра, в частности доступ к файловой системе. У каждого подхода есть свои сторонники.

FreeBSD -- это операционная система с открытым исходным кодом. Большинство ее компонентов распространяется на условиях лицензии BSD . Эта лицензия разрешает модификацию и последующее распространение исходного кода на тех условиях, которые выберет разработчик. Теоретически это означает, что кто угодно может модифицировать код системы и продать его как коммерческий продукт. Другой популярной лицензией для систем с открытым исходным кодом является GPL (GNU General Public License). Она требует, чтобы любые модификации распространялись с соблюдением исходных требований GPL. Такую лицензию имеет ядро Linux, и отсюда проистекают многие различия между FreeBSD и Linux. Во FreeBSD используются программные компоненты, имеющие лицензию BSD, а в Linux больше GPL-компонентов. Это не влияет напрямую на работу операционной системы, но многие утилиты существуют в разных вариантах в зависимости от типа лицензии.

Некоторые разновидности UNIX патентованы. Например, системы Solaris компании Sun и AIX компании IBM являются коммерческими системами. Иногда их можно использовать бесплатно, как в случае Solaris для платформы х86, но чаще всего за лицензию коммерческой версии UNIX приходится платить. Различия между открытыми и коммерческими системами лежат в основном в концептуальной и экономической плоскостях. С функциональной точки зрения FreeBSD во многом эквивалентна своим коммерческим аналогам.

Коммерческие и открытые системы часто совместимы. Программы, имеющие открытый исходный код, можно запускать в коммерческой операционной системе, и наоборот: коммерческие программы можно запускать в открытой ОС. Тем не менее большинство программ FreeBSD имеет открытую лицензию.

Помимо FreeBSD широко распространены следующие разновидности UNIX.

NetBSD. Это одна из трех операционных систем, производных от 386/BSD. Две другие -- FreeBSD и OpenBSD. NetBSD отличается от FreeBSD тем, что перенесена на большее число процессоров. Принципы их лицензирования и общая структура весьма схожи, но FreeBSD остается более популярной, так как активнее рекламируется и чуть проще в инсталляции и применении.

ОрепBSD. Эта система славится своей безопасностью. Ее разработчики потратили немало усилий на то, чтобы создать систему, которую не так просто взломать. Как и NetBSD, OpenBSD схожа с FreeBSD по конфигурации, принципам лицензирования и доступному программному обеспечению.

Linux. Linux можно считать отдельным семейством операционных систем с открытым исходным кодом. С технической точки зрения Linux -- это лишь ядро; в дистрибутив Linux входят ядро и пакеты программ, составляющие операционную систему. По общим принципам конфигурирования и составу программных средств FreeBSD больше отличается от Linux, чем от NetBSD и OpenBSD. Стоит обратить внимание на то, что пользователи, не знакомые с UNIX, иногда считают FreeBSD дистрибутивом Linux. Это не так. FreeBSD не использует ядро Linux и отличается множеством конфигурационных нюансов. FreeBSD следует считать производной от дистрибутива BSD (Berkeley Software Distribution), тогда как Linux является свободно распространяемой, полностью переработанной реализацией UNIX, гораздо слабее связанной с ранними версиями BSD и AT&T UNIX.

Solaris. Это коммерческая разновидность UNIX, выпущенная компанией Sun и используемая в основном на ее серверных платформах. Серверы Sun, работающие на процессорах SPARC, являются конкурентами высокопроизводительных систем на базе процессоров х86 старших моделей. Операционная система Solaris может работать и на платформе х86, однако набор ее драйверов меньше, чем у FreeBSD. Система Solaris удобна для разработчиков, которые пишут программы для компьютеров Sun. В остальных случаях более предпочтительным выбором для персональных компьютеров являются FreeBSD и Linux.

AIX. Это коммерческая разновидность UNIX, выпущенная компанией IBM для своего специализированного оборудования. Подобно системам компании Sun, AIX нацелена на верхний сегмент рынка серверов, поэтому мало конкурирует с FreeBSD.

IRIX. Большинство рабочих станций Silicon Graphics работает под управлением IRIX -- коммерческой разновидности UNIX. Ранее основным достоинством этих систем была оптимизированная обработка высококачественной графики, с их помощью создавались спецэффекты для кинофильмов. Сегодня в этот сегмент рынка активно вторгаются недорогие компьютеры на базе процессоров х86, но позиции Silicon Graphics и IRIX все еще сильны.

В целом основными конкурентами FreeBSD являются другие BSD-системы и Linux. FreeBSD популярнее своих "родственников" на платформе х86, поэтому активнее поддерживается сторонними разработчиками. Эта система разрабатывалась с акцентом на простоту инсталляции и администрирования; здесь она опережает NetBSD и OpenBSD. Достоинством OpenBSD является улучшенная безопасность, а NetBSD поддерживает не только процессоры х86. Что касается Linux, то у нее больше отличий в плане аппаратной и программной поддержки и ее лицензирование основывается на несколько иных принципах. Для новичков, которым требуется UNIX-система универсального назначения с открытым исходным кодом, FreeBSD и Linux подойдут в одинаковой степени. Но Linux развивается гораздо хаотичнее, и различия между ее многочисленными дистрибутивами часто сбивают с толку неопытных пользователей.

FreeBSD вряд ли можно считать конкурентом коммерческих разновидностей UNIX, ориентированных на компьютеры, которые превосходят по производительности системы на базе процессоров х86. Если в организации используются высокопроизводительные серверы Sun, IBM или SGI в сочетании с недорогими персональными компьютерами, то на последних можно установить FreeBSD, поскольку процедуры администрирования FreeBSD и коммерческих разновидностей UNIX во многом схожи. Иногда системы х86 старших моделей напрямую конкурируют с системами Sun, IBM и SGI младших моделей. Достоинством первых является низкая цена, но для них сложнее заключать контракты на сервисное обслуживание.