💾 Archived View for domik.dubro.ru › articles › openbsd.gmi captured on 2024-09-28 at 23:56:47. Gemini links have been rewritten to link to archived content
-=-=-=-=-=-=-
_.-|-/\-._ \-' '-. / /\ /\ \/ _____ ____ _____ _____ [/ < . > ./. \/ / ___ \ | _ \ / ____| __ \ _ / < > /___\ |. / / / /___ ___ ____ | |_) | (___ | | | | .< \ / < /\ > ( #) |#) / / / / __ \/ _ \/ __ \| _ < \___ \| | | | | | < /\ -. __\ / /__/ / /_/ / __/ / / /| |_) |____) | |__| | \ < < V > )./_._(\ \_____/ .___/\___/_/ /_/ |____/|_____/|_____/ .)/\ < < .- / \_'_) )-.. /_/ \ < ./ / > > /._./ /\ < '-' > > / '-._ < v > _.-' / '-.______.-' \ \/
Краткий обзор ОС, немного личных впечатлений, а так же почему эта ОС особенная и кому стоит обратить на неё внимание.
Приглашаю вас на экскурсию в небольшой, уютный, самодостаточный мир, где жизнь течёт не спеша и не покидает ощущение безопасности. Здесь всё пронизано духом свободы и минимализма. Тут уважают старые традиции, чтят KISS и Unix way, всё сделано на совесть, для себя.
Стоит хоть немного пожить здесь и перестроиться на местный лад, как пословицы "Поспешишь - людей насмешишь", "Мал золотник да дорог" или "Тише едешь - дальше будешь" обретают новые смыслы.
OpenBSD или в простонародье Опёнок - это ОС, что родилась в конфликте между основными разработчиками NetBSD, когда Theo de Raadt покинул проект и основал свой (1995г.)
Это произведение кибер-искусства создано хакерами старой школы, которые пришли в ИТ не за деньгами, а чтобы сделать в своей жизни что-то по настоящему хорошее и поделиться этим со всем миром.
Для начала рассмотрим с чего начинается исследование каждого, кто нашел в себе силы и время заглянуть в это интересное место.
Данная инсталляция представлена текстовым интерфейсом и исполнена в строгих чёрно-белых тонах. Эта строгость часто отпугивает неопытных искателей приключений, главным "оружием" которых является мышка, но к счастью в этом нет ничего страшного, ведь многие опытные рыцари терминала и клавиатуры точно также начинали свои странствия.
Стоит отметить, что текстовый интерфейс здесь абсолютно точно не для отпугивания новичков, он как и всё в этом мире содержит прагматичный смысл, ведь опёнок - это система, где к старшим принято относиться с уважением, а чтобы поддерживать старое оборудование, минимальный установочный образ должен умещаться на floppy дискете.
Дискета, для тех кто не застал - это гибкий магнитный диск в пластиковом корпусе 3.5" квадратной формы вмещающий 1.44 мегабайта данных, куда было бы крайне сложно запихнуть что-то графическое.
А еще у некоторых "железок" вообще отсутствует порт подключения монитора и установка проходит либо в автоматическом режиме, либо управляется с терминала через последовательный порт.
И всё это умеет делать один и тот же инсталлятор, который является обычным shell-скриптом.
Прежде чем отправиться в приключение, полное тайн и загадок, нам стоит немного подготовиться.
Для начала зайдите на официальный сайт OpenBSD в раздел загрузок и выберите там подходящий под вашу архитектуру образ:
https://www.openbsd.org/faq/faq4.html#Download
На момент написания статьи, последняя версия 7.5
Также можно выбрать образ на ближайшем зеркале:
https://mirror.yandex.ru/pub/OpenBSD/
https://mirror.openbsd.org.ru/pub/OpenBSD
Поскольку экскурсия носит ознакомительный характер, далее нам понадобится виртуальная машина.
Но конечно интереснее будет исследовать этот мир "вживую" и если у вас завалялся ненужный компьютер или старенький ноутбук, то приключение вместе со "старым другом" окажется более захватывающим.
Для комфортной установки, достаточно будет 1GB памяти и 4-10 гигабайт на диске, но если постараться, можно работать и с меньшими цифрами, особенно на 32-битных системах. Из x86, процессоры, старше первых пентиумов скорее всего не справятся.
Входите под пользователем которого создали на этапе установки и прочитайте приветственное сообщение от Тео, введя в терминале команду `mail` (выход - команда "x").
`mail` - это почтовый клиент для "однофайловых" ящиков mbox, подробнее: `man mail`
Прежде чем начать пользоваться системой, необходимо проверить и установить системные патчи (обновления безопасности), для этого нужно перейти в "режим администратора" командой `su -` (она спросит пароль рута) и запустить `syspatch`.
Далее имеет смысл настроить doas - это аналог sudo.
# cp /etc/examples/doas.conf /etc/
Теперь вам не потребуется каждый раз перевоплощаться в рута через `su -`, достаточно будет перед командой требующей высоких привилегий писать `doas` и ввести свой пароль, например `doas pkg_add vim` (установка пакета с текстовым редактором)
Если на этапе установки не были загружены прошивки, не забудьте запустить `fw_update`
нажмите ^D или `exit` для "развоплощения" в режим пользователя.
Еще нужно немного настроить окружение:
echo "export LC_ALL=en_US.UTF-8" >> ~/.profile echo "#!/bin/sh -x\nexport LANG=ru_RU.UTF-8" >> ~/.xsession echo "setxkbmap -layout us,ru -variant , option grp:caps_toggle" >> ~/.xsession echo "export HISTFILE=~/.ksh_history" >> ~/.profile echo "export HISTSIZE=10000" >> ~/.profile
Запустив эти команды по очереди вы настроили локализацию, переключение языка на caps lock и чтобы ваша командная строка не забывала введённые ранее команды.
Что бы изменения вступили в силу необходимо перезапустить оконный менеджер
В рамках данной экскурсии мы рассматриваем работу с пакетами, но небольшая справка про порты не повредит:
Как и все BSD, данная ОС работает с портами (ports).
Простыми словами - это место откуда берутся программы. Выглядит всё довольно просто, после распаковки архива с портами или "вытягивания" их через cvs, в /usr/ports появятся папки с категориями типа www, audio, games и т.п., где будут лежать папки с названиями портов (самих программ), а внутри вас будут ждать Makefile-ы.
Любителям собирать всё из исходников достаточно перейти в эту папку и запустить `make`, а затем `make install`.
Еще стоит отметить что порты как бы сами по себе и именно база отвечает за репутацию системы, а не порты.
Что установить в первую очередь? (подробно)
Пример установки некоторых полезных пакетов:
doas pkg_add firefox tdesktop mc mpv amfora newsboat aria2 vim xz unrar unzip p7zip alacritty claws-mail
Если вы установили какой-нибудь сервис (например nginx), то не забудьте настроить его авто-запуск:
rcctl enable nginx rcctl start nginx
первая команда включает сервис в автозагрузку, а вторая запускает
Можно запустить apmd в целях экономии заряда батарейки (для ноутбука) и других функций связанных с питанием:
doas rcctl enable apmd doas rcctl start apmd
Еще apmd обеспечивает поддержку режимов сна и гибернации:
Если вы привыкли пользоваться оконным менеджером и минималистичные WM вам кажутся слишком неудобными, то можно установить и настроить запуск mate:
doas pkg_add mate doas rcctl enable messagebus doas rcctl start messagebus echo 'exec /usr/local/bin/ck-launch-session /usr/local/bin/mate-session' >> ~/.xsession
По мимо mate, в пакетах есть еще много оконных менеджеров, вот некоторые из них:
Обратите внимание на местную архитектуру, тут всё оформлено в стиле минимализма, но не в ущерб эффективности. Архитекторы вдохновлённые идеями хакеров-первооткрывателей, старались придерживаться простоты во всём, чем проще - тем лучше, тем сложнее поломать и проще починить.
Файлы конфигурации написаны в одном формате, и разобравшись в настройках одного сервиса, у вас уже не возникнет сложностей с синтаксисом конфигурационных файлов других демонов.
Демон == сервис, не пугайтесь, для вас они добрые и пушистые, грозные демоны в них просыпаются только для злоумышленников.
То же самое вы ощутите заглянув в исходный код, тут всё написано в одном строгом style(9).
Осмотревшись более внимательно, вы рано или поздно про себя отметите что это очень style'ная ОС.
Советую обязательно заглянуть в местную библиотеку `man`, там всё расписано достаточно подробно, причем настолько, что привычка гуглить по любому поводу может отпасть сама собой. Для поиска по "библиотеке" используйте `apropos`.
Чтобы мониторить системные ресурсы, можно запустить `top`, но более интересную информацию можно увидеть запустив `systat` и по нажимать на цифры 1-9,0
Если вы разработчик, то наверняка захотите взглянуть на исходники системы. Их можно скачать архивом с зеркала или через cvs.
По мимо того, что разработчики очень трепетно относятся к чистоте кода, нужно отдельно сказать, что любые изменения которые вносятся в код, вначале попадают на всеобщее обозрение через почтовую рассылку в виде patch'а, где сотни людей внимательно изучают и обсуждают предлагаемые изменения. И чтобы их внесли в систему, необходимо одобрение двух разработчиков из основной команды. Такой старомодный подход позволяет свести на минимум риск получить закладки/бэкдоры, от хитрых злодеев.
Почти все эти проекты родились как часть системы, а затем получив заслуженную популярность распространились на другие ОС.
Конечно, нужно быть готовым к некоторым "сложностям" при переезде сюда на ПМЖ.
К примеру система не монтирует автоматически юсб-диски, мало что даёт настроить мышкой и т.д. Тут надо включать голову, что несомненно способствует саморазвитию. Можно даже сказать что OpenBSD является профилактическим средством не только от взломов но и от "альцгеймера".
Если для серверных решений в опёнке +- всё примерно одинаково выглядит в сравнении с линуксами, то как основная рабочая система, первое что он делает со многими новичками - это ломает шаблоны, что по началу ощущается как довольно дискомфортное состояние. Особенно когда срочно нужно что-то сделать, что ранее на маке или венде делалось в 1 клик мышкой, тут требуется почитать man или погуглить, а все клики мышкой заменить на правку текстовых конфигурационных файлов. Но хвала небесам - это продлится не долго, если пользователь тверд в своем намерении обменять комфорт по подписке на аскетичное, безопасное и простое окружение, то выяснится что дискомфорт доставляла не ОС, а сам процесс ломки привычек, который заканчивается довольно быстро и начинается спокойная жизнь приносящая радость каждый раз, когда приходит очередное понимание, "как оказывается всё просто можно было сделать", или "А что, так можно было?!".
Если вы уже опытный разработчик и хотите внести свой вклад в систему, то ваши патчи скорее всего не примут с первого раза, что может расстроить, но если с вами такое случится, не спешите разочаровываться, не забывайте что вы вливаетесь в общество где качественный код, большой опыт разработки и хорошее знание системы - это минимальные требования. К тому же тут вместо демократии правит достаточно принципиальный "добрый диктатор" Тео, достаточно принципиальный для того чтобы посылать подальше не только программистов-одиночек, но и целые корпорации, которые в каком-то смысле правят миром.
Возможно стоит усмирить гордыню и не смотря на отказы, напрячься и сделать лучшее на что способны, преследуя не только свои личные цели, но и не забывая о потребностях других пользователей, чтобы элитные специалисты по праву наградили вас почётными двумя "ok" в рассылке и вписали в историю ваше имя.
Высокие требования к безопасности и жёсткая принципиальность местного правителя распространилась на систему и может проявляться как внезапно "упавший"(закрывшийся) браузер или любое другое приложение, но не советую винить в этом систему. Здесь для правонарушителей всегда применяется высшая мера наказания. Если программа лезет туда, где ей быть не положено, ядро без суда и вынесения приговора убивает этот процесс. К примеру, у вас периодически падает браузер типа chrome, что однозначно вызывает негодование, ведь в линуксе или венде такого не происходило. Хорошо ли это? А спустя неделю в рассылках по безопасности появляется новость об очередной дырищи в этом браузере. Совпадение? Не думаю! И с пониманием таких моментов вы конечно же предпочтёте чтобы браузер упал, чем схватил вирусню или сожрал все ресурсы вашего компа и повесил его намертво.
Медленная файловая система без журналирования. Но если посмотреть с другой стороны, у вас не получится запустить любимую ZFS на виртуалке или роутере с 128мб памяти или на RPI zero. К тому же разработчики свели все риски потери данных в ffs к минимуму и из минусов остается только долгая проверка диска при случайной перезагрузке.
Сравнение разных БД на разных FS на тему потери данных
Справедливости ради стоит отметить один хейтерский сайт, где кропотливо собираются негативные отзывы (либо глубоко спрятанные и неочевидные особенности) на тему безопасности OpenBSD:
Для тех кто:
В завершении экскурсии хочется поделиться с вами личными переживаниями связанными с разными ОС.
Меня с детства манили тайны, загадки и некая магия творящаяся в компьютерах. Путь начался со спектрумов, в которых по началу не было того, что можно называть ОС, вскоре там появился TR-DOS, потом туда портировали CP/M, а к тому времени уже пошли x86 c DOS'ом и NC.
Затем появился windows, который своей архитектурой и глючностью заставил усомниться в правильности пути.
До этого момента большую часть интересов всё еще занимали игры и нырять с головой в линукс было сложновато, но он уже стоял как вторая система.
В один момент, когда за несколько дней, просто читая разные статьи посвященные ИБ, в рамках исследований всяких хакерских трюков, смог написать полноценного трояна-кейлогера размером в 4кб, который незаметно инсталлился в винду при посещении сайта через очередную дыру в IE, при этом не виделся антивирусами и выдавал себя за системный сервис, который нельзя было остановить, я вдруг осознал, если простой студент типа меня может сделать такое, то всё очень плохо...
После того как виндовс была окончательно стерта с диска и забыта как страшный сон, прошло примерно 10 лет линуксовой жизни на десктопе и серверах + на некоторых была FreeBSD. Уже тогда замечалась ощутимая разница в надёжности между bsd и linux.
Затем около 8 лет прожил на хакинтоше, за это время появился докер и линукс начинал всё сильнее разочаровывать своими переусложнениями. Также за это время пару раз пробовал поставить OpenBSD, но совершенно не понимал зачем она нужна. Потом 6 лет был счастливым хомячком с макбуком, но последние года 3 были не самыми приятными, пришлось на своей шкуре прочувствовать что такое "искусственное устаревание" + пронаблюдал как удаляются полезные приложения из аппстора + сам как разработчик приложений настрадался с их политикой.
К тому времени на некоторых серверах уже стояла OpenBSD, которая подкупала своей простотой, но основной серверной системой была фря. Линукса уже оставалось совсем мало, и то, только из-за отсутствия выбора.
До какого-то момента MacOS действительно казалась идеальной системой с её BSD-шым юзерлендом. Но закрытость и ощущение, что я ничего не контролирую заставили задуматься о дауншифте.
Задаваясь вопросом, кто сделал все мои любимые и ежедневно используемые программки, вдруг обнаружил, что половина из них была написана как часть проекта OpenBSD - это подстегнуло интерес к дальнейшему изучению опёнка и биографии его разработчиков. Тут стало ясно - эти ребята мыслят похожим образом, только на гораздо более высоком уровне. И если у кого и стоит чему-то поучиться, то однозначно у них.
К тому времени уже накопил немного опыта в obsd на серверах и твердо решил, пора переезжать.
Поначалу было сложновато.. метафорически выражаясь - это было словно переезд из пентхауса 5* отеля (где за хорошие деньги всё подавалось на блюдечке), в собственный бункер, где надо самому себе готовить, мыть посуду и убираться.
Но чем больше изучал, тем больше жалел что не сделал этого раньше.
Большое значение сыграла сильная поддержка людей из нашего "лампового" обсд-сообщества, познакомившись с ними стало ясно, что у нас много общего и появилась уверенность - все кто честно ищет максимальной трушности в мире ИТ рано или поздно встречаются в BSD.
Моя любимая песня и иллюстрация к выпуску:
Песня посвящённая выпуску OpenBSD 6.8
“Люди Linux делают то, что делают, потому что ненавидят Microsoft. Мы делаем то, что делаем, потому что любим Unix.“
– Theo de Raadt
-----
- иногда знания в разных областях накапливаются независимо друг от друга;
- а потом - вжух! - складываются вместе и получается новый, более лучший результат в каждой области.
Юникс - как набор кирпичиков, каждым нужно научиться пользоваться. Но если их правильно сложить вместе, то эффективность всей системы увеличивается.
– aexyel
-----
Опёнок - это система не только для инженеров и программистов, но и для любителей, именно своей простотой и ненагромождённостью позволяет любопытному обывателю познавать основы основ и не просто познавать а еще с учетом стиля "правильного кода" OpenBSD.
– qypeqoiq
-----
"золотая рыбка мира опенсурс"
– nerfur
-----
Настоящая любовь появляется не "потому что" или "за что-то", а вопреки всему.
И любовь к этой системе именного такая.
aexyel, nerfur, qypeqoiq
Спасибо за поддержку!
Перевод официального сайта (спасибо Александру и его товарищам)
Телеграм канал русскоязычного сообщества
Много фактов и ответов на вопрос - почему OpenBSD крутая ОС?
https://www.openbsdhandbook.com/
Блог Solene - крутой хакерши, блогера, мантейнера пакетов и автора многих полезных проектов
Youtube канал про игры на OpenBSD
Весьма поучительная статья 2005г.
. A ; | ,--,-/ \---,-/| , _|\,'. /| /| `/|-. \`.' /| , `;. ,'\ A A A A _ /| `.; ,/ _ A _ / _ /| ; /\ / \ , , A / / `/| /_| | _ \ , , ,/ \ // | |/ `.\ ,- , , ,/ ,/ \/ / @| |@ / /' \ \ , > /| ,--. |\_/ \_/ / | | , ,/ \ ./' __:.. | __ __ | | | .--. , > > |-' / ` ,/| / ' \ | | | \ , | / / |<--.__,->| | | . `. > > / ( /_,' \\ ^ / \ / / `. >-- /^\ | \\___/ \ / / \__' \ \ \/ \ | `. |/ , , /`\ \ ) \ ' |/ , V \ / `-\ `|/ ' V V \ \.' \_ '`-. V V \./'\ `|/-. \ / \ /,---`\ kat / `._____V_____V' ' '