Введение в FreeBSD для пользователей Linux. Что представляет собой BSD? Операционные системы на основе Dragonfly BSD

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 – свободная и открытая 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.

Краткое описание ОС FreeBSD.

Операционная система FreeBSD

Основные полезности:

  • Основная информация о системе Основной сайт Master FTP
  • Разрабатывается Калифорнийским Университетом Беркли, на основе системы BSD4.4-Lite под лицензией BSD
  • Портированна на архитектуры: x86-совместимые, DEC Alpha, AMD64, AI64, PC-98, UltraSPARC(r), а так же некоторые другие
  • Текущие разрабатываемые ветки FreeBSD 4.x (4.10) и 5.x (5.2.1, готовится к выходу 5.3)
  • Тип FreeBSD"шного elf"a - 9, программная совместимость с Linux(3), Solaris(6), SVR(0),
  • Хорошо разработанная система портов и пакетов (поставляется в дистрибутиве)
  • Разработка ведется при активном использовании системы CVS, можно легко закачать свежую версию системы и портов по CVS
История проекта FreeBSD достаточно хорошо приведена в "FreeBSD Handbook" (а так же в большом колличестве источников в интернете), поэтому я не буду тратить как свое, так и Ваше время на тему истории возникновения, создания и развития проекта

BSD-лицензия

The following is a BSD license template. To generate your own license, change the values of OWNER, ORGANIZATION and YEAR from their original values as given here, and substitute your own.

Note: The advertising clause in the license appearing on BSD Unix files was officially rescinded by the Director of the Office of Technology Licensing of the University of California on July 22 1999. He states that clause 3 is "hereby deleted in its entirety."
Note the new BSD license is thus equivalent to the MIT License, except for the no-endorsement final clause.

Regents of the University of California
= University of California, Berkeley
= 1998

In the original BSD license, both occurrences of the phrase "COPYRIGHT HOLDERS AND CONTRIBUTORS" in the disclaimer read "REGENTS AND CONTRIBUTORS".

Here is the license template:

Copyright (c) ,
All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
Neither the name of the nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


Перевод этой лицензии на русский язык.

Структурная организация разработки системы FreeBSD

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

User Community
Committers
CORE
  • User Community - Более 75% изменений, вносящихся в систему. В основном, предлагают патчи (исправления) к существующему коду
  • Committers - люди, имеющие право вносить изменения в дерево исходников
  • CORE - ([email protected]) - устанавливают административные права, выбираются из Committers

Ветки. -STABLE & -CURRENT

Так как понятие "FreeBSD" включает в себя ПОЛНУЮ систему, то вполне естественным было бы хранить в одном месте ядро, утилиты и библиотеки. Те, кто не знакомы с CVS, могут ознакомиться с ней (см. ссылки ниже) Откуда появились 2 ветки:
Stable - стабильная система, к ней выпускаются патчи и дополнения, но в нее уже не добавляются новые драйвера, не меняется архитектура и файлы системы в целом, например.
В ветку CURRENT, же могут вносится коррективы в изменения

Вполне логичен вопрос, а где CURRENT и STABLE, когда есть только "RELENG_?.*" и "HEAD" ?
Releng - Это стабильная система, на которую наложены только исправления безопасности и другие критические исправления.
HEAD - Это символическое имя для основной ветви разработки, FreeBSD-CURRENT. Используется по умолчанию, если тег не указан. В системе CVSup - этот тег представляется символом ``.""

Система портов и пакетов

Для удобства в систему FreeBSD была введена система портов. Она представляет собой дерево, состоящие из следующих категорий файлов:

Makefile те файлы, которые распознаются утилитой Make (это не GNU Make), для автоматической компиляции. Она содержит инструкции, необходимые для правильной компиляции программы, зависимости, конфликты, версию. С помощью этих файлов можно скачать пакет, его установить и зарегестрировать в системе, удалить пакет и еще много чего. Для более подробных сведений, просьба почитать Makefile или "FreeBSD Handbook"
pkg-descr краткое описание пакета. Обязательно содержит помимо описания, домашнюю страницу продукта, e-mail-адрес maintain"ера пакета (человека, ответственного за поддержание пакета, его обновление и пр.)
pkg-ptdst файлы, устанавливаемые пакетом
distinfo хэши(обычно, MD5) и размеры всех файлов для проверки целостности
каталог files содержит различные патчи к продукту
каталог work(при компиляции) рабочий каталог, в котором лежат исходные коды, компиллируемая программа и пр.

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

Основные отличия от Linux

Эта таблица из книги "The Complete FreeBSD" ип оказывает основные различия между Linux и FreeBSD.

