Interested Article - OpenBSD

OpenBSD свободная многоплатформенная операционная система , основанная на 4.4BSD — BSD -реализации UNIX -системы . Основным отличием OpenBSD от других свободных операционных систем, базирующихся на 4.4BSD (таких, как NetBSD , FreeBSD ), является изначальная ориентированность проекта на создание наиболее безопасной , свободной и лицензионно чистой из существующих операционных систем .

Разработчики OpenBSD на хакатоне c2k1 в MIT

История

OpenBSD — самостоятельный проект, ответвление NetBSD, возникшее в конце 1995 года в результате раскола в команде разработчиков. Тео де Раадт ( Theo de Raadt ), один из четырёх основателей NetBSD, был вынужден покинуть проект после конфронтации по поводу дальнейшего развития операционной системы . Взяв за основу дерево исходных кодов NetBSD и переделав его в соответствии со своим видением, он создал свой собственный проект — OpenBSD, в который, вслед за ним, перешли и некоторые другие разработчики NetBSD.

Релизы

Новые версии ( релизы ) OpenBSD выходят каждые полгода: ориентировочно 1 мая и 1 ноября . В настоящий момент поддерживаются 15 различных платформ и архитектур, включая популярные i386 -совместимые компьютеры, M68k , UltraSPARC , DEC Alpha , AMD64 , Sharp Zaurus и другие . Для установки доступно свыше 9500 пакетов с программным обеспечением, собираемым посредством штатного механизма .

Между релизами происходит регулярный выход «срезов» ( англ. snapshots ), формируемых тем же путём, что и релизы. Срезы в основном соответствуют текущему состоянию дерева исходных текстов, но иногда в них вносятся дополнительные изменения, требующие тестирования.

До версии 6.2 каждый релиз сопровождался комиксом и как минимум одной песней . В песнях рассказывалось о процессе создания релизов, о спорах и конфликтах, возникших за прошедшие 6 месяцев, но чаще всего темой песен становятся новинки соответствующего релиза. До 2016 года релизы выпускались на CD-ROM . Начиная с версии 6.1 релизы выпускаются только в Интернете, при этом на CD-ROM выпускается ровно один экземпляр, выставляемый на аукцион .

Установка OpenBSD штатно возможна многими способами, в том числе: с компакт-диска , с USB -флешки, с дискеты , а также по сети посредством PXE . Из-за ограничений отдельных аппаратных платформ некоторые способы установки могут быть недоступны.

Релизы, включая срезы, подписываются утилитой signify собственной разработки. Отдельными ключами подписываются: 1) базовая система; 2) сторонние пакеты с прошивками оборудования; 3) все остальные сторонние пакеты. Каждый новый релиз подписывается новым ключом, при этом публичный ключ для очередного релиза поставляется уже вместе с предшествующим релизом.

OpenBSD — одна из немногих популярных современных операционных систем общего назначения, не обладающей штатным графическим и/или локализованным инсталлятором . Штатный инсталлятор представляет собой большой шелл-скрипт, с возможностью автоматической установки .

Распространённость OpenBSD и дочерние проекты

OpenBSD — вторая по популярности BSD-система

Наиболее популярным (хотя далеко не единственным) применением OpenBSD являются системы защиты сетей ( межсетевые экраны ). В немалой степени этому способствуют дочерние проекты, разрабатываемые параллельно:

  • Packet Filter (PF) — межсетевой экран (фаервол) со встроенной платформой организации очередей ALTQ , заменивший в OpenBSD популярный IPFilter после многолетних разногласий по поводу лицензии . PF был высоко оценён и взят на вооружение разработчиками параллельных проектов NetBSD и FreeBSD .
  • OpenSSH — самая распространённая открытая реализация SSH .
  • OpenNTPD — демон для синхронизации времени по протоколу NTP ; может работать и как сервер .
  • — реализация протокола динамической маршрутизации OSPF (локальная маршрутизация).
  • — реализация протокола динамической маршрутизации BGP (глобальная маршрутизация) .
  • — (в разработке и отладке; на данный момент используется только часть — OpenRCS) — более простая и безопасная реализация CVS , чем разрабатываемая в рамках GNU .
  • — реализация протокола SMTP .
  • — реализация протокола IKEv2 , являющегося одной из основных составляющих IPSec VPN .
  • LibreSSL — форк OpenSSL , обеспечиващий совместимость с родительским проектом, но при этом систематически проходящий аудит как составная часть OpenBSD.
  • звуковой сервер .
  • — форк rsync под BSD лицензией.

Отдельные разработки OpenBSD не стали отдельными проектами, но используются в качестве компактных, легче аудируемых взамен внешним альтернативам, например:

  • doas — альтернатива sudo .
  • signify — альтернатива утилите openssl, реализующей отдельные заложенные в OpenSSL функции.
  • vmm — собственный механизм (пара-) виртуализации .
