OpenBSD: интервью с Вячеславом Воронцовым
Не в то время и не в том формате, но мы это сделали! Если хотя-бы слышали слово «OpenBSD» — стоит прочитать и посмотреть.
Подготовка
Изначально мы планировали собраться большой компанией, чтобы я смог отснять вживую «ярких представителей российского сообщества OpenBSD», вместе с их «battle stations» — рабочими машинами с OpenBSD.
Не получилось, поскольку у ребят случился корпоратив.
Затем хотели устроить запись в Сheckpoint (самое большое Анти-Кафе в Москве), но не учли, что дело происходило в пятницу и абсолютно все залы оказались забронированы до позднего вечера.
Попытались найти свободную студию подкастов в центре — после шестого отказа, глядя на ярко-красную толстовку Вячеслава и отличную погоду за окном, я решил что есть вариант интереснее.
мы взяли экшн-камеру и просто пошли гулять по центру Москвы.
Так появилось это удивительное интервью.
Камера
Она была куплена за день до съемок, поэтому наши удивленные лица в первом кадре, напоминающие знаменитую сцену из «Шрека» — подлинник, поскольку на тот момент я еще очень слабо разбирался с ее управлением.
Конечно же случился эпический фейл — я выбрал неверный тип съемки и мы умудрились записать интервью в формате 360-видео.
Это когда камера снимает все вокруг и получается динамическая картинка, которую можно перемещать прямо в записи.
Насколько мне известно, это первое интервью на технические темы, снятое в таком формате.
К сожалению возникли определенные сложности с монтажом такого видео и последующей заливкой на платформы видеохостингов, поэтому 360-версия будет позже (когда разберемся с технологиями) и видимо на отдельном сайте со специальным плеером.
Пока выложили тестовую запись, по которой можно оценить как это будет выглядеть:
Комментарии причастных
Поскольку тема сложная, раскрыть ее сразу правильно, без технических ошибок гуляя с камерой по Москве было мало реально.
Тем более что дублей у нас не было.
Так что я сделал предварительную версию ролика, которую выдал членам сообщества OpenBSD в России — для оценки и комментариев.
Отобранные комментарии затем причесал и добавил в финальный монтаж, для более глубокого раскрытия темы.
Видео
Собственно сам ролик, выложенный на четыре платформы.
https://plvideo.ru/watch?v=awsMlyJWtVtU
Интервью
Ниже представлена «литературная расшифровка» интервью с Вячеславом, разумеется сильно облагороженная. Поскольку «филфаков» мы не заканчивали — общаемся в жизни далеко не на литературном русском.
с Вячеславом мы общаемся уже давно, еще автор сам много лет использует OpenBSD, хотя и в куда меньших масштабах.
Поэтому у интервью несколько вольный стиль изложения и добавлены собственные комментарии — автор тоже в теме и в OpenBSD далеко не гость ;)
Для выделения реплик я использовал наши ники в сети:
Ну, в общем всех приветствую, мои дорогие телезрители и телеслушатели!Сегодня у нас в гостях «последний из могикан»..
Краткая справка для непричастных
OpenBSD — единственная операционная система на планете, которая сфокусирована вокруг темы компьютерной безопасности.
Это очень очень редкая система и ваш шанс встретить живого пользователя OpenBSD на улице примерно равен шансу встретиться с космонавтом.
Он же — главный по OpenBSD по Москве и области. Который сейчас кратко представится и расскажет о себе.
В Телеграм многие меня знают как NICKNAME.TXT
, особенно если вы связаны с «Байкалом», OpenBSD или «Эльбрусом» — тем самым невиданным зверем.
Так что, как в принципе можно догадаться, интересы мои почему-то в каких-то очень нишевых и невиданных для широких масс областях.
Мультик
Тут вставлен «рекламно-стебный» мультик, созданный yzeek1 для сообщества OpenBSD, который к сожалению пришлось немного порезать из-за цензуры (особенно концовку).
Тут можно насладиться полной версией:
Среда обитания
На самом деле OpenBSD достаточно распространена в энтерпрайзе, правда об этом никто не помнит.
Но если копнуть, то всегда найдётся одна или две машинки или виртуалочки, когда-то кем-то развёрнутые и забытые.
А забытые они потому, что продолжают работать!
Достаточно много пользователей.
Много у нас в России собственно говоря даже официальных разработчиков с commit-битами и ментейнеров (maintainer) пакетов.
То есть борзость характера Тео (основатель проекта OpenBSD) на Россию не распространяется?
Ну, скажем так, она нам близка в какой-то мере.
Особенно по сравнению с остальными проектами, переросшими определенные размеры. Ну я про большие проекты, где уже начинаются различные требования к коммитерам (легкий намек на линукс).
Реальное применение
А скажи тогда такую вещь, реальное применение OpenBSD всё-таки где сейчас больше?
По сути дела, OpenBSD сейчас это то, чем в каком-то моральном и идеологическом плане в моём представлении была вся опенсорс-сцена в нулевые и десятые года.
У тебя есть операционная система, которая просто работает. То есть она работает, в ней есть программное обеспечение.
Если чего-то не хватает, то можешь попробовать это собрать и с высокой долей вероятностью оно соберётся.
Комментарий #1
У нас вся инфраструктура построена на OpenBSD, ИТ-специалисты используют ее на рабочих станциях.
5 физических серверов, из них на 4 используется vmd для запуска виртуальных машин. На серверах развернуты инфраструктурные сервисы и облачное решение (SaaS), которое мы клиентам продаем.
Антон Касимов, «Радиум-ИТ» https://radium-it.ru
Практика коммитов
Расскажи про реальную практику добавления коммитов в ядро и софт.
Как это вообще у вас происходит?
Это кстати хороший вопрос, потому что я как человек, который отправил аж два, а может быть даже три.. три патча (раз, два, три).
Но два точно приняли в ядро OpenBSD — могу рассказать про этот процесс.
Байкал
И при этом ты одновременно разработчик «Байкала», как я понимаю?
Не не, к «Байкалу» я имею отношение только как пользователь.
У меня дома стоит «Байкал» в качестве рабочей станции, под управлением конечно же OpenBSD.
Мало того, сайт openbsd.org.ru, который стоит на моём столе, потому что «поддиванные» сервера — самые лучшие, он тоже работает на «Байкале». И конечно же на OpenBSD!
Чтобы вы понимали и оценили, «Байкал» — продукция компании Baikal Electronics, это отечественный процессор, с определёнными проблемами со средствами разработки.
Оно там такое, в полу-рабочем состоянии. И в основном это всё используется для оборонки.
То есть как бы OpenBSD на такой машине, ну-у это прям нечто.
По поводу Байкала я тебя должен поправить, видимо путаешь с Эльбрусом. «Эльбрус» — для оборонки.
А Байкал это тоже отечественный процессор, но более открытый. И он основан на архитектуре ARM, поэтому там с тулингом (средствами разработки) намного проще.
По сути дела мне даже не сильно много пришлось править. Взял ARM64-версию OpenBSD, поставил её на диск.
Ну, там немножечко пришлось пошаманить, отправить один патчик в ядро. Который приняли кстати, в отличие от линукса.
Тео и Россия
Слушай, а когда ты всё это делал?
Это всё было году.. наверное в двадцать третьем (2023).
Ну то есть уже после всех событий. И что, вопросов не было?
Позиция проекта OpenBSD и Teo де Радта, который сам себя называет benevolent dictator (пожизненный диктатор) достаточно простая.
OpenBSD — его личный проект, который стоит у него в подвале.
Все остальные просто присылают патчи, по желанию. Если код его устраивает — он добавляется в систему.
Чтобы вы понимали, в линуксе была история не так давно.
Ну как не так давно — как раз после событий на Украине.
По-тихому удалили контактные данные всех российских разработчиков, особенно связанных со всякими «Яндексами» и подобными организациями с явным государственным участием.
Задним числом и в обход всех необходимых процедур и согласований.
Оказалось, что Линус Торвальдс неровно дышит к России и не очень её любит. Как он там сказал?
Я финн в первую очередь, потом всё остальное.
А тут получается целая операционная система, открытая, где клали с пробором на все эти санкции.
Добавление коммита
Возвращаясь к вопросу как добавить что-то в OpenBSD, который звучал.
Процесс добавления достаточно прост:
ты что-то поправил у себя в ядре или в каком-то ПО, выделил штатными средствами операционной системы в банальный текстовый патч и отправил его по старинке в список рассылки.
Для тех кто не в курсе, рассылка (mailing list) это что-то типа общего почтового ящика, с дополнительными удобствами для владельца.
Отправляешь патч с описанием, его рассматривают. Подходит он или не подходит — будет обратная связь.
История с Wine
По поводу совместимости и проблем с софтом.
Когда я ещё на ЛОРе общался с ребятами — выкладывал статью про виртуализацию на OpenBSD и заводил там Skype.
И мне кто-то сказал, что есть проблема с Wine, что вроде как невозможно запустить Wine на OpenBSD.
Начал копать и оказалось, что действительно проблема есть.
Причём поддержку выпилили как-то хитро — в какой-то из старых версий и так, что из-за новых настроек безопасности реализовать поддержку Wine в OpenBSD теперь фактически нельзя.
По поводу Wine хочется пошутить:
проблемы нет, потому что нет Wine и нет проблемы.
Почему его нет это вопрос сложный и многофакторный.
Во-первых, OpenBSD это система, которая декларирует, что её приоритет — безопасность.
Причём безопасность на опережение, из коробки.
Поэтому в системе очень много для кого-то спорных, для кого-то прогрессивных решений в этой сфере, которые нуждаются в поддержке со стороны конечного ПО.
Потому что линукс популярен и многие люди воспринимают стандарты линукса как стандарты вообще.
Поэтому очень много так называемых «линуксизмов».
Например есть софт, который абсолютно искренне написан как переносимый, но при этом, по незнанию авторов, «приколочен гвоздями» к ядрам, подходам и функционалу именно линукса.
Ужасы портирования
Тут стоит добавить, что все мои истории с портированием различных эмуляторов — живой пример словам Вячеслава.
Даже портирование с Linux на куда более поддерживаемую FreeBSD немедленно подсвечивает множество «прибитых гвоздями» вещей, которые по идее должны быть кроссплатформенными.
Сокеты, работа с файлами, с сетью.
Причём это всё поменялось относительно недавно.
Изучая заголовочные файлы ядра Linux, увидел что большинство ломающих совместимость изменений приходятся на 2010-15 годы, не так уж давно. Получается что пошёл какой-то отъезд от всех стандартов.
Совместимость
А как в OpenBSD с этим делом? Тео держит марку?
Ну, во-первых конечно Тео держит марку.
Опять же из-за различных security-фишек что-то да, что-то надо патчить руками. Но в духе настоящего опенсорса:
И патчится это всё достаточно быстро.
Поэтому порты и пакеты, пакетная база дополнительного ПО достаточно быстро обновляется, освежается и патчится.
Комментарий #2
OpenBSD не хватает некоторых системных функций для работы с файлами, поэтому многие NPM-библиотеки не работают правильно.
Которые, например, определяют изменения в файлах а раздача контента веб-серверами не так эффективна как в Linux.
Антон Касимов, «Радиум-ИТ» https://radium-it.ru
OpenBSD как платформа
Задам интересный вопрос насчёт сферы применения.
Для меня в свое время оказалось большим сюрпризом, что OpenBSD часто используется в качестве платформы для конечных устройств, особенно сетевых файрволлов и IDS.
То есть есть некое решение — программно-аппаратный комплекс, которое строится на базе OpenBSD.
А в российских реалиях кто-нибудь таким занимается?
Не могу сейчас прямо вспомнить каких-то конкретных названий, потому что встречал лично только внутренние системы и решения, когда местные админы или разработчики что-то подняли, что-то сделали на базе OpenBSD.
Но знаю пару компаний, которые закладывались на OpenBSD как на основной стек, не знаю как это правильно назвать.
В основном это связано с вопросами безопасности.
Хочешь сказать, что даже пользовательские рабочие места на OpenBSD?
С пользовательскими рабочими местами сложно, потому что всегда остаются телефоны, которые все очень активно используют.
Про рабочие места не скажу — у нас в России.
За рубежом, насколько знаю, такие «success story» были.
У нас слышал только про решения для безопасности, которые делаются в виде программно-аппаратного комплекса.
Прямо девайс поставляется, который ставится в серверную стойку и внутри OpenBSD только в качестве платформы.
Встраиваемые системы
Кстати, у тебя же был наверное опыт использования OpenBSD для embedded-разработки?
Arduino какие-нибудь?
Конкретно Arduino — нет, но было достаточно много других одноплатников.
Это например «малинка» — Raspberry Pi, различные китайские или какой-нибудь Nano Pi.
Ну Nano Pi это конечно круто. Он совсем мелкий же.
Был отечественный Repka Pi, это наш так сказать, ответ «малинке».
Опять же есть питерские, питерско-китайские ребятки «Полбир» (РВ Полярный Медведь).
На самом деле с одноплатниками ситуация достаточно простая.
Главное не забыть, что это скажем так.. ну как мне кажется, с одноплатниками появилась достаточно вредная практика, когда ты просто накатываешь образ на SD-карту и вставляешь.
Записав тот же самый U-Boot, это не знаю как сказать — аналог BIOS, можно с ним работать полноценно, поставить операционку через USB, накатить на неё сверху софт какой нужно.
Ну это ты в плане безопасности рассказываешь, что есть варианты обхода.
Понимаешь, мы с тобой — представители старого поколения, молодёжь так глубоко не копает.
Тут как дискета выглядит и то уже все забыли.
Поэтому с точки зрения безопасности это как бы легко, но для нас.
Вот вы услышали реальный кейс применения.
Система полностью и целиком открытая, система очень маленькая, её кодовая база наверное раза в два меньше чем даже у FreeBSD.
C линуксом вообще не сравнить.
И всё это готово для использования на десктопе, для встраивания, для серверов. Кстати про сервера.
Знаменитый веб-сервер
Этот знаменитый OpenBSD-шный веб-сервер — он все ещё в деле, его используют?
Так понимаю ты говоришь про httpd?
Ну да, они же его со старого Apache 1.x форкнули и дальше сами поддерживали. Куча патчей и всё такое.
Нет, это уже немножко другая история. Текущая версия httpd
никакого отношение к Apache уже не имеет.
Ну кроме названия httpd
— название бинаря.
Очень маленький, очень лёгкий.
Комментарий #3
httpd
в OpenBSD никогда не имел отношения к Apache.
Он был написан с нуля немецкими разработчиками OpenBSD. Один из ключевых авторов Reyk Floeter.
Kirill Bychkov, kirby@openbsd.org
Безопасность
По поводу дырок ничего не скажу, потому что от профессиональной безопасности достаточно далёк.
Но есть люди, которые критикуют OpenBSD за его безопасность, что типа она не настоящая.
А есть те, кто выступают за неё.
Ты наверное видел — выложил ссылку на сайт (ныне не работает), где собран развернутый список претензий к OpenBSD в плане безопасности.
Там ещё логотип OpenBSD с прилепленным клоунским носом.
Почитав это дело, могу сказать что это претензии «одного профессора к другому».
К обывателю и его проблемам это всё отношения не имеет, ну чтобы вы не испугались и не убежали в ужасе.
Для сравнения с тем же линуксом, можно открыть какой-нибудь GitHub Advisory Database и просто охереть — я его как фильм ужасов теперь смотрю.
OpenBSD и C++
Ну коль уж ты используешь OpenBSD постоянно на десктопе и сам патчи писал, наверное в курсе за инструментарий для разработки?
Допустим надо развернуть инструменты разработки — весь тулчейн для скажем разработчика на C++.
Насколько это сложно? Сильно сложнее чем в линуксе?
Что подразумевается под «развернуть»?
Начнём с того, что в OpenBSD как и у остальных *BSD есть такое понятие как «base system» (база).
Это некий законченный набор софта, который изначально есть в любой установленной системе.
Если Linux это ядро плюс набор пакетов со стороны, то во всех BSD-системах, что во FreeBSD, что в NetBSD подразумевается что набор закончен.
В принципе туда же входит и clang
и тот же vi
и местный клон Emacs под названием mg.
Ну, от Тео можно было ожидать, что тут скажешь.
Проблематика такая, что судя по статьям, народ активно хочет подсветку синтаксиса и использовать например lang-сервер.
Даже для C++.
Так понимаю, что вся эта радость в OpenBSD не заводится?
Слушай, ну подсветка синтаксиса зависит от IDE (среды разработки). IDE ставятся из пакетов достаточно спокойно.
Lang-сервера, скажу честно, поднимать не приходилось, потому что я всё-таки по основному профилю работы ближе к чему-то админствующему, поэтому и правки системы у меня более мелкие.
Я в основном пользуюсь Vim, по старинке.
Тогда добавлю, что есть проблемы с «большими» профессиональными средами разработки. Даже на FreeBSD удалось поднять ту же IntelliJ Idea с очень большим упорством.
Патчи нужны.
VSCode и соответственно электрон (Electron) не заводятся.
Update: уже заводятся, работы идут.
Поддержку электрона по-моему даже лично Тео зарезал, cказав что-то вроде: «не канонично, не православно, не надо такое использовать».
Поэтому весь ваш выбор это vim
или что-то такое, простое.
А clang кстати какой сейчас у вас?
Но это в базе, в пакетах свежее, да.
Кстати, вы же тоже переехали на clang
? GCC уже не используется и база собирается clang
?
GCC
используется только для ПО, которое почему-то с помощью clang
не собирается.
Но это в основном что-то прям мега-старое или мега-редкое, которое при этом до сих пор поддерживается.
Ну на самом деле я бы добавил, что это скорее «мега-криво написанное».
Когда перелопачивал эмуляторы, постоянно натыкался, что какие-то части в коде были завязаны на отключаемые опции GCC, которые выходят за рамки стандартов языка, являются устаревшим поведением компилятора и так далее.
А в clang
этого нет, это более молодой тулчейн.
Кстати, если clang девятнадцатый, LLVM ведь тоже девятнадцатый?
OpenBSD и PostgreSQL
PostgreSQL у вас наверное цветет и пахнет?
Ну PostgreSQL конечно есть — пострес, мускуль (MySQL), все эти штуки, но ситуация та же самая:
Я к тому что например завести PostgreSQL на неподдерживаемой системе не так-то просто.
Объем кодовой базы у этого проекта — дай бог разобраться.
Есть практики использования и соответственно на совсем детские ошибки с кодировками или системными лимитами вы уже не попадёте.
Что называется «бери да пользуйся».
OpenBSD в Москве
Как у вас в Москве с OpenBSD дела обстоят?
В Москве с OpenBSD дела обстоят хорошо, как я уже говорил.
У нас здесь достаточно много (по меркам неподготовленного разума) даже разработчиков.
Мало того, один из разработчиков OpenBSD даже переехал в Россию!
Это случаем не тот самый сбежавший Сноуден?
Он, как мне кажется человек, гораздо более близкий к линуксу.
Ну я почитал его материалы, интервью. И понял, что он был лишь пользователем, не разработчиком ни разу.
Ну да, использовал какие-то специфические штуки за время работы в спецслужбах.
Но лишь как пользователь, сам он ведь их не создавал, не знает как эти штуки на самом деле работают.
Если вернуться к теме OpenBSD в Москве, мы стараемся проводить что-то типа посиделок и сборов пользователей.
И приглашаем многих разработчиков OpenBSD.
Ну, активных не считал, но давай примерно прикину.
Группу что ты видел — она только для русскоязычных пользователей, около 500 человек только в Телегаме.
А в Москве, из тех кто выразил желание активно участвовать — человек 30.
Для столь редкой системы это очень много.
Это люди, которые явно не просто так подписались, они не прохожие, не гости — а те, кто эту систему использует каждый день.
Стоит объяснить, что по OpenBSD все руководства, статьи, все учебные материалы, вообще все материалы — строго только на английском.
Материалов на русском языке по OpenBSD исчезающе мало. .
Перевод документации
Есть один большой проект, который существует уже много лет:
Начался он еще «старшим поколением» разработчиков, им же до сих пор продолжается.
Находится на Github, кривой редирект на него стоит на домене openbsd.ru. Собственно люди когда-то с этого домена его и начали.
Там переведена вся официальная документация, которая поддерживается в актуальном состоянии.
Так что если для кого-то английский язык является проблемой, можно зайти и посмотреть, почитать.
Мы пытались с одним товарищем такое сделать для NetBSD, году еще в 2015.
Скажу честно, работа неподъёмная — очень-очень много материалов, которые надо переводить, причем технически сложных.
Так что мы побились лбом где-то с годик и забили.
Но у вас насколько я понимаю, ситуация сильно лучше?
это всё потому, что OpenBSD это жизнь, она меняет самого человека.
Кому оно надо
По поводу OpenBSD и опенсорса в целом.
Я много раз пытался объяснять людям зачем нужны BSD-системы и вообще UNIX. Потому что есть глобальное непонимание, что ключевые знания о компьютерах и ОС может дать только UNIX.
Как устроена операционная система, как она работает, как работает память, процессор, как происходит взаимодействие между процессами — понимание всего этого может дать только UNIX.
Если вы будете работать в одной винде — ничего не узнаете.
Это всё скрыто даже от разработчиков под слоями API. И лишь только открытые системы позволят действительно разобраться.
А небольшие, компактные системы вроде OpenBSD дадут возможность разобраться глубже, потому что вы соприкоснётесь с низким уровнем, с деталями гораздо быстрее и в гораздо большем объёме.
Что скажешь на эту замечательную тему?
На эту замечательную тему скажу, что для меня до сих пор остаётся большим секретом, почему о плюсах опенсорса, о его необходимости гораздо проще объяснить людям, не связанным с технологиями.
Потому что нигде я не видел больших отрицателей опенсорса, чем среди технарей.
Вы знаете, это все по большому счёту последствия захвата рынка операционных систем в России Майкрософтом и закрытыми проприетарными решениями, который случился в девяностые. С одновременным оттоком целого поколения IT-специалистов зарубеж.
Возникла натуральная яма — провал в компетенциях, который до сих пор восполнить проблематично.
Я это вижу по индустрии разработки ПО, а вы можете наблюдать на улицах городов. Например эти ездящие роботы появились у нас совсем недавно, хотя сама технология уже достаточно старая.
Получается, что у нас до сих пор профильное техническое образование даже близко несопоставимо с серьёзным западным, причем именно по CS (Computer Science)-специальностям.
У нас просто не учат многим вещам, которые нужны серьёзному специалисту:
разработка компиляторов, операционных систем, алгоритмы.
То есть то что лежит, например, в основе СУБД — вы просто так в этом не разберётесь, самостоятельно.
А все специалисты, которые имели такие знания, фактически свалили из страны в девяностые.
Так что полностью подтверждаю высказанные мысли.
Действительно, ситуация вот такая.
Постороннему человеку, даже студенту объяснять матчасть зачастую проще, чем «матёрому специалисту» по проприетарным технологиям, с WinFAQ какого-нибудь.
OpenBSD и закон
Cкажи, у вас кто-нибудь пытался юридическую сторону вопроса как-то оформить?
Ну то есть, ты же знаешь наверное про эту историю с опенсорсом в России — что с точки зрения закона открытые лицензии у нас не действуют?
Все эти GPL3, LGPL и так далее — формально не применимы?
Была целая серия статей на Хабре на эту тему.
А у вас кто-нибудь озадачивался этим?
Собственно говоря, во многом люди приходят к BSD и к пермиссивным лицензиям, потому что это лицензии, от которых у тебя не болит голова.
Ты просто взял и написал код, который тебе нужен.
Или кто-то его написал, а ты пропачил.
Накладываешь пермиссивную лицензию и по сути дела все — ты про него забываешь.
Не нужно возиться с лицензиями и лицензированием: кто там что нарушил, кто там что не нарушил.
Естественно многих это не устраивает.
Из стана любителей GPL постоянно раздаются «вскукареки», что бздшники — «подстилки корпоративные».
А по поводу юридического оформления, ну достаточно давно зреет мысль сделать некоммерческую организацию, которая будет не то чтобы представлять — как-то продвигать пермиссивные лицензии.
Но как бы всё упирается в одно.
Это не находится в какой-то приоритетной зоне, потому что.. ну а зачем?
Тут надо было добавить сразу, что BSD-лицензия на самом деле гораздо более открытая чем GPL. Чем пользуются крупные компании, используя исходный код BSD-систем в своих разработках.
Кодовую базу можно как угодно менять, вплоть до того, что вы даже не обязаны упоминать оригинальных авторов.
То есть вообще похер всем.
Получается что с точки зрения лицензионных заморочек, OpenBSD для корпоративного применения подходит гораздо лучше чем любые Linux, как бы смешно это не звучало.
Первое знакомство
Расскажи тогда как ты познакомился с ОpenBSD, как ты пришёл к этой системе.
Да в принципе, думаю достаточно стандартная история для людей моего возраста.
Родился я в восемьдесят пятом году (1985).
Когда-то давно, каким-то неведомым образом в моём доме и детстве материализовался советский клон ZX Spectrum.
И как говорится всё завертелось.
Потом естественно были — по мере облегчения доступности, всякие там досы (DOS), маздаи девяностопятые (Windows 95).
Пока наконец, в примерно девяносто девятом (1999) или даже нулевом году (2000), каким-то мистическим образом в моей жизни не материализовалась книга.
В английском оригинале она звучит что-то типа Unix Unleashed.
И с ней в комплекте шёл диск с каким-то древним на текущий момент RedHat Linux.
Но не уже помню была ли там и OpenBSD.
RedHat был пятый, FreeBSD была четвёртая.
Так получается ты моложе меня.
Я восемьдесят третьего года (1983), мне было в 2003м уже 20, был вполне взрослым.
А ты познакомился совсем подростком, получается?
В начале это был, как и у многих в России, Linux.
Ну кстати да, с этим подтверждаю.
А ты в фидошке тоже был получается?
У меня даже нода была. И пищащий модем, трещащий по ночам.
Шпрот поди какой-нибудь?
Ну вначале я начинал с Lucent, ещё поинтом, но как бы это же вендовый софтмодем (soft modem).
Ну а в OpenDSD попал опять же случайно — кто-то дал диск на одной тусовке. Я её попробовал, не понял, скажу честно, с первого раза.
Но тогда она была немножко другой системой.
Особенности инсталлятора
Признавайся, с какой попытки её установил?
Слушай, ну установилась она достаточно просто.
В общем мне в этом плане было проще:
Если ставить операционку — то по новой!
Чтобы вы понимали контекст, в OpenBSD инсталлятор это нечто — что-то, с чем-то.
До последних дней и последних времён, там надо было указывать вручную количество цилиндров на диске.
Из-за этих заморочек я убил в свое время очень много разметок (MBR), потому что у меня всегда была куча операционных систем на компьютерах.
И вот с OpenBSD, итогом первой попытки её установить была разбитая об стену клавиатура.
Настолько дикой жестью это когда-то было.
Сейчас конечно сильно проще, но в те времена это был ад.
Ну вот, получается, что мы с тех самых лет всё это дело используем.
Группы по интересам
Слушай, а был же форум «лисяра», ещё что-то бсдшное?
«Лисяра», насколько я помню, существует до сих пор.
Потом еще был sysadmins.ru, зелёный такой.
Про sysadmins.ru тоже не скажу, но думаю ты и сам подтвердишь, что последние годы вся жизнь ушла в Telegram, скажем так.
Да, я честно говоря просто с админством закончил примерно к 2005 году. И с тех лет в основном занимаюсь разработкой.
Поэтому сисадминские форумы не смотрел уже очень давно.
«Лисяра» — ну просто он попадал в поисковую выдачу, что там такой популярный форум для бэсдшников и постоянно всплывают какие-то сложные вещи по этим системам.
А в Телеграм видел группу по FreeBSD, русскоязычную, что-то вроде FreeBSD_ru и твою.
Больше никого там не видел по этим системам.
Есть ещё «флудилка», но это отдельно.
Мировое комьюнити
Кстати два других крупных OpenBSD-комьюнити это бразильцы и китайцы.
В Бразилии очень сильное OpenBSD-коммьюнити, достаточно много строчек в так называемом «саппорт-файле» из этой страны.
На сайте OpenBSD есть раздел, куда люди могут добавиться, если они оказывают услуги, связанные с OpenBSD и Бразилия там достаточно плотненько представлена.
Ну вот, я честно говоря не то что не знал — даже не подозревал, что в Бразилии может быть популярна такая система.
Что-то уникальное.
Коммерческий интерес
Насколько понимаю, в России коммерческого интереса, чтобы к тебе обращались за поддержкой по OpenBSD — не особо?
Скажем так, я и не особо его ищу.
И люди как бы не особо вообще любят проявлять коммерческий интерес к чему-то, как бы так сказать.
Понимаю, но все же расскажу как обычно это происходит.
Есть интерес к системе из-за ее повышенной безопасности, но нет специалистов, которые смогут что-то настроить на ней.
Ко мне на самом деле были подобные обращения, но поскольку я всё-таки разработчик а не сисадмин — не брался за такие задачи.
Но могу сказать, что тенденция есть и система интересна.
Если кому-то из читателей вдруг надо, то вот вам живой человек, за которым стоит сообщество специалистов, который по этой системе сможет подсказать и что-то сделать.
Как вкатиться в OpenBSD
Допустим есть человек с опытом администрирования линукса. И он хочет попробовать OpenBSD.
C чего ему лучше всего начать?
Начинать в принципе, как и в любой другой системе, начинать надо с того.. чтобы зайти на сайт проекта.
В первую очередь надо зайти на сайт, скачать установочный образ и попробовать поставить.
Возможно это мой негативный опыт, но заметил, что очень многие новички хотят чтобы.. ну у них нет тяги и какого-то огонька чтобы попробовать самим.
К сожалению так не работает, нужно пробовать самому.
Не бояться спрашивать, не бояться читать документацию — в OpenBSD она одна из лучших, как считается, там достаточно подробно все описано.
Ну и как говорится — приходите, cпрашивайте.
Отношение к новичкам
А как вообще твоё сообщество относится к новичкам?
Ну я это с подвохом конечно спрашиваю, потому что прекрасно понимаю что такое например ЛОР и как там относятся ко всем вообще, включая опытных профессионалов.
Но как говорится «кто с мечом к нам придёт — от меча и погибнет».
Поэтому всем адекватным мы рады, всем заходящим с острым желанием потроллить рады меньше.
Но это зависит от настроения и времени суток, да.
Но как бы, ребят поймите — ваши «детские» проблемы на самом деле мало кому интересны.
Писать сообщения из серии «ничего не работает, спасите-помогите, режут-убивают» — перестало работать везде, даже на StackOverflow.
И потом вы должны понимать, что всё-таки в OpenBSD с поддержкой оборудования не очень хорошо. А в большинстве случаев проблемы будут именно с ним.
И решить их через посты и сообщения мягко говоря — не очень просто.
Поэтому оборудование вам придётся подбирать специально под эту систему, исходя из опыта более просвещённых коллег.
Поддержка оборудования
Вот кстати, расскажи про это самое оборудование.
Ну с оборудованием на самом деле всё не так плохо.
Основная болевая точка, скажем так, это Wi-Fi, потому что его очень любят закрывать и никому не давать.
Написать драйвера, куда-нибудь их скинуть. А те же самые дата шиты (datasheets) — не предоставлять.
Но я могу от себя добавить, что проблема с WiFi-драйверами характерна вообще для всех открытых систем, даже для линукса.
Потому что сейчас это работает через специальные прошивки — такой специальный блоб (blob), который закачивается в карту в момент использования.
У меня например, установлено несколько систем и получается, что когда ноутбук засыпает в Windows и потом его перезагрузить даже не не в BSD, а в Linux — всё, WiFi-карта подыхает.
То же самое после переключения из линукса в FreeBSD.
Wifibox
Кстати, вам Wifibox не завезли еще?
Видимо надо рассказать, это не сильно давняя разработка.
В общем, через слой виртуализации запихивается Alpine Linux и внутри него крутятся линуксовые драйвера для WiFi-карты.
То есть физическая сетевая карта, WiFi-карта пробрасывается в виртуальную машину.
В этой виртуалке с линуксом работают уже нормальные драйвера, понимаете?
И весь этот сказочный цирк только ради стабильной работы WiFi. У меня на двух ноутбуках на FreeBSD оно работает вот так.
В OpenBSD наверное нет такого?
Потому что это вечная проблема, вечный конфликт:
исправлять следствие или причину.
То есть да, оно работает быстро и доступно.
Но ситуация такая же, тоже самое за что критикуют Wine:
вместо того чтобы писать приложение или драйвера, мы находим способ как запустить чужие закрытые или проблемные решения.
Вы кратко прослушали мнение о Wine со стороны OpenBSD-разработчиков, совпадающее с официальной позицией.
Виртуализация
По-моему даже Тео лично озвучивал, что всё это не нужно, потому что у нас теперь есть слой виртуализации — аналог KVM в Linux, да.
Он называется vmm.
Суть в том что все, кому нужно работать с альтернативными системами, должны просто использовать такую виртуализацию.
Но естественно использовать Windows в виртуальной машине это далеко не тоже самое, это работает гораздо медленнее.
Комментарий №4
Виртуализация для WiFi-карт в OpenBSD пока еще технически невозможна, поскольку vmm
не поддерживает передачу PCI-устройств внутрь виртуальной машины.
Видеокарты
По оборудованию.. ну с WiFi понятно. А что например c видеокартами?
С видео опять же есть открытые драйвера, то есть если карта от Intel или AMD — проблем не будет.
За нас всё сказал Линус Торвальдс:
Fuck you Nvidia и всё такое.
Тоже добавлю, что когда у меня последний раз был сбой этого проклятого блоба, а нет.. это было не у меня, это я выложил статью по Xfce4, по убиванию диалога открытия настроек при засыпании.
И в комментариях пошёл треш-угар.
Оказалось, что из-за NVIDIA и ее драйверов всё сыпется у людей, падает.
Так что, чтобы вы понимали, драйвера NVIDIA это проблема далеко не только BSD-системах.
у меня студия, где я монтирую видео, так даже там проблема с драйверами. Хотя там винды и официальные драйвера и современный ноутбук.
Тем не менее, даже там это проблема.
Вот, чтобы вы не удивлялись такому отношению к этой корпорации.
Bluetooth
И наверное третья, скажем так.. «особенность» поддержки оборудования, про которую стоит упомянуть:
Потому что он дыряв, его было некому, да и незачем поддерживать.
Ну, по мнению разработчиков.
Беспроводных наушников совсем недавно было — раз-два и обчёлся.
Может быть сейчас, с ростом популярности bluetooth найдутся люди, которые её добавят в OpenBSD.
Но пока что проблема решается обладателями bluetooth-наушников, причём на вполне официальном уровне — покупкой донгла от Creative, который вставляется в 3.5-разъем или в USB, уже сейчас не помню.
И уже этот донгл раздаёт WiFi, при этом с точки зрения системы это звуковая карта.
Добавлю от себя, что вся эта история с Bluetooth — нихера не простая даже в линуксе.
Я заводил bluetooth и в линуксе и в FreeBSD, скажу что это «цирк с конями» ещё тот.
Всё работает нестабильно, глючит, далеко не все оборудование поддерживается.
В общем, если вам оно такое надо — используйте венду или мак, потому что во всех остальных случаях это будет проблемой и достаточно большой.
Проблема с Giant Lock
Говорят, в OpenBSD сетевой стек медленный?
Вот кстати хорошо, что про «медленность» вспомнил. В OpenBSD есть пока серьёзная проблема, которую скрывать нет смысла.
Такая забытая технология, из прежних времён, да.
Тут стоит пояснить, что это актуально для мультипроцессорных и мульти ядерных систем, связано с механизмом параллельного выполнения.
Поэтому этот Giant Lock, его эффект проявляется далеко не всегда.
Если у вас длинная расчётная задача, то что он есть, что нет в системе — до одного места.
То есть это для ситуации, когда много подключений, много потоков, много процессов. И всё это нужно переключать на ходу.
Все же OpenBSD несколько далека от такого применения, так что думаю Giant Lock — не сильно большая проблема на практике.
Сетевой стек
Так что, сетевой стек говорят медленный?
Как говорится — «мне хватает».
То есть по тестам производительности, с заточенными под сеть решениями разница конечно есть, но это не какие-то порядки.
Не в десятки раз.
То есть да, в OpenBSD предельная возможность сети в большинстве случаев будет меньше.
А в плане поддержки оборудования — ну всякие там 10Гбит и выше интерфейсы вполне поддерживаются.
Файрволл
Авторы OpenBSD создали один из самых навороченных файрволлов, которые только есть на свете.
pf он по-моему называется? «Packet filter»?
То есть это самый навороченный, самый продвинутый файрволл из всех.
И в общем-то эта тема насчёт медленности стека, ну как вам сказать, сетевой стек — сложная штука.
Там есть, например фрагментация пакетов, есть защита от всевозможных хитрых атак.
Поэтому то что вам кажется медленно, на самом деле зачастую осмыслено, потому что в OpenBSD гораздо больше проверок.
Про SSL
Кстати эти же товарищи запилили, по сути, весь OpenSSL и современный LibreSSL.
И BoringSSL по-моему тоже они?
BoringSSL это уже Google.
Собственно они же его сейчас и убили, в итоге. По своей давней Google-традиции бросать собственные проекты.
Да, у Гугла уже целое кладбище.
Кстати по поводу проектов, которые зародились в OpenBSD.
Так сказать — любимый укор линуксоидов и всех остальных, кто пытается говорить «не нужно».
Банальный пример — OpenSSH.
То, чем заходят на 99,9% серверов в современном мире — проект OpenBSD.
tmux (terminal multiplexer), который используется даже в инсталляторе у RedHat, CentOS, Fedora и прочего — проект OpenBSD.
Уже упомянутый LiberSSL и множество других проектов.
Даже банальный libc из OpenBSD, пусть и с сильными переработками — Bionic из Андроида.
OpenBSD и мировые корпорации
Кстати, что скажешь насчёт реального использования OpenBSD мировыми корпорациями?
У нас в группе был эксперимент:
один из подписчиков лазил по текстам лицензионных соглашений (License Agreement) разных корпораций, к выпускаемым продуктам.
И получилось, что упоминание OpenBSD встречается практически у всех корпораций и не по одному разу.
Даже и в стиральных машинках Bosch есть упоминания о лицензиях OpenBSD!
Но насколько глубоко разработки OpenBSD там используются и в каких местах — видимо коммерческая тайна.
Стоит добавить, когда Тео в первый раз «кинул клич» насчет скажем так «целенаправленного сбора донатов», на продолжение физического существования проекта — денег накидали очень быстро, все и без каких-либо требований.
Потому что реальную стоимость и ценность проекта понимают все.
Скандалы, интриги, расследования
Кстати добавлю, что по слухам (информация не подтверждённая) Тео оказывается.. подрабатывал на ЦРУ.
Его прям нанимали на какой-то закрытый проект, что-то с криптографией связанное, с алгоритмами.
Ну честно говоря нет, про это не слышал.
Основные две истории громкие, это про грант DARPA, который отняли после того, как Тео негативно высказался про агрессию в Ираке.
А вторая история, про то что какой-то разработчик написал, что ему — этому безымянному разработчику, предложили проект, чтобы он попытался внедрить бэкдор в OpenBSD.
И это было якобы по заданию ЦРУ.
Ну там непонятно, агентств этих всяких — как грязи.
Короче да, гуляет эта информация по сети. Но опять же — она не была подтверждена, прошло много лет.
Место в исходном коде OpenBSD, на которое указывал тот разработчик несколько раз переписывалось.
«Мне нужны были деньги, я был молод» и всё такое прочее.
Стоит добавить, что исходный код, кодовая база OpenBSD это сейчас наверное самая проверяемая штука на свете.
То как вычищают, тестируют и проверяют исходный код в OpenBSD больше не делает никто.
Очень много практик компьютерной безопасности, аудит исходного кода, технические средства защиты — если не изобретены, то популяризованы командой OpenBSD.
А дальше это использовалось другими крупными проектами.
Если не ошибаюсь, технология рандомизации стека — так это называется?
Когда при при запуске OpenBSD запускается процесс перелинковки и используется рандомизация стека, которую тоже сделали в OpenBSD.
Там много всего на самом деле происходит.
Перелинковка ядра, библиотек и. всё время забываю как её правильно произнести: «X крышка R» или «V крышка X». (W^X)
Там много чего и действительно очень многое идёт из OpenBSD.
Мало того — внедрение этих практик косвенно помогает и другим открытым проектам!
При внедрении.. сейчас не скажу какой технологии в OpenBSD, было выявлено очень много падений прикладного софта.
И полетели патчи в апстрим (авторам).
В итоге например браузер Firefox стал более безопасен благодаря OpenBSD.
Публичный репозиторий
OpenBSD, благодаря своей природной скромности — незаметна, но первая во всём.
Например OpenBSD была первой операционной системой, исходный код которой был публично доступен в репозитории.
То есть CVSweb проекта OpenBSD — первый публичный репозиторий на тот момент у операционной системы.
Комментарий №5
До OpenBSD весь опенсорс распространялся в виде архивов tar.gz и (опционально) diff-файлов рядом c пакетами.
Vitaliy Makkoveev, mvs@openbsd.org
До OpenBSD же Тео участвовал в проекте NetBSD. И он тоже был открытым, как так?
Да, он был открыт, но именно своей репы (репозитория) не было.
А как они разработку вели интересно?
Это та же самая история что и с линуксовым git.
То есть как бы он открыт, но до появления git Linux вообще хостился в проприетарном каком-то.
Тут стоит пояснить важный нюанс.
В исходном коде, помимо самого исходного кода, важна ещё и история его изменений.
Без истории изменений непонятно кто, почему и где именно правил или добавлял. Когда проект большой это становится нерешаемой проблемой.
Вот например, выкачиваете вы с официального kernel.org сборку ядра Linux. Но без списка изменений — не сможете провести аудит, не сможете понять что именно, когда и кем, а главное почему было изменено.
С учётом масштаба проекта и размера кодовой базы, попытки разобраться без истории изменений становятся бессмысленной затеей.
Поэтому факт, что проект OpenBSD — первый, кто стал выкладывать изменения в открытый доступ, это разумеется важный вклад в общую индустрию компьютерной безопасности.
Еще один пример, в качестве иллюстрации — внедрение бэкдора.
Технически, бэкдор это лишь незаметная и небольшая правка в исходном коде, которая делает например подгрузку основной логики с удалённого сервера.
Так просто вы такую правку не найдёте.
Если вам выдать срез исходников ядра Linux без истории коммитов (в последних ядрах это примерно 2Гб текстовых файлов) — вы ничего в этой куче не найдёте.
Поэтому на больших проектах история коммитов становится чрезвычайно важна.
Но про историю с первым публичным репозиторием не знал.
Направление развития
alex0x08 Над чем сейчас вообще работают в OpenBSD? В какую сторону идёт развитие проекта?
Вопрос интересный, но сложный.
Основной вектор (заявленный изначально) — продолжение наращивания безопасности.
Например не так давно в OpenBSD было внедрено решение, многими воспринимаемое как спорное:
нельзя обращаться к системным вызовам (syscalls) из кода напрямую, только через библиотеку libc.
C другой стороны, наш российский разработчик и по-моему даже ваш питерский, продолжает выпиливать Giant Lock из OpenBSD.
А так система развивается, хочется сказать — во всех направлениях.
Как система для повседневного использования и как система для какого-то специфического там того же сетевого применения.
Допиливаются драйвера, добавляется поддержка большего числа устройств. Активно играемся с RISC V.
Портирование на LoongArch
Не знаю насколько сейчас адекватно об этом говорить, но лично я пытаюсь в настоящий момент портировать OpenBSD на такую архитектуру как LoongArch.
Это же продолжение китайской Loongson, так понимаю?
Старые Loongson уже давно поддерживаются.
OpenBSD кстати одна из редких операционных систем, которая их вообще поддерживала.
Ну а я сейчас потихонечку пытаюсь портировать OpenBSD на современный LoongArch.
Благо железо доступно на том же «Алиэкспрессе» и «Авито».
В LLVM оно уже добавлено и я даже умудрился туда добавить патчики, чтобы компилятор знал, что такое в будущем возможно.
Если кто не понимает, речь про тот самый Loongson, который сейчас используется в новых смартфонах, из-за которых было..
Речь про десктопные и серверные процессоры.
То что они независимо разработали свою архитектуру в Китае, для смартфонов — отдельная история.
Там всё-таки ARM, но главное что он был произведён на материковом Китае — никто не верил, что они смогут это произвести без Тайваня.
Да-да, помню что был какой-то эпический срач аж в конгрессе США по этому поводу, как раз из-за вот этого процессора.
Эпилог
Мы поговорили с Вячеславом по поводу OpenBSD — замечательной операционной системы.
Он — представитель сообщества OpenBSD в России, у него своя отдельная группа по OpenBSD и если у вас есть интерес к этой системе — смело обращайтесь.
Подскажет, поможет, направит.
У него есть люди с большим опытом, которые смогут проконсультировать по вопросам внедрения, использования для промышленной разработки и так далее.
Надеюсь мы раскрыли хотя-бы часть вопросов по ней.
Ждём больше пользователей, больше интересующихся.
На этом мы завершаем наш замечательный пеший подкаст-интервью.
Сообщество OpenBSD в России
@openbsd_org_ru — новости
@openbsd_ru — общение
Вячеслав Воронцов
Комментарии причастных
Для этого интервью мне удалось собрать комментарии от непосредственных разработчиков OpenBSD — людей, которые много лет не просто используют эту редкую операционную систему, а еще и участвуют в ее разработке.
Выражаем им огромную благодарность, как за тяжкий труд, так и за уделенное время:
- Vitaliy Makkoveev mvs@openbsd.org
- Kirill Bychkov kirby@openbsd.org
- Klemens Nanni kn@openbsd.org
- Антон Касимов «Радиум-ИТ» https://radium-it.ru
Благодарим за контент
Для большего раскрытия темы OpenBSD, попросил участников сообщества накидать контента, связанного с реальным применением и использованием этой ОС.
Результат можно увидеть в ролике и статье:
все скриншоты рабочих столов, Ultima Online и даже мультик про OpenBSD — все реальное, от непосредственных пользователей российского сообщества.
Так что редакция выражает благодарность активным участникам, откликнувшихся на зов:
OpenBSD
Ну и конечно особая благодарность сообществу OpenBSD и лично Тео, за создание и многолетний труд по развитию и поддержке этой удивительной операционной системы.