FreeBSD - ОС, которая разрабатывается только одной командой разработчиков, существует только один дистрибутив FreeBSD. Линукс - это ядро, которое разрабатывается Линусом Торвальдсом. Всё, что не относится к ядру, является частью дистрибутива; дистрибутивов на данный момент существует огромное количество.
FreeBSD является устойчивой системой. Лишь некоторые дистрибутивы Linux подходят для ответственных задач.
Как результат централизованной разработки, установка FreeBSD является относительно ясной и лёгкой. Простота установки Linux зависит от дистрибутива. При переходе от одного дистрибутива к другому придётся заново изучать процедуру установки.
FreeBSD остаётся относительно неизвестной, так как её распространение было ограничено некоторое время из-за исков AT&T. Линукс никогда не испытывала неприятностей из-за судебных исков и долгое время оставалась единственной свободно распространяемой UNIX-like OS.
Как результат неизвестности FreeBSD, для неё доступно очень немного коммерческого ПО. Для Линукс становится доступно всё больше коммерческого ПО.
FreeBSD менее популярна, из-за этого для неё доступно меньше драйверов для последних плат и устройств. Для любого недавно появившегося устройства или платы сразу появляется драйвер под Linux.
Из-за недостатка коммерческого ПО и драйверов, под FreeBSD есть эмуляция Linux, в которой можно запускать любые программы для Linux (говорят, работает даже быстрее). Относительно легко портировать драйверы для Линукс под FreeBSD. Линукс, видимо, просто не нужна эмуляция FreeBSD, поэтому её и нет.
Поступления во FreeBSD рассматривает и допускает в систему основной состав разработчиков. Процесс обновления кода отслеживается и координируется намного тщательнее, чем в Linux. Для большинства пользователей это позитивное явление, поскольку они уверены в том, что код был протестирован специалистами на отсутствие проблем. Любой пользователь имеет возможность поместить свой код в Linux.
Есть обвинения в сторону FreeBSD, что их код обновляется не так часто.

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

В соответствии с данными, полученными от IOSC, в 1999 году практически треть всех машин, которые были подключены к интернету, работали на основе Linux, в то время как практически 15% применяли операционную систему FreeBSD. Что это за система, и по сегодняшний день знают лишь немногие современные пользователи ПК, несмотря на все ее преимущества и широкое распространение в свое время. Стоит отметить тот факт, что многие мировые лидеры в сфере Web-услуг активно работают на данной системе. В частности, стоит отметить, что на сегодняшний день система Yahoo основана на FreeBSD. Что это дает пользователям, сами они вряд ли знают и даже задумываются, но владельцы системы уверены, что это правильное решение.

Что представляет собой BSD?

BSD расшифровывается как Berkeley Software Distribution. Именно так в своем время называлось программное обеспечение, которое в Беркли распространял в исходных кодах. При этом стоит отметить тот факт, что изначально дополнение к стандартной операционной системе UNIX - это единственное, что представляло собой FreeBSD. Что это было по сравнению с нынешней версией системы?

На основе версии 4.4 BSD-Lite создавалось несколько операционных систем, имеющих открытые исходные коды. В частности, состав этих систем включал в себя разработки других проектов, среди которых отдельного внимания заслуживает проект GNU.

Структура

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

  • Ядро, которое предназначается для тщательной планировки всех процессов, управления памяти, работы с различными устройствами, а также поддержки многопроцессорных систем. При этом следует отметить тот факт, что, в отличие от ОС Linux, в данном случае есть несколько типов ядер BSD, которые отличаются разными особенностями.
  • Библиотека С, которая используется в качестве основного системного интерфейса программирования, причем основывается на коде из Беркли, а не из проекта GNI.
  • Всевозможные файловые утилиты, компиляторы, оболочки, редакторы связей, а также другие программы конечного пользователя, при этом некоторые из них основываются на коде GNU.
  • FreeBSD UNIX - операционная система, включающая в себя X Window, которая отвечает непосредственно за Данная система применяется в преимущественном большинстве версий BSD и официально поддерживается проектом X.Org. Данная система позволяет пользователю делать выбор из нескольких графических оболочек, а также целого ряда легких оконных менеджеров.
  • Большое количество других системных и прикладных программ.

Что такое настоящий UNIX?

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

BSD - это UNIX?

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

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

В течение 80-х годов сформировалось несколько компаний, занимающихся производством рабочих станций, при этом стоит отметить, что многие из них приобретали лицензии на использование UNIX вместо того, чтобы пробовать разрабатывать с нуля собственное программное обеспечение. В частности, стоит выделить компанию Sun, которая поступила таким образом и решила на основе версии 4.2BSD в конечном итоге выпустить собственную операционку, которая называлась SunOSTM. Когда же компания AT&T, занимающаяся разработкой UNIX, в конечном итоге решила заняться коммерческой продаже собственной операционной системы, появилась довольно аскетичная реализация - System III, за которой с течением времени последовал также выход системы System V.

По какой причине эта операционная система остается невостребованной?

Есть некоторый ряд причин, по которым сегодня FreeBSD 10 пользуется не таким широким спросом:

  • Разработчики чаще всего интересуются качеством собственного кода, причем больше его шлифовкой, а не рекламой.
  • По большому счету, популярность Linux является следствием целого ряда внешних факторов относительно данного проекта, в частности, это касается средств массовой информации, а также компаний, которые решили сформировать собственный бизнес, предоставляя услуги пользователям этой операционной системы.
  • Разработчики BSD в преимущественном своем большинстве являются более опытными по сравнению с разработчиками Linux, в связи с чем они гораздо меньше внимания уделяют тому, чтобы облегчить жизнь простым пользователям. Другими словами, настройка FreeBSD для обычного пользователя является более сложной, чем
  • В 1992 году разработчик UNIX решил подать в суд на компанию BSDI, которая занималась поставкой операционной системы BSD/386. Основной пункт обвинения в данном случае был тем, что в ОС содержался закрытый код, принадлежавший истцу, и вроде бы дело в конечном итоге было улажено за пределами суда в 1994-м, но целый комплекс вторичных тяжб даже в наши дни отравляет жизнь многим людям.
  • Есть мнение, что сами по себе проекты BSD различаются и при этом могут даже конфликтовать между собой. Данное мнение основывается на событиях, которые происходили достаточно давно.

Что лучше - Linux или BSD?

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

Кому принадлежит BSD?

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

Что все-таки выбрать?

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

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

Обеспечивает техническую поддержку, а также обслуживает FreeBSD - порты и системы - компания FreeBSD Mall, Inc.

FreeBSD - свободная операционная система семейства Unix, потомок AT&T Unix по линии BSD, созданной в университете Беркли. FreeBSD работает на PC-совместимых системах семейства Intel x86 (IA-32) (включая Microsoft Xbox), а также на DEC Alpha, Sun UltraSPARC, IA-64, AMD64, PowerPC, NEC PC-98, ARM. Готовится поддержка архитектуры MIPS.

FreeBSD разрабатывается как целостная операционная система. Исходный код ядра, драйверов устройств и базовых пользовательских программ (т. н. userland), таких как командные оболочки и т. п., содержится в одном дереве системы управления версиями (CVS до 31 мая 2008, сейчас SVN). Это отличает FreeBSD от GNU/Linux - другой свободной UNIX-подобной операционной системы - в которой ядро разрабатывается одной группой разработчиков, а набор пользовательских программ - другими (например, проект GNU), а многочисленные группы собирают это все в единое целое и выпускают в виде различных дистрибутивов GNU/Linux.

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

2016

FreeBSD 11.0 beta 2

Выпуск FreeBSD 11.0-BETA2 подготовлен для архитектуры amd64, i386, powerpc, powerpc64, sparc64 и armv6 (BANANAPI, BEAGLEBONE, CUBIEBOARD, CUBIEBOARD2, CUBOX-HUMMINGBOARD, GUMSTIX, RPI-B, RPI2, PANDABOARD, WANDBOARD) .

Дополнительно подготовлены образы для систем виртуализации (QCOW2, VHD, VMDK, raw) и облачных окружений Amazon EC2 . Релиз FreeBSD 11.0 запланирован на 2 сентября 2016 года.

Во втором бета-выпуске, в утилите freebsd-update появилась возможность установки наборов дистрибутива ("*-dbg"), внесены исправления в сборочный инструментарий, для архитектуры powerpc/powerpc64 и arm/armv6 отключены WITNESS и INVARIANTS, удалена конфигурация ядра GENERIC-NODEBUG, проведена работа над ошибками.

Microsoft выпустила свой дистрибутив FreeBSD

Выход FreeBSD 10.3

Подготовлены образы для систем виртуализации (QCOW2, VHD, VMDK, raw) и облачных окружений Amazon EC2 , Google Compute Engine и Hashicorp/Atlas Vagrant. Среди значимых изменений:

  • улучшение работы на системах UEFI,
  • возможность загрузки на корневых разделах с ZFS,
  • функция смены корневой ФС (reroot) во время загрузки,
  • поддержка выполнения 64-разрядных приложений в режиме эмуляции Linux ,
  • добавление средств кластеризации в CAM Target Layer (CTL).

