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

Вступление

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

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

Черты, которые разделяют FreeBSD и Linux

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

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

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

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

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

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

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

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

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

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

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

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

Линия FreeBSD и ее значение

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

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

FreeBSD имеет много прямых связей с наследием Unix. BSD, или Berkeley Software Distribution, была дистрибутивом Unix, созданным в Калифорнийском университете в Беркли, который расширил набор функций операционной системы Unix от AT & T и имел приемлемые условия лицензирования. Позже было принято решение попытаться заменить как можно больше оригинальной операционной системы 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 Flavors of Common Tools

Другим аспектом систем 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, хорошим следующим шагом может стать наше руководство на getting start с FreeBSD.

Related