OpenBSD 3.7, запущенная в графическом режиме с X.Org и оконным менеджером JWM

Особенности разработки

OpenBSD отличается от других свободных BSD-систем своей системой разработки. Никакой код не может попасть в систему извне случайно; любые изменения просматриваются ответственными за соответствующую часть системы лицами. Любая ошибка, найденная в одном месте, вызывает пересмотр всего аналогичного кода.

В OpenBSD уделяется огромное внимание качеству документации. Любая ошибка в man -странице считается серьёзной и немедленно исправляется. Также большое внимание уделяется простоте и ясности кода — поскольку разработчики небезосновательно полагают, что чем проще код, тем меньше вероятность пропустить ошибку.

Разработчики OpenBSD категорически не приемлют использование любого несвободного кода в системе. Неоднократно части операционной системы исключались из репозитория из-за проблем с лицензированием:

  • IPFilter — оригинальная лицензия Даррена Рида имела ряд серьёзных ограничений, например, не допускала модификации кода. А кроме исправления ошибок, сторонние программы в OpenBSD подвергаются тюнингу — изменению умолчаний, запрету небезопасных режимов и т. п. Некоторое время IP Filter имел компромиссную лицензию, но автор вернулся к оригинальной формулировке, и начиная с релиза 3.0, межсетевым экраном в OpenBSD стал собственный Packet Filter.
  • XFree86 — из-за изменения лицензии был заменён на X.Org .
  • В OpenBSD (в отличие от наиболее распространённых сегодня свободных систем — Linux и FreeBSD , не говоря о «полуоткрытых» системах вроде OpenSolaris ) не используются драйвера с « блобами » — скомпилированными объектными модулями с нераскрываемым исходным кодом. Кроме несвободного исполнения, такие драйвера позиционируются как потенциально опасные (в особенности, в системе с монолитным ядром , каковой является и OpenBSD), так как не поддаются проверке и необходимой модификации. Однако бинарные прошивки включаются в состав системы, если они допускают свободное распространение, поскольку они исполняются не на центральном процессоре , а на самом оборудовании.
  • В дерево портированных программ (портов), за редкими исключениями, не включаются (или удаляются) программы с лицензиями, не разрешающими распространение в виде исходных кодов и в бинарном (скомпилированном) виде.

Разработка OpenBSD ведётся с помощью CVS . Для частичной компенсации неудобств, связанных с использованием централизованной системы управления версиями файлов, поддерживается сеть зеркал . При этом существует от 5 декабря 2015 на Wayback Machine — полуофициальное дерево портов, находящихся в состоянии разработки, располагающееся на GitHub . Также на GitHub имеются зеркала CVS-репозиториев.

Собственные API

Перечисленные ниже технологии активно используются в кодовой базе OpenBSD. На сайте проекта поддерживается от 9 сентября 2016 на Wayback Machine с указанием авторов.

  • API для аутентификации ; изначально разработан в рамках проекта BSDi , на данный момент поддерживается только в OpenBSD.
  • imsg API для программ с разделением привилегий между процессами, используется во многих субпроектах OpenBSD.
  • pledge /unveil — механизм самоограничения процессами своих возможностей, близкий по духу к Seccomp .
  • strlcat/strlcpy — получивший широкое распространение за пределами OpenBSD API для работы с C-строками , помогающий избегать типичных для strcat/strcpy проблем с переполнением буфера.

Совместимость с оборудованием

Поддерживаемые платформы и устройства перечислены в документе OpenBSD Supported Platforms Notes. Другие конфигурации также могут работать, но пока ещё не были протестированы или документированы. Списки поддерживаемых идентификаторов устройств доступны в стороннем репозитории.

В 2020 году был представлен новый проект для автоматического сбора информации о протестированных конфигурациях оборудования.

Финансирование

В 2003 году финансирование со стороны DARPA было прекращено. Основным источником средств для поддержания жизнедеятельности проекта становятся индивидуальные пожертвования; как в денежной форме, так и в виде приобретения оборудования или транспортных билетов для разработчиков.

Для решения проблемы с пожертвованиями от юридических лиц 26 апреля 2007 года создана некоммерческая организация — (OpenBSD Foundation). В отличие от многих других подобных организаций, фонд OpenBSD не влияет на принимаемые проектом решения и, за отдельным исключением , не выступает от его имени.

17 января 2014 года проект оказался под угрозой закрытия из-за того, что у Тео де Раадта, использующего для OpenBSD огромный «зоопарк железа» у себя дома, накопилась значительная задолженность за электроэнергию, эквивалентная $20 000, в связи с чем он опубликовал письмо с просьбой о помощи . Спонсор из числа Bitcoin -богачей нашёлся буквально через 2 дня сразу после того, как ссылку опубликовали на IRC -канале #bitcoin-assets . Румынский предприниматель Мирча Попеску сообщил, что готов пожертвовать сразу всю необходимую сумму .