Основные изменения

  • Серия изменений, связанных с загрузкой на системах с UEFI. В UEFI-загрузчик добавлена поддержка корневых разделов с ZFS и возможность использования нескольких загрузочных окружений ZFS, таких как предоставляются в sysutils/beadm. Улучшена совместимость с различными реализациями UEFI. В UEFI-загрузчик добавлена возможность установки переменных EFI из командной строки загрузчика, а также поддержка файлов конфигурации /boot/config и /boot.config. В применяемый в загрузчике UEFI драйвер фреймбуфера efifb добавлены новые команды gop (Graphics Output Protocol) и uga (Universal Graphics Adapter) для диагностики проблем или установки графического режима на системах с поддержкой протоколов GOP и UGA (iMac7,1, MacBook3,1). В loader.efi добавлена начальная поддержка эмуляции терминала. Решены проблемы с мультизагрузкой и с загрузкой, приводящие к выводу ошибки "ExitBootServices() returned 0x8000000000000002";
  • В инсталлятор bsdinstall добавлена возможность установки на корневой раздел ZFS на системах с UEFI;
  • Обновлена реализация ZFS. По умолчанию включена поддержка сжатия LZ4, на 50% сокращено потребление памяти при использовании L2ARC, улучшено агрегирование ввода/вывода, переработан код упреждающей загрузки данных;
  • Добавлена возможность смены корневой ФС на лету. Ранее для перемонтирования корневого раздела требовалась перезагрузка. Смена корневой ФС необходима для работы на ранней стадии загрузки временных образов ram-дисков, осуществляющих инициализацию сеанса iSCSI, с последующим подключением корневой ФС поверх iSCSI;
  • Расширены возможности инфраструктуры эмуляции окружения Linux , в которой появилась возможность выполнения 64-разрядных приложений на системах с архитектурой amd64 (x86_64), добавлена поддержки потоков 1:1, VDSO и части API мультиплексированного ввода-вывода epoll(7). В jail добавлена поддержка монтирования файловых систем linprocfs и linsysfs;
  • В подсистему CAM Target Layer (CTL), обеспечивающую эмуляцию дисковых и процессорных устройств, через которую реализован сервер iSCSI, добавлена поддержка средств для обеспечения высокой доступности. Поддерживается создание двухузловых кластеров с асинхронными режимами доступ к юнитам LUN (ALUA, Asynchronous LUN Unit Access): Active/Unavailable, Active/Standby, синхронным Active/Active и прокси Active/Active;
  • Системные изменения
    • Внесены корректировки в код инициализации генератора псевдослучайных чисел, исключающие недостаток энтропии при загрузке на некоторых типах систем;
    • В системный вызов kqueue добавлена возможность обработки событий записи для файлов, размер которых превышает 2 Гб;
    • Переработана реализация кэша vnode, проведена оптимизация кода для распределения и чистки vnode;
    • В библиотеку разрешения имён добавлена поддержка перезагрузки файла /etc/resolv.conf, если изменилось время его модификации;
    • В скрипт rc.d/netwait добавлено ожидания сетевых интерфейсов, добавленных на последней стадии загрузки, например, сетевых адаптеров с интерфейсом USB ;
    • В режиме межсетевого экрана firewall_type="SIMPLE" для блокирования адресов задействованы таблицы ipfw;
    • Добавлена sysctl-переменная kern.features.invariants, показывающая собрано или нет ядро с поддержкой инвариантов (INVARIANTS);
  • Инструментарий
    • В утилиту mkimg добавлена поддержка файловой системы NTFS;
    • Утилита sesutil для управления устройствами SES (SCSI Environmental Services);
    • Утилита timeout, позволяющая запустить команду с ограничением времени её выполнения;
    • В утилиту cp добавлен флаг "-s", позволяющий создавать символические ссылки;
    • При запуске утилиты jail если явно не указана выполняемая команда по умолчанию теперь запускается shell. Добавлена опция "-l" , которая гарантирует очистку переменных окружения по аналогии с директивой exec.clean, т.е. в jail передаются только переменные HOME, SHELL, TERM и USER, которые устанавливаются в фактические значения;
    • В утилите ifconfig при использовании флага "-v" обеспечен вывод информации об оптических модулях SFP/SFP+, при использовании поддерживающих вывод данной информации драйверов (cxgbe, ixgbe, mlx5en и sfxge);
    • В утилиту last возвращена случайно удалённая во FreeBSD 9.0 поддержка виртуального пользователя reboot, при указании которого показываются все записи, связанные перезагрузкой;
    • Обновлены версии сторонних программ, в том числе file 5.25, xz 5.2.2, ntpd 4.2.8p5, unbound 1.5.7, less v481, OpenSSL 1.0.1s, OpenSSH 7.2p2;
    • В портах обновлено десктоп-окружение GNOME 3.16.2 (был 3.14.2). X.org Server обновлён до выпуска 1.17.4 (был 1.14.7);
  • Поддержка оборудования
    • Добавлен драйвер ismt с поддержкой контроллеров Intel SMBus 2.0;
    • Добавлен драйвер mlx5 с поддержкой Ethernet и Infiniband сетевых карт Mellanox ConnectX-4, поддерживающих передачу данных на скоростях до 100GBit/s. Связанный с драйвером модуль ядра mlx5en включён по умолчанию в конфигурации GENERIC;
    • В драйвер ctl добавлена поддержка CD-ROM и извлекаемых устройств;
    • В драйвер xen добавлена поддержка непрямого сегментированного ввода/вывода blkif;
    • Драйвер ixgbe(4) обновлён до версии 3.1.13-k, в которой появилась поддержка адаптеров X552 и X550T, добавлена поддержка настроек загрузчика hw.ix.flow_control и hw.ix.advertise_speed, исправлена большая порция проблем;
    • Обновлён драйвер isp(4), в котором появилась поддержка 16-гигабитных адаптеров Fibre Channel и завершена реализация функциональности Multi-ID (NPIV);
    • До версий 7.6.1 и 2.5.3 обновлены драйверы em(4) и igb(4), в которые добавлена поддержка чипов i219, i219(2) и i219(3), используемых в чипсетах для процессоров на базе Skylake и более новых микроархитектур;
    • Удалены устаревшие драйверы ata, такие как ataahci, ataadaptec и mv_sata, вместо которых следует использовать ahci, siis и mvs;
    • Из ядра GENERIC удалён драйвер pms из-за конфликта с драйверами ahd и mvs.

