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