Поиск по сайту:

Сравнительное введение в FreeBSD для пользователей Linux


Введение

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

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

Примечание. С 1 июля 2022 г. DigitalOcean больше не поддерживает создание новых капель FreeBSD через панель управления или API. Однако вы по-прежнему можете запускать капли FreeBSD, используя собственный образ. Узнайте, как импортировать собственное изображение в DigitalOcean, следуя нашей документации по продукту.

Общие черты FreeBSD и Linux

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

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

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

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

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

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

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

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

Ядро Linux, приложения на основе GNU и многие части программного обеспечения, созданного в мире Linux, лицензируются в той или иной форме GPL или Стандартной общественной лицензией GNU. Эту лицензию часто называют лицензией «авторского лева», которая представляет собой форму лицензирования, позволяющую свободно просматривать, распространять и изменять исходный код, требуя при этом, чтобы любые производные работы сохраняли эту лицензию.

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

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

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

Линия 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 Unix были переписаны под лицензией BSD и перенесены на архитектуру i386 как 386BSD. FreeBSD была создана на основе этой базы, чтобы поддерживать, улучшать и модернизировать работу, которая уже была там, и в конечном итоге была перестроена на неполный выпуск под названием BSD-Lite из-за проблем с лицензированием.

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

Отделение основной операционной системы от дополнительного программного обеспечения

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

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

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

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

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

Как формируются релизы

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

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

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

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

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

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

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

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

Остальные отличия, о которых мы поговорим, будут связаны с самим программным обеспечением и общими качествами системы.

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

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

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

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

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

Ваниль против заказного программного обеспечения

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

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

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

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

Варианты общих инструментов FreeBSD

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

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

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

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

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

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

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

Также стоит отметить, что очень просто сменить оболочку на bash, если вам удобнее в этой среде.

Более стратифицированная файловая система

Выше мы несколько раз упоминали, что 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 имеют много общего, но если вы работаете с Linux, важно распознавать и понимать, чем они отличаются. Там, где их пути расходятся, обе системы имеют свои преимущества, и сторонники из любого лагеря могут указать причины сделанного выбора.

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

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