Вышел бета-релиз FreeBSD 10.3

В феврале 2016 года был представлен первый бета-выпуск FreeBSD 10.3. Выпуск FreeBSD 10.3-BETA1 доступен для архитектур amd64, i386, powerpc, powerpc64, sparc64 и armv6 (BEAGLEBONE, CUBOX-HUMMINGBOARD, GUMSTIX, PANDABOARD, RPI-B, WANDBOARD). Дополнительно подготовлены образы для систем виртуализации (QCOW2, VHD, VMDK, raw) и облачных окружений Amazon EC2 и Microsoft Azure . Релиз FreeBSD 10.3 запланирован на 22 марта. 27 июля ожидается релиз FreeBSD 11.

Список изменений FreeBSD 10.3 находится на начальной стадии формирования. Добавленные возможности и функции:

  • Поддержка NTFS в утилите mkimg,
  • Новая утилита sesutil для управления устройствами SES (SCSI Environmental Services),
  • В системном вызове kqueue появилась обработка событий записи для файлов больше 2 Гб,
  • Переписана реализация CTL High Availability,
  • В драйвер ctl добавлена поддержка CD-ROM и извлекаемых устройств,
  • В драйвер xen добавлена поддержка непрямого сегментированного ввода/вывода blkif,
  • Обновлена реализация ZFS.

2015: FreeBSD 10.2

Система доступна для архитектуры AMD64, I386, IA64, PowerPC, PowerPC64, Sparc64 и ARMv6. Дополнительно подготовлены образы для систем виртуализации (QCOW2, VMDK, raw) и облачных окружений Amazon EC2 , Google Compute Engine и Microsoft Azure .