На данный момент именно OpenBSD Foundation финансово поддерживает инфраструктуру проекта, а также проведение хакатонов .

См. также

Примечания

  1. де Раадт Т. — 2023.
  2. (англ.)
  3. . Дата обращения: 23 июня 2018. 23 июня 2018 года.
  4. . Дата обращения: 23 июня 2018. 23 июня 2018 года.
  5. . Дата обращения: 23 июня 2018. 23 июня 2018 года.
  6. . Дата обращения: 23 июня 2018. 23 июня 2018 года.
  7. . Дата обращения: 1 октября 2006. 7 июля 2013 года.
  8. . Дата обращения: 23 июня 2018. 23 июня 2018 года.
  9. Дата обращения: 1 октября 2006. 14 октября 2017 года.
  10. . Дата обращения: 1 октября 2006. 23 июня 2018 года.
  11. . Дата обращения: 1 октября 2006. 27 ноября 2015 года.
  12. . Дата обращения: 23 июня 2018. 23 июня 2018 года.
  13. . Дата обращения: 23 июня 2018. 23 июня 2018 года.
  14. . Дата обращения: 12 ноября 2013. Архивировано из 19 мая 2014 года.
  15. . Дата обращения: 4 мая 2016. 27 июня 2018 года.
  16. (англ.) . undeadly.org. Дата обращения: 24 ноября 2017. 1 декабря 2017 года.
  17. . Дата обращения: 4 мая 2016. 14 марта 2014 года.
  18. . Дата обращения: 4 мая 2016. 4 июня 2016 года.
  19. . Дата обращения: 1 октября 2006. 24 сентября 2006 года.
  20. . Дата обращения: 1 октября 2006. 7 декабря 2010 года.
  21. . Дата обращения: 1 октября 2006. 24 сентября 2006 года.
  22. . Дата обращения: 1 октября 2006. 12 октября 2006 года.
  23. . Дата обращения: 23 октября 2020. 10 апреля 2006 года.
  24. . Дата обращения: 1 октября 2006. 4 октября 2006 года.
  25. . Дата обращения: 6 июня 2011. Архивировано из 26 апреля 2011 года.
  26. . Дата обращения: 6 июня 2011. Архивировано из 26 апреля 2011 года.
  27. . Дата обращения: 1 октября 2006. 1 октября 2006 года.
  28. . Дата обращения: 1 октября 2006. 1 октября 2006 года.
  29. . Дата обращения: 17 февраля 2013. 9 марта 2013 года.
  30. . Дата обращения: 20 октября 2013. Архивировано из 24 ноября 2013 года.
  31. . Дата обращения: 6 сентября 2019. 1 сентября 2019 года.
  32. . GitHub. Дата обращения: 24 ноября 2017. 25 июля 2017 года.
  33. . man.openbsd.org. Дата обращения: 24 ноября 2017. 1 декабря 2017 года.
  34. . man.openbsd.org. Дата обращения: 24 ноября 2017. 29 ноября 2017 года.
  35. . man.openbsd.org. Дата обращения: 3 ноября 2018. 3 ноября 2018 года.
  36. . OpenBSD Foundation. Дата обращения: 14 июля 2020. 9 июля 2020 года.
  37. . BSD Hardware Project. Дата обращения: 14 июля 2020. 24 февраля 2021 года.
  38. . BSD Hardware Project. Дата обращения: 14 июля 2020. 1 ноября 2020 года.
  39. . Дата обращения: 4 мая 2016. 15 марта 2014 года.
  40. . Дата обращения: 4 мая 2016. 8 мая 2014 года.
  41. . Дата обращения: 4 мая 2016. 28 ноября 2015 года.
  42. . Дата обращения: 20 января 2014. 19 января 2014 года.
  43. Илья Сименко. . Хабрахабр (17 января 2014). Дата обращения: 2 января 2017. 7 августа 2016 года.
  44. . Дата обращения: 20 января 2014. Архивировано из 23 января 2014 года.
  45. . Дата обращения: 20 января 2014. Архивировано из 23 января 2014 года.
  46. Анатолий Ализар. . Хабрахабр (20 января 2014). Дата обращения: 2 января 2017. 7 августа 2016 года.

Ссылки

  • (англ.) — официальный сайт OpenBSD
  • от 7 апреля 2006 на Wayback Machine — официальный блог разработчиков OpenBSD и не только
  • от 12 ноября 2013 на Wayback Machine на сайте
Дополнительная информация
  • от 25 декабря 2014 на Wayback Machine
  • на основе с подробностями о зависимостях
  • от 2 января 2014 на Wayback Machine на основе истории изменений в CVS
Источник —

Same as OpenBSD