FreeBSD — это бесплатная Unix-подобная операционная система с открытым исходным кодом , произошедшая от Berkeley Software Distribution (BSD). Первая версия FreeBSD была выпущена в 1993 году на основе 386BSD [3] , а текущая версия работает на процессорах x86 , ARM , PowerPC и RISC-V . Проект поддерживается и продвигается FreeBSD Foundation .
FreeBSD поддерживает полную систему, поставляя ядро , драйверы устройств , пользовательские утилиты и документацию , в отличие от Linux , поставляющего только ядро и драйверы и полагающегося на сторонние компании, такие как GNU , для системного программного обеспечения. [4] Исходный код FreeBSD обычно распространяется под разрешительной лицензией BSD , в отличие от GPL с авторским левом , используемой в Linux.
В проект FreeBSD входит группа безопасности , контролирующая все программное обеспечение, поставляемое в базовом дистрибутиве. Широкий спектр дополнительных сторонних приложений может быть установлен из бинарных пакетов с использованием системы управления пакетами pkg или из исходного кода через порты FreeBSD [5] или путем ручной компиляции исходного кода.
По состоянию на 2005 год FreeBSD была самой популярной операционной системой BSD с открытым исходным кодом , на которую приходилось более трех четвертей всех установленных и лицензированных систем BSD. [6] Большая часть кодовой базы FreeBSD стала неотъемлемой частью других операционных систем, таких как Darwin (основа для macOS , iOS , iPadOS , watchOS и tvOS ), TrueNAS (операционная система NAS / SAN с открытым исходным кодом ) и системное программное обеспечение для игровых консолей PlayStation 3 [7] [8] и PlayStation 4 [9] . Другие системы BSD ( OpenBSD , NetBSD и DragonFly BSD ) также содержат большое количество кода FreeBSD , и наоборот .
В 1974 году профессор Боб Фабри из Калифорнийского университета в Беркли приобрел у AT&T лицензию на исходный код Unix . При поддержке DARPA группа исследования компьютерных систем приступила к модификации и улучшению AT&T Research Unix. Они назвали эту модифицированную версию «Berkeley Unix» или « Berkeley Software Distribution » (BSD), реализовав такие функции, как TCP/IP , виртуальную память и Berkeley Fast File System . Проект BSD был основан в 1976 году Биллом Джоем . Но поскольку BSD содержал код AT&T Unix, все получатели должны были сначала получить лицензию от AT&T, чтобы использовать BSD. [10]
В июне 1989 года была выпущена «Networking Release 1» или просто Net-1 — первая общедоступная версия BSD. После выпуска Net-1 Кейт Бостик , разработчик BSD, предложил заменить весь код AT&T свободно распространяемым кодом под исходной лицензией BSD . Началась работа по замене кода AT&T, и через 18 месяцев большая часть кода AT&T была заменена. Однако в ядре осталось шесть файлов, содержащих код AT&T. Разработчики BSD решили выпустить «Networking Release 2» (Net-2) без этих шести файлов. Net-2 был выпущен в 1991 году. [10]
В 1992 году, через несколько месяцев после выпуска Net-2, Уильям и Линн Джолитц написали замены шести файлам AT&T, перенесли BSD на микропроцессоры на базе Intel 80386 и назвали свою новую операционную систему 386BSD . Они выпустили 386BSD через анонимный FTP-сервер. [10] Разработка 386BSD шла медленно, и после периода забвения группа пользователей 386BSD, включая Нейта Уильямса, Рода Граймса и Джордана Хаббарда [11], решила расшириться самостоятельно, чтобы сохранить операционную систему. до настоящего времени. 19 июня 1993 года для проекта было выбрано название FreeBSD. [12] Первая версия FreeBSD была выпущена в ноябре 1993 года. [13] [10]
В первые дни создания проекта компания Walnut Creek CDROM по предложению двух разработчиков FreeBSD согласилась выпустить операционную систему на CD-ROM . В дополнение к этому компания наняла Джордана Хаббарда и Дэвида Гринмана, запускала FreeBSD на своих серверах, спонсировала конференции FreeBSD и публиковала книги, связанные с FreeBSD, в том числе « Полную версию FreeBSD» Грега Лихи. К 1997 году FreeBSD стала «самым успешным продуктом Уолнат-Крик». Позже компания переименовала себя в The FreeBSD Mall , а позже в iXsystems . [14] [15] [16]
Сегодня FreeBSD используется многими ИТ-компаниями, такими как IBM , Nokia , Juniper Networks и NetApp , для создания своих продуктов. [17] [18] Некоторые части операционной системы Apple Mac OS X основаны на FreeBSD . [19] Операционная система PlayStation 3 и Nintendo Switch также заимствует некоторые компоненты из FreeBSD, [7] [8] , тогда как операционная система PlayStation 4 является производной от FreeBSD 9. [20] Netflix , [21] WhatsApp , [22] и FlightAware [23] также являются примерами крупных, успешных и сильно ориентированных на сеть компаний, использующих FreeBSD.
386BSD и FreeBSD были созданы на основе выпусков BSD. [17] В январе 1992 года компания Berkeley Software Design Inc. (BSDi) начала выпуск BSD/386 , позже названной BSD/OS, операционной системы, аналогичной FreeBSD и основанной на 4.3BSD Net/2. AT&T подала иск против BSDi и утверждала, что распространяла исходный код AT&T в нарушение лицензионных соглашений. Иск был урегулирован во внесудебном порядке, точные условия не разглашаются. Единственным, что стало достоянием общественности, было то, что BSDi переведет свою базу исходных кодов на более новые исходные коды 4.4BSD-Lite2. Несмотря на то, что FreeBSD не участвовала в судебном процессе, ей было предложено также перейти на 4.4BSD-Lite2. [24] FreeBSD 2.0, выпущенная в ноябре 1994 года, была первой версией FreeBSD без какого-либо кода от AT&T. [25]
FreeBSD содержит значительную коллекцию серверного программного обеспечения в базовой системе и коллекцию портов, что позволяет настраивать и использовать FreeBSD в качестве почтового сервера , веб-сервера , межсетевого экрана , FTP-сервера , DNS-сервера и маршрутизатора , а также других приложений.
FreeBSD можно установить на обычный настольный компьютер или ноутбук. Система X Window не установлена по умолчанию, но доступна в коллекции портов FreeBSD . Wayland также доступен для FreeBSD [26] (неофициально поддерживается). Для FreeBSD также доступен ряд сред рабочего стола , таких как Lumina , GNOME , KDE и Xfce , а также облегченные оконные менеджеры, такие как Openbox , Fluxbox , dwm и bspwm. Начиная с FreeBSD 12, поддержка современного графического стека доступна через drm-kmod. Поддерживается большое количество беспроводных адаптеров.
FreeBSD выпускает установочные образы для поддерживаемых платформ. Начиная с FreeBSD 13, основное внимание уделялось платформам x86-64 и aarch64 , имеющим поддержку уровня 1. [27] x86-32 — это платформа уровня 1 во FreeBSD 12, но это платформа уровня 2 во FreeBSD 13. 32-разрядные процессоры ARM, использующие Armv6 или Armv7, также имеют поддержку уровня 2. Также поддерживаются 64-битные версии PowerPC и RISC-V . [28] Интерес к архитектуре RISC-V растет. [29] Порт архитектуры MIPS помечен как устаревший, и для какой-либо поддерживаемой в настоящее время версии нет образа. [30] FreeBSD 12 поддерживает SPARC , но образа для FreeBSD 13 нет.
Стек TCP/IP FreeBSD основан на реализации TCP/IP в 4.2BSD , которая в значительной степени способствовала широкому распространению этих протоколов. [31] FreeBSD также поддерживает IPv6 , [32] SCTP , IPSec и беспроводные сети ( Wi-Fi ). [33] Стеки IPv6 и IPSec были взяты из проекта KAME . [34] До версии 11.0 FreeBSD поддерживала протоколы IPX и AppleTalk , но они считаются устаревшими и теперь исключены. [35]
Начиная с FreeBSD 5.4, поддержка протокола Common Address Redundancy Protocol (CARP) была импортирована из проекта OpenBSD . CARP позволяет нескольким узлам совместно использовать набор IP-адресов, поэтому, если один из узлов выйдет из строя, другие узлы все равно смогут обслуживать запросы. [36]
FreeBSD имеет несколько уникальных функций, связанных с хранилищем. Программные обновления могут защитить целостность файловой системы UFS (широко используемой на BSD) в случае сбоя системы. [37] Снимки файловой системы позволяют эффективно создать образ файловой системы UFS в любой момент времени. [38] Снимки обеспечивают надежное резервное копирование работающей файловой системы. GEOM — это модульная структура, которая обеспечивает RAID (в настоящее время уровни 0, 1, 3), полное шифрование диска , ведение журнала , конкатенацию, кэширование и доступ к сетевому хранилищу. GEOM позволяет создавать комплексные решения для хранения данных, объединяющие («сцепляющие») эти механизмы. [39] FreeBSD предоставляет две платформы для шифрования данных: GBDE и Geli . И GBDE, и Geli работают на уровне диска. GBDE был написан Полом-Хеннингом Кампом и распространяется по лицензии BSD, состоящей из двух пунктов. Geli — это альтернатива GBDE, написанная Павлом Якубом Давидеком и впервые появившаяся во FreeBSD 6.0. [40] [41]
Начиная с версии 7.0, FreeBSD поддерживает файловую систему ZFS . ZFS ранее была файловой системой с открытым исходным кодом, которая была впервые разработана Sun Microsystems , но когда Oracle приобрела Sun, ZFS стала запатентованным продуктом. Однако проект FreeBSD все еще разрабатывает и совершенствует свою реализацию ZFS посредством проекта OpenZFS . [42] В настоящее время поддерживается версия OpenZFS 2.2.2, которая содержит важное исправление ошибки повреждения данных. Эта версия совместима с выпусками, начиная с 12.2-RELEASE. [43]
FreeBSD предоставляет несколько функций, связанных с безопасностью, включая списки управления доступом (ACL), [44] аудит событий безопасности, расширенные атрибуты файловой системы, обязательный контроль доступа (MAC) [45] и детальные возможности . [46] Эти улучшения безопасности были разработаны в рамках проекта TrustedBSD . Проект был основан Робертом Уотсоном с целью реализации концепций из « Общих критериев оценки безопасности информационных технологий» и « Оранжевой книги» . Этот проект продолжается [ сроки? ] и многие из его расширений были интегрированы во FreeBSD. [47] Проект поддерживается различными организациями, в том числе DARPA, АНБ, Network Associates Laboratories, Safeport Network Services, Пенсильванским университетом, Yahoo!, McAfee Research, SPARTA, Apple Computer, nCircle Network Security, Google, Компьютерная лаборатория Кембриджского университета и другие. [48]
В рамках проекта также была перенесена реализация FLASK /TE АНБ из SELinux во FreeBSD. Другая работа включает в себя разработку OpenBSM , реализации с открытым исходным кодом API Sun Basic Security Module (BSM) и формата файла журнала аудита, который поддерживает обширную систему аудита безопасности. Он был включен в состав FreeBSD 6.2. Другие инфраструктурные работы во FreeBSD, выполненные в рамках проекта TrustedBSD, включали GEOM и OpenPAM. [46]
Большинство компонентов проекта TrustedBSD в конечном итоге включены в основные исходные коды FreeBSD. Кроме того, многие функции, будучи полностью реализованными, находят применение в других операционных системах. Например, OpenPAM был принят NetBSD . [49] Более того, TrustedBSD MAC Framework была принята Apple для macOS . [50]
FreeBSD поставляется с тремя различными пакетами межсетевого экрана: IPFW , pf и IPFilter . IPFW — это собственный межсетевой экран FreeBSD. pf был взят из OpenBSD, а IPFilter был портирован на FreeBSD Дарреном Ридом. [51]
Программа OpenSSH , взятая из OpenBSD, была включена в установку по умолчанию. OpenSSH — это бесплатная реализация протокола SSH, заменяющая telnet . В отличие от telnet, OpenSSH шифрует всю информацию (включая имена пользователей и пароли). [52]
В ноябре 2012 года команда безопасности FreeBSD объявила, что хакеры получили несанкционированный доступ к двум серверам проекта. Эти серверы были немедленно отключены. Дополнительные исследования показали, что первый несанкционированный доступ хакеров произошел 19 сентября. Судя по всему, хакеры получили доступ к этим серверам, украв ключи SSH у одного из разработчиков, а не воспользовавшись ошибкой в самой операционной системе. Эти два взломанных сервера были частью инфраструктуры, используемой для создания сторонних программных пакетов. Команда безопасности FreeBSD проверила целостность бинарных пакетов и объявила, что в бинарные пакеты не было внесено никаких несанкционированных изменений, но заявила, что не может гарантировать целостность пакетов, загруженных в период с 19 сентября по 11 ноября. [53] [54] [55]
FreeBSD была портирована на различные архитектуры набора команд . Проект FreeBSD организует архитектуру по уровням, которые характеризуют уровень предоставляемой поддержки. Архитектуры уровня 1 являются зрелыми и полностью поддерживаются, например, это единственный уровень, «поддерживаемый сотрудником службы безопасности». Архитектуры уровня 2 находятся в стадии активной разработки, но не поддерживаются полностью. Архитектуры уровня 3 являются экспериментальными или больше не находятся в активной разработке. [56]
По состоянию на декабрь 2023 года [обновлять]FreeBSD портирована на следующие архитектуры: [27]
Поддержка 32-битного ARM (включая OTG) и MIPS в основном ориентирована на встраиваемые системы ( ARM64 также ориентирована на серверы [58] ), однако FreeBSD/ARM работает на ряде одноплатных компьютеров , включая BeagleBone Black , Raspberry Пи [59] [60] и Wandboard. [61]
Поддерживаемые устройства перечислены в Примечаниях к оборудованию FreeBSD 12.1-RELEASE. [62] В документе описаны устройства, которые, как известно, поддерживаются FreeBSD. Другие конфигурации также могут работать, но они просто еще не проверены. Грубые автоматически извлеченные списки поддерживаемых идентификаторов устройств доступны в стороннем репозитории. [63]
В 2020 году был представлен новый проект автоматического сбора информации о тестируемых конфигурациях оборудования. [64]
FreeBSD имеет репозиторий программного обеспечения , содержащий более 30 000 [65] приложений, разработанных сторонними организациями. Примеры включают оконные системы , веб-браузеры , почтовые клиенты , офисные пакеты и т. д. В общем, проект сам по себе не разрабатывает это программное обеспечение, а только среду, позволяющую устанавливать эти программы, известную как коллекция портов. Приложения могут быть либо скомпилированы из исходного кода («порты»), если это разрешено условиями лицензирования, либо загружены в виде предварительно скомпилированных двоичных файлов («пакетов»). [66] Коллекция портов поддерживает текущие и стабильные ветки FreeBSD. Старые версии не поддерживаются и могут корректно работать, а могут и не работать с актуальной коллекцией портов. [67]
Порты используют Makefiles для автоматического получения исходного кода нужного приложения из локального или удаленного репозитория , его распаковки в системе, применения к нему исправлений и компиляции. [4] [68] В зависимости от размера исходного кода компиляция может занять много времени, но это дает пользователю больше контроля над процессом и его результатом. Большинство портов также имеют аналоги пакетов (т.е. предварительно скомпилированные двоичные файлы), что дает пользователю выбор. Хотя этот метод быстрее, у пользователя меньше возможностей настройки. [66]
В FreeBSD версии 10.0 появился менеджер пакетов pkg в качестве замены ранее использовавшихся инструментов работы с пакетами. [69] Функционально он похож на apt и yum в дистрибутивах Linux . Он позволяет устанавливать, обновлять и удалять как порты, так и пакеты. Помимо pkg, PackageKit также можно использовать для доступа к коллекции портов.
Впервые представленные в FreeBSD версии 4, [70] тюрьмы представляют собой механизм безопасности и реализацию виртуализации на уровне операционной системы , которая позволяет пользователю запускать несколько экземпляров гостевой операционной системы поверх хоста FreeBSD. Это расширенная версия традиционного механизма chroot . Процесс, работающий внутри такой тюрьмы, не может получить доступ к ресурсам за ее пределами. У каждой тюрьмы есть собственное имя хоста и IP-адрес . Одновременно можно запускать несколько тюрем, но ядро используется всеми из них. Следовательно, в тюрьме можно запускать только программное обеспечение, поддерживаемое ядром FreeBSD. [71]
bhyve , новое решение для виртуализации, было представлено в FreeBSD 10.0. bhyve позволяет пользователю одновременно запускать несколько гостевых операционных систем (FreeBSD, OpenBSD , Linux и Microsoft Windows [72] ). Планируются и другие операционные системы, такие как Illumos . bhyve был написан Нилом Нату и Питером Греханом и впервые был анонсирован на конференции BSDCan 2011 года. Основное различие между тюрьмами bhyve и FreeBSD заключается в том, что тюрьмы представляют собой виртуализацию на уровне операционной системы и, следовательно, доступны только гостям FreeBSD; но bhyve — это гипервизор типа 2 , который не ограничивается только гостями FreeBSD. [73] [74] [75] Для сравнения, bhyve — это технология, аналогичная KVM , тогда как тюрьмы ближе к контейнерам LXC или зонам Solaris . Экземпляры Amazon EC2 AMI также поддерживаются черезamazon-ssm-agent
Начиная с FreeBSD 11.0, поддерживается работа в качестве привилегированного домена Dom0 для гипервизора Xen типа 1. [76] Поддержка запуска в качестве DomU (гость) доступна начиная с FreeBSD 8.0.
VirtualBox (без пакета расширений с закрытым исходным кодом ) и QEMU доступны во FreeBSD.
Большинство программного обеспечения, работающего в Linux , может работать и в FreeBSD, используя дополнительный встроенный уровень совместимости . Следовательно, большинство двоичных файлов Linux можно запускать на FreeBSD, включая некоторые проприетарные приложения, распространяемые только в двоичной форме. Этот уровень совместимости не является эмуляцией ; Интерфейс системных вызовов Linux реализован в ядре FreeBSD, и, следовательно, исполняемые образы и общие библиотеки Linux обрабатываются так же, как собственные исполняемые образы и общие библиотеки FreeBSD. [77] Кроме того, FreeBSD обеспечивает уровни совместимости для нескольких других Unix-подобных операционных систем , помимо Linux, таких как BSD/OS и SVR4 , [77] однако пользователи чаще компилируют эти программы непосредственно во FreeBSD. [78]
При запуске двоичных файлов Linux не было отмечено заметного снижения производительности по сравнению с собственными программами FreeBSD, а в некоторых случаях они могут даже работать более плавно, чем в Linux. [79] [80] Однако этот уровень не является полностью непрерывным, и некоторые двоичные файлы Linux непригодны для использования или могут использоваться лишь частично во FreeBSD. Существует поддержка системных вызовов до версии 4.4.0 , [81] доступной начиная с FreeBSD 14.0 . Начиная с версии 10.3, FreeBSD может запускать 64-битные двоичные файлы Linux. [82]
Во FreeBSD реализован ряд собственных интерфейсов ядра NDIS Microsoft Windows , позволяющих FreeBSD запускать (в противном случае) сетевые драйверы только для Windows. [83] [84]
Уровень совместимости Wine , который позволяет запускать многие приложения Windows, особенно игры, без (лицензионной) копии Microsoft Windows , доступен для FreeBSD.
Ядро FreeBSD обеспечивает поддержку некоторых важных задач, таких как управление процессами, связью, загрузкой и файловыми системами. FreeBSD имеет монолитное ядро [85] с модульной конструкцией. Различные части ядра, например драйверы, выполнены в виде модулей. Пользователь может загружать и выгружать эти модули в любое время. [86] ULE — планировщик по умолчанию во FreeBSD, начиная с версии 7.1, он поддерживает SMP и SMT . [87] Ядро FreeBSD также имеет масштабируемый интерфейс уведомления о событиях, называемый kqueue . Он был портирован на другие производные BSD, такие как OpenBSD и NetBSD . [88] Поточность ядра была введена во FreeBSD 5.0 с использованием модели потоков M:N . Эта модель хорошо работает в теории, [89] [90] , но ее сложно реализовать, и ее поддерживают лишь немногие операционные системы. Хотя реализация этой модели во FreeBSD работала, она работала не очень хорошо, поэтому, начиная с версии 7.0, FreeBSD начала использовать модель потоков 1:1 , называемую libthr. [90]
Документация FreeBSD состоит из руководств, страниц руководства, архивов списков рассылки, часто задаваемых вопросов и множества статей, в основном поддерживаемых The FreeBSD Documentation Project. Документация FreeBSD переведена на несколько языков. [91] Вся официальная документация выпускается под лицензией FreeBSD Documentation License , «разрешительной лицензией свободной документации без авторского лева, совместимой с GNU FDL». [92] Документация FreeBSD описывается как «высококачественная». [93] [94]
Проект FreeBSD поддерживает множество списков рассылки. [95] Среди наиболее популярных списков рассылки — FreeBSD-вопросы (общие вопросы) и FreeBSD-hackers (место, где можно задать больше технических вопросов). [96]
С 2004 года база данных группы пользователей BSD города Нью-Йорка предоставляет информацию dmesg из коллекции компьютеров ( ноутбуков , рабочих станций , одноплатных компьютеров , встроенных систем , виртуальных машин и т. д.), работающих под управлением FreeBSD. [97]
Начиная с версии 2.0 до 8.4, FreeBSD использовала программу sysinstall в качестве основного установщика. Его написал на языке C Джордан Хаббард . Он использует текстовый пользовательский интерфейс и разделен на ряд меню и экранов, которые можно использовать для настройки и управления процессом установки. Его также можно использовать для установки портов и пакетов в качестве альтернативы интерфейсу командной строки . [98]
Утилита sysinstall теперь считается устаревшей в пользу bsdinstall, нового установщика, который был представлен во FreeBSD 9.0. bsdinstall — это «легкая замена sysinstall», написанная на sh. По сообщению OSNews , «он потерял некоторые функции, но получил другие, но это гораздо более гибкая конструкция, и в конечном итоге она станет значительным улучшением». [71] [99]
Оболочкой FreeBSD по умолчанию является оболочка tcsh для root и оболочка Almquist (sh) для обычных пользователей. [100] Оболочкой сценариев по умолчанию является оболочка Almquist. [101]
FreeBSD разрабатывается командой волонтеров по всему миру. Для общения разработчики используют Интернет , и многие из них не встречались лично. Помимо местных групп пользователей, спонсируемых и посещаемых пользователями, USENIX проводит ежегодную конференцию под названием BSDcon . BSDcon не является специфичным для FreeBSD, поэтому он касается технических аспектов всех операционных систем, производных от BSD, включая OpenBSD и NetBSD . [102] Помимо BSDcon, в Европе , Японии и Канаде соответственно проходят три другие ежегодные конференции: EuroBSDCon, AsiaBSDCon и BSDCan. [103] [104] [105]
Проект FreeBSD управляется примерно 500 коммиттерами или разработчиками, которые имеют доступ к основным репозиториям исходного кода и могут разрабатывать, отлаживать или улучшать любую часть системы. Большинство разработчиков — волонтеры, и некоторые компании платят лишь немногим разработчикам. [17] Существует несколько типов коммиттеров, в том числе коммиттеры исходного кода (базовая операционная система), коммиттеры документации (авторы документации и веб-сайтов) и порты (портирование сторонних приложений и инфраструктуры). Каждые два года коммиттеры FreeBSD выбирают основную команду FreeBSD из 9 человек, которая отвечает за общее руководство проектом, установку и обеспечение соблюдения правил проекта, а также утверждение новых коммиттеров или предоставление доступа к коммитам к репозиториям исходного кода. Ряд обязанностей официально возложен на другие команды разработчиков основной командой FreeBSD, например, ответственность за управление коллекцией портов делегируется группе управления портами. [106]
Помимо разработчиков, у FreeBSD есть тысячи «участников». Участники также являются добровольцами, не входящими в проект FreeBSD, которые отправляют исправления на рассмотрение коммиттерам, поскольку у них нет доступа для внесения коммитов в репозиторий исходного кода FreeBSD. Затем коммиттеры оценивают материалы участников и решают, что принять, а что отклонить. Участника, приславшего высококачественные патчи, часто просят стать коммиттером. [106]
Разработчики FreeBSD поддерживают как минимум две ветки одновременной разработки. Ветка -CURRENT всегда представляет собой « передовой край » разработки FreeBSD. Для каждого основного номера версии FreeBSD создается ветка -STABLE , из которой примерно раз в 4–6 месяцев вырезается -RELEASE. Если функция достаточно стабильна и зрела, она, скорее всего, будет перенесена ( MFC или Merge from CURRENT на жаргоне разработчиков FreeBSD) в ветку -STABLE . [107] [4]
Разработка FreeBSD частично поддерживается FreeBSD Foundation. Фонд — это некоммерческая организация, которая принимает пожертвования на развитие FreeBSD. Такое финансирование использовалось для финансирования конкретных мероприятий разработчиков, приобретения оборудования и сетевой инфраструктуры, предоставления грантов на поездки на саммиты разработчиков и оказания юридической поддержки проекту FreeBSD. [108]
В ноябре 2014 года Фонд FreeBSD получил пожертвование в размере 1 миллиона долларов США от Яна Кума , соучредителя и генерального директора WhatsApp , что стало крупнейшим разовым пожертвованием Фонду с момента его создания. В декабре 2016 года Ян Кум пожертвовал еще 500 000 долларов. [109] Сам Ян Кум является пользователем FreeBSD с конца 1990-х годов, а WhatsApp использует FreeBSD на своих серверах. [110]
FreeBSD выпускается под различными лицензиями с открытым исходным кодом. Код ядра и большая часть недавно созданного кода выпускаются под лицензией BSD, состоящей из двух пунктов , которая позволяет каждому использовать и распространять FreeBSD по своему усмотрению. Эта лицензия была одобрена Фондом свободного программного обеспечения [111] и Инициативой открытого исходного кода [112] как лицензия свободного программного обеспечения и лицензия открытого исходного кода соответственно. Фонд свободного программного обеспечения описал эту лицензию как «слабую, либеральную лицензию на свободное программное обеспечение без авторского лева, совместимую с GNU GPL». Есть части, выпущенные по лицензиям BSD с тремя и четырьмя пунктами, а также по лицензии Beerware . Некоторые драйверы устройств содержат двоичный объект [113] , например Atheros HAL версий FreeBSD до 7.2. [114] [ не удалось проверить ] Некоторая часть кода, предоставленного другими проектами, распространяется по лицензиям GPL , LGPL , CDDL [115] и ISC . Весь код, лицензируемый по GPL и CDDL , четко отделен от кода по либеральным лицензиям, чтобы таким пользователям, как производители встраиваемых устройств, было проще использовать только разрешительные лицензии свободного программного обеспечения . Целью ClangBSD является замена некоторых зависимостей GPL в базовой системе FreeBSD путем замены коллекции компиляторов GNU компилятором LLVM / Clang под лицензией BSD . ClangBSD стал самостоятельным хостингом 16 апреля 2010 года. [116]
В течение многих лет логотипом FreeBSD был общий BSD Daemon , также называемый Beastie , что является искаженным произношением BSD . Однако Beastie не был уникальным для FreeBSD. Впервые Beastie появился в 1976 году на футболках Unix художника-комика Фила Фолио, [117] для Майка О'Брайена, [118] [119] [120] [121] и некоторые из них были куплены Bell Labs . [122]
Более популярные версии демона BSD были нарисованы режиссером анимации Джоном Лассетером, начиная с 1984 года. [123] [124] Несколько версий, специфичных для FreeBSD, были позже нарисованы Тацуми Хосокавой. [125] С точки зрения литографии, графика Лассетера не является штриховым искусством и часто требует растрового четырехцветного процесса офсетной фотопечати для точного воспроизведения на физических поверхностях, таких как бумага. Кроме того, демон BSD считался слишком графически подробным для плавного масштабирования размеров и эстетически чрезмерно зависимым от множества цветовых градаций, что затрудняло надежное воспроизведение простого стандартизированного логотипа только в двух или трех цветах, не говоря уже о монохромном.
Из-за этих опасений 8 октября 2005 года был проведен конкурс, и 8 октября 2005 года был выпущен новый логотип, разработанный Антоном К. Гуралом, все еще повторяющий демон BSD. [126] [127] [128] Однако об этом объявил Роберт Уотсон . что проект FreeBSD «ищет новый логотип, а не новый талисман» и что проект FreeBSD продолжит использовать Beastie в качестве своего талисмана. [126]
Название «FreeBSD» было придумано Дэвидом Гринманом 19 июня 1993 года, другими предложенными названиями были «BSDFree86» и «Free86BSD». [129] Слоган FreeBSD «Сила служения» является товарным знаком FreeBSD Foundation. [130]
Существует ряд дистрибутивов программного обеспечения на основе FreeBSD. Известные производные включают:
Все эти дистрибутивы не содержат изменений или имеют лишь незначительные изменения по сравнению с исходной базовой системой FreeBSD. Основное отличие от оригинальной FreeBSD заключается в том, что они поставляются с предустановленным и предварительно настроенным программным обеспечением для конкретных случаев использования. Это можно сравнить с дистрибутивами Linux , которые все двоично совместимы, поскольку используют одно и то же ядро, а также одни и те же базовые инструменты, компиляторы и библиотеки, но имеют разные приложения, конфигурации и брендинг.
Помимо этих дистрибутивов, существует несколько независимых операционных систем на базе FreeBSD. DragonFly BSD — это ответвление FreeBSD 4.8, целью которого является стратегия многопроцессорной синхронизации, отличная от той, которая была выбрана для FreeBSD 5, а также разработка некоторых функций микроядра . [131] Он не стремится оставаться совместимым с FreeBSD и имеет огромные различия в ядре и базовом пользовательском пространстве . MidnightBSD — это ответвление FreeBSD 6.1, в значительной степени заимствованное у NeXTSTEP , особенно в части пользовательского интерфейса.
Darwin , ядро macOS от Apple , включает в себя виртуальную файловую систему и сетевой стек, заимствованные из FreeBSD, а компоненты его пользовательского пространства также являются производными от FreeBSD. [19] [132]
Некоторые службы подписки, непосредственно основанные на FreeBSD:
Встроенные устройства и операционные системы встроенных устройств на базе FreeBSD включают: