--- title: "О технологических преимуществах FreeBSD" sidenav: about --- = О технологических преимуществах FreeBSD == FreeBSD предоставляет множество уникальных возможностей. Вне зависимости от типа вашего приложения вы хотите, чтобы ресурсы системы использовались максимально эффективно. Средоточие FreeBSD на производительности, сетевом взаимодействии и хранении данных вкупе с простым системным администрированием и прекрасной документацией позволяет достичь этого. === Полноценная операционная система, основанная на 4.4BSD. link:https://freebsdfoundation.org/freebsd/timeline/[История FreeBSD] берет начало из дистрибутивов *BSD*, выпущенных Группой Исследования Вычислительных Систем (Computer Systems Research Group) Калифорнийского Университета (Беркли). Десятки лет работы было вложено в улучшение масштабируемости, сетевой производительности, а также в новые инструменты управления, файловые системы, безопасность и другие функуии. В итоге FreeBSD можно обнаружить по всему Интернету, в операционных системах опорных маршрутизаторов, на корневых серверах имен, в работе хостинга крупных веб-сайтов и как основу для широко используемых десктопных операционных систем. [[features]] == Возможности [[openzfs]] === OpenZFS ZFS — это не просто файловая система, она принципиально отличается от традиционных файловых систем. Объединение традиционно раздельных ролей программного RAID, менеджера томов и файловой системы предоставляет ZFS уникальные преимущества. Три основные цели ZFS: * Целостность данных * Объединенное хранилище * Производительность. [[zfs-boot-environments]] === Загрузочные окружения ZFS Загрузочное окружение ZFS — это загружаемый клон/снимок специально выбранных частей системы. Области применения включают: * Надежные обновления/изменения системы * Создание безопасного резервного загрузочного окружения ZFS перед обновлением или изменениями системы * Обновление нового (неактивного) окружения без изменения активного * Выполнение обновления и тестирование результатов внутри клетки (jail) * Копирование/перемещение загрузочного окружения ZFS на другую машину * Значительная переконфигурация (Bareos/Postfix/...) * Массовое развертывание большого количества серверов с одним настроенным загрузочным окружением * Резервное копирование на уровне оборудования. [[jails]] === Клетки (jail) Клетки появились в FreeBSD 4.X. Они построены на основе man:chroot[8], который изменяет корневой каталог. Это создает безопасную среду, отделенную от остальной системы. Процессы, созданные в окружении клетки, не могут получить доступ к файлам или ресурсам за его пределами. Клетки улучшают chroot несколькими способами. В традиционной chroot-среде процессы ограничены частью файловой системы. Остальные системные ресурсы, системные пользователи, запущенные процессы и сетевая подсистема являются общими для chroot-процессов и процессов хост-системы. Клетки дополнительно ограничивают доступ к файловой системе, набору пользователей и сетевой подсистеме. Доступны более детализированные средства контроля доступа. [[ports-collection]] === Коллекция портов Более 35 000 приложений и библиотек link:https://ports.freebsd.org[портировано] в FreeBSD. Эта архитектура позволяет легко настраивать параметры компиляции для многих портов. [[virtualization]] === Виртуализация link:https://bhyve.org/[bhyve]: гипервизор с лицензией BSD, не требующий поддержки устаревших технологий, который запускает все поддерживаемые версии FreeBSD, а также другие операционные системы с поддержкой UEFI, включая, но не ограничиваясь link:https://www.openbsd.org/[OpenBSD], link:https://www.microsoft.com/en-us/windows/[Windows(R)] и link:https://kernel.org/[Linux(R)], с использованием bhyve-firmware. [[linuxulator]] === Совместимость с исполняемыми файлами Linux (Linuxulator) Совместимость с исполняемыми файлами Linux, часто называемая link:https://wiki.freebsd.org/Linuxulator[Linuxulator], позволяет FreeBSD запускать многие неизмененные исполняемыми файлами Linux. Это не связано с виртуальными машинами или эмуляцией; вместо этого она предоставляет исполняемым файлам интерфейсы ядра, идентичные тем, которые предоставляет настоящее ядро Linux. Linuxulator сравним с запуском 32-битных FreeBSD-бинарников на 64-битном ядре FreeBSD. [[dtrace]] === DTrace DTrace, также известный как Dynamic Tracing, был разработан Sun Microsystems(TM) для поиска узких мест производительности в рабочих и предпроизводственных системах. Кроме того, DTrace может помочь в исследовании и отладке неожиданного поведения в ядре и в пользовательском пространстве. DTrace обладает впечатляющим набором функций. Он поддерживает сценарии. Разработчики могут использовать язык DTrace D для создания утилит для пользовательского профилирования. Реализация FreeBSD предоставляет полную поддержку DTrace для ядра и экспериментальную поддержку для пользовательского пространства. DTrace для пользовательского пространства позволяет пользователям выполнять трассировку границ функций для пользовательских программ с использованием поставщика трассировки по идентификатору процесса (pid) и вставлять статические пробы в пользовательские программы для последующей трассировки. [[capsicum]] === Capsicum Capsicum позволяет запускать в песочнице несколько программ, которые работают в «режиме возможностей» (capabilities mode), таких как: * tcpdump * dhclient * hast * rwhod * kdump. [[vnet]] === Сетевая виртуализация (VNET) VNET виртуализирует сетевой стек. Основная идея заключается в преобразовании глобальных ресурсов (в первую очередь переменных) в ресурсы для каждого сетевого стека и обеспечении доступа к ним и управления ими функциями, sysctl, обработчиками событий и т.д. в контексте правильного экземпляра. Каждый (виртуальный) сетевой стек прикреплен к prison (тюрьме), при этом vnet0 является неограниченным сетевым стеком по умолчанию базовой системы. Возможности `VIMAGE` могут использоваться независимо для создания полностью виртуализированных сетевых топологий, а man:jail[8] может напрямую использовать преимущества полностью виртуализированного сетевого стека. // // The FreeBSD Russian Documentation Project // // Original EN revision (30.12.2024): a63b1f71e2d14a43f8c8885db65dd52e078d68cd //