Основные изменения

  • Добавлена новая утилита uefisign для формирования цифровых подписей для файлов EFI, используемых для загрузки в конфигурациях с UEFI Secure Boot. В состав загрузчика EFI включен bzipfs;
  • Представлен новый rc-скрипт growfs, предназначенный для осуществления операции по изменению размера корневой ФС во время первой загрузки (если создан файл /firstboot), давая возможность автоматически занять корневой ФС всё нераспределённое место на диске. Управление работой скрипта производится через опцию growfs_enable в rc.conf. Скрипт также можно выполнить вручную ("/etc/rc.d/growfs onestart"), а не на этапе перезагрузки;
  • Поддерживаемая во FreeBSD инфраструктура эмуляции окружения Linux обновленa до CentOS 6.6 (порт emulators/linux-c6). Связанные с эмулятором порты адаптированы для использования CentOS 6.6, который теперь предлагается по умолчанию вместо пакетов на основе Fedora 10 . Слой совместимости с ядром Linux теперь ссылается на выпуск 2.6.18;
  • Код drm-драйверов для графических карт синхронизирован с ядром Linux 3.8.13, что позволило реализовать ioctl-вызовы setmaster/dropmaster для решения проблемы с запуском одновременно нескольких X-серверов;
  • Расширены возможности порта FreeBSD/arm. Добавлена поддержка систем Exynos 5420 Octa и плат Toradex Apalis i.MX6. Добавлен драйвер bcm2835_cpufreq, позволяющий управлять частотой CPU и напряжением на Raspberry Pi. Для всех систем Exynos 5 активирована поддержка SMP. Добавлены драйверы передачи звука с поддержкой AUDMUXM (Digital Audio Multiplexer), SDMA (Smart Direct Memory Access Controller) и SSI (Syncronous Serial Interface). Реализованы корректные средства завершения работы на платах BeagleBone Black;
  • В ядро FreeBSD/i386 добавлена настройка PAE_TABLES, при которой в pmap включается использование формата PAE при работе с табицами страниц памяти в условиях 32-разряднной физической адресации. В данном режиме возможен маппинг памяти в режиме "no execute", что позволяет повысить защищённость системы от некоторых видов атак. Кроме того, в отличие от режима PAE, режим PAE_TABLES сохраняет совместимость на уровне бинарных интерфейсов (KBI) с не-PAE ядрами, позволяя использовать собранные для них модули и драйверы. При включении режиме PAE_TABLES лимиты ядра настраиваются с расчётом на размер ОЗУ 4 Гб;
  • Добавлен драйвер vxlan для создания виртуальных расширяемых локальных сетей (Virtual Extensible LAN), используемых для туннелирования виртуализированных сетей второго уровня поверх сетей третьего уровня. VXLAN позволяет обойти ограничение на 4096 VLAN-ов за счёт использования 24-разрядных идентификаторов;
  • Обновлён гипервизор bhyve: добавлена поддержка процессоров AMD c аппаратными расширениями SVM и AMD-V, добавлена поддержка команды DSM TRIM для виртуальных дисков AHCI;
  • В подсистеме autofs реализован новый тип сопоставлений "-media", позволяющий организовать автоматическое монтирование встраиваемых накопителей, таких как CD и USB Flash. Также добавлен тип "-noauto" аналогичный использованию флага noauto в fstab;
  • В сетевой драйвер em добавлена поддержка многоуровневых очередей (multiqueue). Включение производится через опцию ядра EM_MULTIQUEUE;
  • В ядре GENERIC по умолчанию включена поддержка RACCT и RCTL, подсистем для аккаунтинга и лимитирования ресурсов;
  • Для ZFS добавлена настройка vfs.zfs.spa_slop_shift, позволяющая изменить зарезервированное по умолчанию дисковое пространство;
  • Обновлена подсистема ctl (CAM Target Layer), в которой со 128 до 256 увеличен лимит на число портов, и с 256 до 1024 на число LUN;
  • В загрузчик добавлена поддержка ввода пароля для GELI-шифрования на этапе до загрузки ядра;
  • Существенно переработан драйвер gre, который теперь разделён на два отдельных модуля gre и me;
  • Добавлен драйвер virtio_console, предоставляющий интерфейс для проброса консольных устройств VirtIO через устройство tty;
  • Решены проблемы при использовании jail совместно с gif- и gre-туннелями;
  • В GENERIC ядре по умолчанию включены драйверы nvd и nvme с поддержкой дисковых контроллеров NVM Express;
  • В драйвер psm добавлена поддержка тачпадов Synaptics и мышей ClickPad, используемых в новых моделях ноутбуков Lenovo ;
  • В драйвер ral добавлена поддержка чипов RT5390 и RT5392;
  • В утилите mount_nfs появилась поддержка опций timeo, actimeo, noac и proto;
  • В TCP-стеке по умолчанию отключено определение PLPMTUD (Packetization Layer Path MTU Discovery, RFC 4821). Для включения следует использовать sysctl net.inet.tcp.pmtud_blackhole_detection, net.inet.tcp.pmtud_blackhole_mss и net.inet.tcp.v6pmtud_blackhole_mss;
  • В базовую систему включена новая утилита dpv, наглядно отображающая прогресс передачи данных для одного или нескольких потоков;
  • Добавлена утилита fstyp для определения типа файловой системы на указанном разделе;
  • Добавлена библиотека figpar, предоставляющая API для разбора файлов конфигурации;
  • В утилиту gpart добавлена поддержка схем разделов в MBR apple-boot, apple-hfs и apple-ufs;
  • В утилиту mkimg добавлена поддержка разделов MBR EFI и реализован флаг "-c" для задания минимального виртуального размера итогового образа;
  • В утилиту netstat добавлена флаг "-R", при указании которого выводится информация об RSS/flow;
  • В утилите date для улучшения совместимости с GNU date реализовано отображение времени модификации файла, указанного через флаг "-r";
  • В bsdinstall добавлена возможность выбора схемы дисковых разделов при установке на UFS. Реализована поддержка выравнивания разделов по границе в 1 Мб при определении такой необходимости. Добавлен обходной путь для загрузки на различных ноутбуках и материнских платах, на которых ранее наблюдались проблемы с загрузкой с дисков с GPT-разделами;
  • Во freebsd-update добавлена защита от загрузки новых бинарных патчей, если прошлое обновление ещё не завершено;
  • Утилита resolvconf обновлена до версии openresolv 3.7.0, примечательной добавлением возможности установки флага приватности для интерфейсов в resolv.conf, что позволяет использовать данные интерфейсы только для осуществления резолвинга доменов по явно заданной в resolv.conf маске (domain/search);
  • Обновлены версии сторонних программ, в том числе ntp 4.2.8p3, acpi 20150515, file 5.23, unbound 1.5.3, sendmail 8.15.2, OpenSSL 1.0.1p.
  • Обновлены предлагаемые из портов десктоп-окружения: GNOME 3.14.2 и KDE 4.14.3. Обновлён графический стек (x11-servers/xorg-server 1.14.7_5, x11/xorg 7.7_2).

2014: FreeBSD 10.0

