OpenBSD
OpenBSD | |
---|---|
Разработчик | Тэо де Раадт и проект OpenBSD |
Семейство ОС | BSD UNIX |
Основана на | BSD (NetBSD) |
Исходный код | открытое ПО |
Первый выпуск | 18 октября 1995 |
Последняя версия | 7.4 (16 октября 2023) |
Частота обновления финальных версий | два раза в год |
Метод обновления | сборка портов или установка пакетов |
Менеджеры пакетов | Pkg, pkgsrc |
Поддерживаемые платформы | ARMv7, ARMv8, MIPS, PowerPC, PA-RISC, SPARC64, LUNA, RISC-V, DEC Alpha, IA-32 и x86_64 |
Тип ядра | модульное (UNIX) |
Лицензия | ISC |
Состояние | активное |
Репозиторий исходного кода | cvsweb.openbsd.org |
Веб-сайт | openbsd.org |
OpenBSD — свободная многоплатформенная операционная система, основанная на 4.4BSD — BSD-реализации UNIX-системы[1][2][3][4]. Основным отличием OpenBSD от других свободных операционных систем, базирующихся на 4.4BSD (таких, как NetBSD, FreeBSD), является изначальная ориентированность проекта на создание наиболее безопасной, свободной и лицензионно чистой из существующих операционных систем[5][6].
История
OpenBSD — самостоятельный проект, ответвление NetBSD, возникшее в конце 1995 года в результате раскола в команде разработчиков. Тео де Раадт (Theo de Raadt), один из четырёх основателей NetBSD, был вынужден покинуть проект после конфронтации по поводу дальнейшего развития операционной системы[7]. Взяв за основу дерево исходных кодов NetBSD и переделав его в соответствии со своим видением, он создал свой собственный проект — OpenBSD, в который, вслед за ним, перешли и некоторые другие разработчики NetBSD.
Релизы
Новые версии (релизы) OpenBSD выходят каждые полгода: ориентировочно 1 мая и 1 ноября[8]. В настоящий момент поддерживаются 15 различных платформ и архитектур, включая популярные i386-совместимые компьютеры, M68k, UltraSPARC, DEC Alpha, AMD64, Sharp Zaurus и другие[9][10][11]. Для установки доступно свыше 9500 пакетов с программным обеспечением, собираемым посредством штатного механизма портов.[12]
Между релизами происходит регулярный выход «срезов» (англ. snapshots), формируемых тем же путём, что и релизы. Срезы в основном соответствуют текущему состоянию дерева исходных текстов, но иногда в них вносятся дополнительные изменения, требующие тестирования.
До версии 6.2 каждый релиз сопровождался комиксом и как минимум одной песней[13]. В песнях рассказывалось о процессе создания релизов, о спорах и конфликтах, возникших за прошедшие 6 месяцев, но чаще всего темой песен становятся новинки соответствующего релиза. До 2016 года релизы выпускались на CD-ROM. Начиная с версии 6.1 релизы выпускаются только в Интернете, при этом на CD-ROM выпускается ровно один экземпляр, выставляемый на аукцион[14].
Установка OpenBSD штатно возможна многими способами, в том числе: с компакт-диска, с USB-флешки, с дискеты, а также по сети посредством PXE.[15] Из-за ограничений отдельных аппаратных платформ некоторые способы установки могут быть недоступны.
Релизы, включая срезы, подписываются утилитой signify собственной разработки. Отдельными ключами подписываются: 1) базовая система; 2) сторонние пакеты с прошивками оборудования; 3) все остальные сторонние пакеты. Каждый новый релиз подписывается новым ключом, при этом публичный ключ для очередного релиза поставляется уже вместе с предшествующим релизом.
OpenBSD — одна из немногих популярных современных операционных систем общего назначения, не обладающей штатным графическим и/или локализованным инсталлятором. Штатный инсталлятор представляет собой большой шелл-скрипт, с возможностью автоматической установки.[16]
Распространённость OpenBSD и дочерние проекты
Наиболее популярным (хотя далеко не единственным) применением OpenBSD являются системы защиты сетей (межсетевые экраны). В немалой степени этому способствуют дочерние проекты, разрабатываемые параллельно:
- Packet Filter (PF) — межсетевой экран (фаервол) со встроенной платформой организации очередей ALTQ, заменивший в OpenBSD популярный IPFilter Даррена Рида после многолетних разногласий по поводу лицензии[17][18]. PF был высоко оценён и взят на вооружение разработчиками параллельных проектов NetBSD[19] и FreeBSD[20].
- OpenSSH — самая распространённая открытая реализация SSH[21].
- OpenNTPD — демон для синхронизации времени по протоколу NTP; может работать и как сервер[22][23][24].
- OpenOSPFD — реализация протокола динамической маршрутизации OSPF (локальная маршрутизация).
- OpenBGPD — реализация протокола динамической маршрутизации BGP (глобальная маршрутизация)[25].
- OpenCVS — (в разработке и отладке; на данный момент используется только часть — OpenRCS) — более простая и безопасная реализация CVS, чем разрабатываемая в рамках GNU[26].
- OpenSMTPD — реализация протокола SMTP[27].
- OpenIKED — реализация протокола IKEv2, являющегося одной из основных составляющих IPSec VPN[28].
- LibreSSL — форк OpenSSL, обеспечиващий совместимость с родительским проектом, но при этом систематически проходящий аудит как составная часть OpenBSD.
- sndio — звуковой сервер.
- OpenRSYNC — форк rsync под BSD лицензией.[29]
Отдельные разработки OpenBSD не стали отдельными проектами, но используются в качестве компактных, легче аудируемых взамен внешним альтернативам, например:
- doas — альтернатива sudo.
- signify — альтернатива утилите openssl, реализующей отдельные заложенные в OpenSSL функции.
- vmm — собственный механизм (пара-)виртуализации.
Особенности разработки
OpenBSD отличается от других свободных BSD-систем своей системой разработки. Никакой код не может попасть в систему извне случайно; любые изменения просматриваются ответственными за соответствующую часть системы лицами. Любая ошибка, найденная в одном месте, вызывает пересмотр всего аналогичного кода.
В OpenBSD уделяется огромное внимание качеству документации. Любая ошибка в man-странице считается серьёзной и немедленно исправляется. Также большое внимание уделяется простоте и ясности кода — поскольку разработчики небезосновательно полагают, что чем проще код, тем меньше вероятность пропустить ошибку.
Разработчики OpenBSD категорически не приемлют использование любого несвободного кода в системе. Неоднократно части операционной системы исключались из репозитория из-за проблем с лицензированием:
- IPFilter — оригинальная лицензия Даррена Рида имела ряд серьёзных ограничений, например, не допускала модификации кода. А кроме исправления ошибок, сторонние программы в OpenBSD подвергаются тюнингу — изменению умолчаний, запрету небезопасных режимов и т. п. Некоторое время IP Filter имел компромиссную лицензию, но автор вернулся к оригинальной формулировке, и начиная с релиза 3.0, межсетевым экраном в OpenBSD стал собственный Packet Filter.
- XFree86 — из-за изменения лицензии был заменён на X.Org.
- В OpenBSD (в отличие от наиболее распространённых сегодня свободных систем — Linux и FreeBSD, не говоря о «полуоткрытых» системах вроде OpenSolaris) не используются драйвера с «блобами» — скомпилированными объектными модулями с нераскрываемым исходным кодом. Кроме несвободного исполнения, такие драйвера позиционируются как потенциально опасные (в особенности, в системе с монолитным ядром, каковой является и OpenBSD), так как не поддаются проверке и необходимой модификации. Однако бинарные прошивки включаются в состав системы, если они допускают свободное распространение, поскольку они исполняются не на центральном процессоре, а на самом оборудовании.
- В дерево портированных программ (портов), за редкими исключениями, не включаются (или удаляются) программы с лицензиями, не разрешающими распространение в виде исходных кодов и в бинарном (скомпилированном) виде.
Разработка OpenBSD ведётся с помощью CVS. Для частичной компенсации неудобств, связанных с использованием централизованной системы управления версиями файлов, поддерживается сеть зеркал cvsync. При этом существует openbsd-wip Архивная копия от 5 декабря 2015 на Wayback Machine — полуофициальное дерево портов, находящихся в состоянии разработки, располагающееся на GitHub. Также на GitHub имеются зеркала CVS-репозиториев.[30]
Собственные API
Перечисленные ниже технологии активно используются в кодовой базе OpenBSD. На сайте проекта поддерживается развёрнутый список Архивная копия от 9 сентября 2016 на Wayback Machine с указанием авторов.
- BSD Authentication — API для аутентификации; изначально разработан в рамках проекта BSDi, на данный момент поддерживается только в OpenBSD.
- imsg[31] — API для программ с разделением привилегий между процессами, используется во многих субпроектах OpenBSD.
- pledge[32]/unveil[33] — механизм самоограничения процессами своих возможностей, близкий по духу к Seccomp.
- strlcat/strlcpy — получивший широкое распространение за пределами OpenBSD API для работы с C-строками, помогающий избегать типичных для strcat/strcpy проблем с переполнением буфера.
Совместимость с оборудованием
Поддерживаемые платформы и устройства перечислены в документе OpenBSD Supported Platforms Notes.[34] Другие конфигурации также могут работать, но пока ещё не были протестированы или документированы. Списки поддерживаемых идентификаторов устройств доступны в стороннем репозитории.[35]
В 2020 году был представлен новый проект для автоматического сбора информации о протестированных конфигурациях оборудования.[36]
Финансирование
Этот раздел не завершён. |
В 2003 году финансирование со стороны DARPA было прекращено.[37] Основным источником средств для поддержания жизнедеятельности проекта становятся индивидуальные пожертвования; как в денежной форме, так и в виде приобретения оборудования или транспортных билетов для разработчиков.
Для решения проблемы с пожертвованиями от юридических лиц 26 апреля 2007 года создана некоммерческая организация — фонд OpenBSD (OpenBSD Foundation).[38] В отличие от многих других подобных организаций, фонд OpenBSD не влияет на принимаемые проектом решения и, за отдельным исключением[39], не выступает от его имени.
17 января 2014 года проект оказался под угрозой закрытия из-за того, что у Тео де Раадта, использующего для OpenBSD огромный «зоопарк железа» у себя дома, накопилась значительная задолженность за электроэнергию, эквивалентная $20 000, в связи с чем он опубликовал письмо с просьбой о помощи[40][41]. Спонсор из числа Bitcoin-богачей нашёлся буквально через 2 дня сразу после того, как ссылку опубликовали на IRC-канале #bitcoin-assets
. Румынский предприниматель Мирча Попеску сообщил, что готов пожертвовать сразу всю необходимую сумму[42][43][44].
На данный момент именно OpenBSD Foundation финансово поддерживает инфраструктуру проекта, а также проведение хакатонов.
См. также
Примечания
- ↑ OpenBSD - For Your Eyes Only . Дата обращения: 23 июня 2018. Архивировано 23 июня 2018 года.
- ↑ DistroWatch Weekly, Issue 381, 22 November 2010 . Дата обращения: 23 июня 2018. Архивировано 23 июня 2018 года.
- ↑ DistroWatch Weekly, Issue 639, 7 December 2015 . Дата обращения: 23 июня 2018. Архивировано 23 июня 2018 года.
- ↑ DistroWatch Weekly, Issue 681, 3 October 2016 . Дата обращения: 23 июня 2018. Архивировано 23 июня 2018 года.
- ↑ OpenBSD Project Goals . Дата обращения: 1 октября 2006. Архивировано 7 июля 2013 года.
- ↑ Review: OpenBSD 3.4 SPARC64 Edition . Дата обращения: 23 июня 2018. Архивировано 23 июня 2018 года.
- ↑ Список рассылки netbsd-users: «… Theo de Raadt was asked to resign from the NetBSD Project…» . Дата обращения: 1 октября 2006. Архивировано 14 октября 2017 года.
- ↑ 1 — Introduction to OpenBSD . Дата обращения: 1 октября 2006. Архивировано 23 июня 2018 года.
- ↑ OpenBSD Platforms . Дата обращения: 1 октября 2006. Архивировано 27 ноября 2015 года.
- ↑ OpenBSD 3.5: a peek at another free Unix [LWN.net] . Дата обращения: 23 июня 2018. Архивировано 23 июня 2018 года.
- ↑ DistroWatch Weekly, Issue 534, 18 November 2013 . Дата обращения: 23 июня 2018. Архивировано 23 июня 2018 года.
- ↑ OpenBSD Ports (недоступная ссылка). Дата обращения: 12 ноября 2013. Архивировано 19 мая 2014 года.
- ↑ OpenBSD Release Songs . Дата обращения: 4 мая 2016. Архивировано 27 июня 2018 года.
- ↑ Official OpenBSD 6.1 CD - There's only One! (англ.). undeadly.org. Дата обращения: 24 ноября 2017. Архивировано 1 декабря 2017 года.
- ↑ OpenBSD Mirrors . Дата обращения: 4 мая 2016. Архивировано 14 марта 2014 года.
- ↑ autoinstall — unattended OpenBSD installation and upgrade . Дата обращения: 4 мая 2016. Архивировано 4 июня 2016 года.
- ↑ PF: The OpenBSD Packet Filter . Дата обращения: 1 октября 2006. Архивировано 24 сентября 2006 года.
- ↑ IP Filter — TCP/IP Firewall/NAT Software . Дата обращения: 1 октября 2006. Архивировано 7 декабря 2010 года.
- ↑ NetBSD Packet Filter information . Дата обращения: 1 октября 2006. Архивировано 24 сентября 2006 года.
- ↑ FreeBSD packet filter (pf) . Дата обращения: 1 октября 2006. Архивировано 12 октября 2006 года.
- ↑ OpenSSH . Дата обращения: 23 октября 2020. Архивировано 10 апреля 2006 года.
- ↑ OpenNTPD . Дата обращения: 1 октября 2006. Архивировано 4 октября 2006 года.
- ↑ OpenBSD manual pages: ntpd.conf(5) (недоступная ссылка). Дата обращения: 6 июня 2011. Архивировано 26 апреля 2011 года.
- ↑ OpenBSD manual pages: ntpd(8) (недоступная ссылка). Дата обращения: 6 июня 2011. Архивировано 26 апреля 2011 года.
- ↑ OpenBGPD . Дата обращения: 1 октября 2006. Архивировано 1 октября 2006 года.
- ↑ OpenCVS . Дата обращения: 1 октября 2006. Архивировано 1 октября 2006 года.
- ↑ OpenSMTPD . Дата обращения: 17 февраля 2013. Архивировано 9 марта 2013 года.
- ↑ OpenIKED (недоступная ссылка). Дата обращения: 20 октября 2013. Архивировано 24 ноября 2013 года.
- ↑ уведомление на undeadly.org . Дата обращения: 6 сентября 2019. Архивировано 1 сентября 2019 года.
- ↑ OpenBSD . GitHub. Дата обращения: 24 ноября 2017. Архивировано 25 июля 2017 года.
- ↑ imsg_init(3) - OpenBSD manual pages . man.openbsd.org. Дата обращения: 24 ноября 2017. Архивировано 1 декабря 2017 года.
- ↑ pledge(2) - OpenBSD manual pages . man.openbsd.org. Дата обращения: 24 ноября 2017. Архивировано 29 ноября 2017 года.
- ↑ unveil(2) - OpenBSD manual pages . man.openbsd.org. Дата обращения: 3 ноября 2018. Архивировано 3 ноября 2018 года.
- ↑ OpenBSD Supported Platforms . OpenBSD Foundation. Дата обращения: 14 июля 2020. Архивировано 9 июля 2020 года.
- ↑ OpenBSD 6.7: ids of supported devices . BSD Hardware Project. Дата обращения: 14 июля 2020. Архивировано 24 февраля 2021 года.
- ↑ OpenBSD Hardware Trends . BSD Hardware Project. Дата обращения: 14 июля 2020. Архивировано 1 ноября 2020 года.
- ↑ LWN: DARPA Cancels OpenBSD Funding . Дата обращения: 4 мая 2016. Архивировано 15 марта 2014 года.
- ↑ Announcing — The OpenBSD Foundation . Дата обращения: 4 мая 2016. Архивировано 8 мая 2014 года.
- ↑ Google Summer Of Code 2014 . Дата обращения: 4 мая 2016. Архивировано 28 ноября 2015 года.
- ↑ Electricity bill threatens survival of OpenBSD | ZDNet . Дата обращения: 20 января 2014. Архивировано 19 января 2014 года.
- ↑ Илья Сименко. Проект OpenBSD под угрозой закрытия: нет денег на оплату счетов за электричество . Хабрахабр (17 января 2014). Дата обращения: 2 января 2017. Архивировано 7 августа 2016 года.
- ↑ #bitcoin-assets log (недоступная ссылка). Дата обращения: 20 января 2014. Архивировано 23 января 2014 года.
- ↑ #bitcoin-assets log (недоступная ссылка). Дата обращения: 20 января 2014. Архивировано 23 января 2014 года.
- ↑ Анатолий Ализар. Румынский биткоин-миллионер оплатил долги OpenBSD . Хабрахабр (20 января 2014). Дата обращения: 2 января 2017. Архивировано 7 августа 2016 года.
Ссылки
- openbsd.org (англ.) — официальный сайт OpenBSD
- Undeadly Архивная копия от 7 апреля 2006 на Wayback Machine — официальный блог разработчиков OpenBSD и не только
- Новости OpenBSD Архивная копия от 12 ноября 2013 на Wayback Machine на сайте Linux.org.ru
- Дополнительная информация
- Поиск исходных кодов OpenBSD Архивная копия от 25 декабря 2014 на Wayback Machine
- Поиск портов OpenBSD на основе sqlports с подробностями о зависимостях
- Поиск портов OpenBSD Архивная копия от 2 января 2014 на Wayback Machine на основе истории изменений в CVS