20 января 2014 года стало известно о выходе последнего релиза FreeBSD 10.0. Релиз 10.0 доступен для нескольких архитектур, включая x86, Power PC и Sparc.

Описание

Новую реализацию системы перевели на умолчательное использование компилятора Clang. В систему интегрирован гипервизор BHyVe, DNS-сервер BIND заменён на Unbound, вновь реализован протокол CARP, интегрирована подсистема FUSE, действует пакетный менеджер pkg по умолчанию.

Интегрирована поддержка unmapped VMIO, которая позволила поднять производительность ввода/вывода, благодаря исключению стадии маппинга буферов в TLB-кэше, что снизило накладные расходы при работе на многопроцессорных системах.

Обновлён установщик системы bsdinstall и в него добавлена поддержка полноценной установки системы на разделы ZFS. При этом все настройки производятся из меню, в том числе создание разделов, выбор уровня ZFS RAID, настройка шифрования с использованием GELI, выбор имени пула и т.п. Прежний инсталлятор sysinstall удалён из базовой системы, вместо него следует использовать bsdinstall и bsdconfig. Утилита bsdconfig реализует интерфейс для настройки различных параметров системы, обеспечивая функциональность похожую на меню "Configure" из sysinstall.

Реализована интеграция подсистемы FUSE - для работы файловых систем, реализованных на уровне пользователя. Поддерживается использование большинства FUSE-модулей, в том числе sshfs, ntfs-3g и ext4fuse.

Включена поддержка увеличения размера разделов UFS при помощи утилиты growfs на лету, без размонтирования раздела.

Включение наработок по оптимизации производительности файловых систем UFS/FFS. Ускорено выполнение fsck для новых разделов UFS;

Обновление компонентов подсистемы ZFS до последней версии ZFS pools с поддержкой сжатия LZ4 и L2ARC, уничтожением наборов данных в асинхронном режиме, оптимизациями ZIO NOP-write, поддержкой операции TRIM для SSD -накопителей.

В сетевой подсистеме проведена интеграция наработок проекта CARP2. В его рамках действует новая реализация протокола CARP (Common Address Redundancy Protocol) для FreeBSD. Протокол CARP, выступая в роли открытой альтернативы протоколам HSRP (Hot Standby Router Protocol) и VRRP (Virtual Router Redundancy Protocol), даёт возможность организации совместного использования IP-адреса между несколькими серверами в локальной сети, что может применяться для балансировки нагрузки или для создания отказоустойчивых систем.

Заменён DNS-сервер BIND на связку из кэширующего DNS-сервера Unbound и библиотеки LDNS. Unbound распространяется под лицензией BSD, имеет модульную структуру, поддерживает работу еханизма разрешения имён в рекурсивном и кэширующем режиме. Также обеспечивает проверку валидности DNSSEC-сигнатур. Вместо утилиты dig теперь используется drill. В качестве причины ухода от BIND разработчики упоминают о проблеме с протяжённостью цикла поддержки выпуска обновлений для BIND, которые не укладываются в цикл поддержки релизов FreeBSD.

Проведена интеграция гипервизора BHyVe, созданного компанией NetApp . Потребуется система с процессором Intel , поддерживающим аппаратные средства виртуализации VT-x и EPT (Extended Page Tables). Поддержка BHyVe пока ограничивается архитектурой amd64.

Добавлены драйверы устройств, видеокарт, средства для манипуляции страницами памяти большого размера.

Глеб Смирнов - Что нового в FreeBSD 10.0

2012

Hyper-V поддерживает FreeBSD

14 мая 2012 года на конференции BSDCan 2012 компания Microsoft вместе со своими партнерами компаниями NetApp и Citrix объявила о том, что операционная система FreeBSD будет поддерживаться гипервизором Hyper-V . Соответствующие драйверы, которые позволят операционной системе эффективно работать в виртуальной среде Windows Server 2008 R2 Hyper-V, включая исходные коды под лицензией BSD, станут доступны в начале лета 2012 г. для FreeBSD версий 8.2 и 8.3.

Разработка драйвера VMBUS, который связывает гостевую операционную систему с гипервизором Windows Server Hyper-V, проводилась Microsoft совместно с Insight Global. В дальнейшем планируется, что этот драйвер станет частью FreeBSD.

FreeBSD 9

Среди улучшений следует отметить сразу две графические среды, которые предлагаются пользователям на выбор. В последнее время Linux часто критикуют за недостатки графической среды, которые присущи как GNOME 3, так и Ubuntu Unity.

Разработчики FreeBSD 9.0 решили обойти это препятствие, предложив пользователям самим выбрать между дружественной и привычной средой GNOME 2.32 и приятным с эстетической точки зрения интерфейсом KDE 4.7.

Среди других существенных расширений FreeBSD 9.0 следует отметить новый инсталлятор, совместимость с процессорами PowerPC, которые используются в игровых приставках Sony PlayStation 3, множество обновленных драйверов, а также поддержку USB 3.0 и High Performance SSH.

Версия FreeBSD 9.0, выпуск которой ее разработчики посвятили памяти пионера компьютерной отрасли, создателя Unix и языка программирования Си Денниса Ритчи, работает в настоящее время на архитектурах AMD64, i386, ia64, PowerPC, PowerPC64 и SPARC64. Все необходимые ссылки и инструкции по установке находятся на официальном сайте FreeBSD.

2010: FreeBSD 8.1

Сообщество разработчиков FreeBSD объявило в августе 2010 года о выпуске версии 8.1 одноименной операционной системы на основе ядра Linux . Среди ключевых изменений нового продукта разработчики называют улучшенную поддержку оборудования и проведенную модернизацию программных составляющих системы. В FreeBSD 8.1 расширена и обновлена база драйверов, оптимизирован код платформы, исправлены обнаруженные ранее недочеты. Большое внимание при разработке новой версии FreeBSD было уделено средствам беспроводной связи Wi-Fi , сетевым компонентам, инструментам виртуализации и оптимизации платформы под современные многоядерные процессоры.

В числе прочих новшеств FreeBSD 8.1 фигурируют рабочие среды GNOME 2.30.1 и KDE 4.4.5, обновленный инструментарий OpenSSH для организации защищенных сетевых соединений, почтовый сервер Sendmail 8.14.4, поддержка архитектур UltraSPARC IV/IV+, SPARC64 V и прочие нововведения. Немало внимания уделялось вопросам безопасности и надежности продукта.

Новая версия платформы рекомендована разработчиками для промышленного внедрения; пользователи предыдущих редакций FreeBSD могут обновить ОС посредством утилиты freebsd-update и поясняющих инструкций, опубликованных на странице официального сайта продукта.

2009: FreeBSD 8.0

После выпуска релизов создаются дополнительные ветви разработки для их поддержки, но в них вносятся лишь самые необходимые изменения, исправляющие серьёзные ошибки или проблемы с безопасностью системы. До четвёртой версии FreeBSD у стабильной и текущей веток был один и тот же старший номер версии. Затем текущей ветви был присвоен номер 5, а у стабильной остался номер 4. В настоящее время стабильная версия имеет номер 8, а текущая - 9. Существует также ветвь 7-STABLE для поддержки тех пользователей, которые ещё не обновили FreeBSD до версии 8.

FreeBSD 5 включает несколько новых функций, в том числе относящихся к безопасности. С целью повысить безопасность FreeBSD был сформирован проект TrustedBSD, в рамках которого были разработаны, в том числе: расширяемая система принудительного контроля доступа MAC, списки доступа ACL для файловых систем и новая файловая система UFS2. Некоторые функции TrustedBSD были интегрированы также в операционные системы NetBSD и OpenBSD. FreeBSD 5 также поддерживает шифрование файловых систем посредством системы GBDE (Geom Based Disk Encryption), которую написал Пол-Хеннинг Камп, один из ведущих разработчиков. Другие важные возможности FreeBSD 5 относятся к внутриядерным блокировкам для улучшения производительности на многопроцессорных SMP-системах и многопоточности, реализованной системой KSE, которая являлась поточной библиотекой по умолчанию начиная с версии 5.3. Позже libkse в этом качестве была заменена на libpthread, однако до сих пор поддерживается в -STABLE.

8.0-RELEASE внёс несколько существенных новшеств: виртуализация сетевого стека (vimage), позволяющая использования нескольких сетевых стеков, поддержка работы в гостевом домене Xen (domU), переработанный USB стэк, ZFS версии 13, RPCSEC_GSS аутентификация для NFS, поддержка NAT-traversal (RFC 3948) в IPSEC, включенная по умолчанию система защиты от переполнения стека ProPolice SSP, улучшенный код для изолированных окружений (Jail2), поддержка равновесной маршрутизации (RFC 2992),

1993: Старт разработки FreeBSD

Разработка FreeBSD началась в 1993 году с большой скоростью, в качестве отправной точки были взяты исходные тексты 386BSD. Однако, из соображений законности использования исходных кодов 386BSD, команда разработчиков FreeBSD переработала большую часть системы ко времени выпуска FreeBSD 2.0 в январе 1995 года используя 4.4BSD-Lite.

Модель разработки FreeBSD

Существует около 4000 разработчиков, которые работают на добровольной основе. Все они могут читать дерево репозитория. Но не могут вносить изменения. Вместо этого разработчик обращается к коммитеру, который имеет право вносить изменение в код. Существует около 400 коммитеров. Разработчик может вырасти по социальной лестнице проекта и стать коммитером, а затем членом основной команды. Нового коммитера избирают другие коммитеры. Основная команда является ядром проекта и состоит из 9 человек, которые выбираются на 2 года. Основная команда решает конфликты между коммитерами.

Участники проекта разрабатывают две ветки «CURRENT» и «STABLE».

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