Must read. 7 свежих англоязычных статей о FreeBSD, NetBSD и OpenBSD
Чем различаются операционки семейства BSD, как внести в них свой вклад и создать собственную версию ОС.
Dana Moskvina / Skillbox Media
Каждую неделю мы отбираем для вас несколько свежих материалов из англоязычного интернета. В этом выпуске — самые интересные статьи об операционных системах семейства BSD. Самые известные из них — OpenBSD, FreeBSD и NetBSD, хотя есть и другие модификации. Все они бесплатны и созданы на основе Unix.
NetBSD/FreeBSD/OpenBSD vs Linux
Зачем читать: узнать особенности каждой из ОС, их историю и различия.
Где читать: про NetBSD — на MakeUseOf; про FreeBSD — на BugsWriter; про OpenBSD — на That grumpy BSD guy.
История: при создании BSD разработчики не смогли договориться о приоритетах, и в итоге одна группа сосредоточилась на том, чтобы операционка как можно лучше работала на ПК, а вторая — чтобы она поддерживала как можно больше архитектур и устройств. В итоге проект разделился, и у первой группы получилась FreeBSD, а у второй — NetBSD. А позже один из разработчиков FreeBSD создал ещё одну версию — OpenBSD, систему, безопасную до параноидальности.
Но почему мы вообще говорим о BSD? И чем это семейство лучше Linux? А преимуществ у них и правда предостаточно:
- В отличие от Linux это полноценные операционки, разработанные как одно целое.
- В процессе разработки BSD меньше хаоса и беспорядка.
- Система файлов более организованная и упорядоченная.
- BSD-системы остались верны философии Unix, в то время как Linux уже ушёл достаточно далеко от своих истоков.
- Лицензия BSD даёт больше возможностей, чем лицензия Linux.
- Благодаря бинарной совместимости с Linux вы сможете поставить большинство Linux-программ и на BSD.
Кроме общих характеристик у каждой из этих BSD-систем есть и свои особенности. Например, самая известная фича NetBSD — это универсальность. Её можно запустить почти на любом железе, от х86_64 до MIPS. Более того, можно найти и версии для Motorola 68000 или Sega Dreamcast… Кто-то умудрился поставить NetBSD даже на тостер!
Эта система отлично подойдёт владельцам старых девайсов, для которых уже не выпускаются обновления.
А что нужно знать об OpenBSD? Её главные преимущества — безопасность и надёжность. Одно из правил OpenBSD — постоянная активная проверка и поддержка кода. Например, когда где-то находят баг, его не просто фиксят: код анализируют и ищут похожий в других местах, чтобы исправить аналогичные ошибки.
А разработчикам будет приятно узнать, что в систему уже из коробки включены основные инструменты для программирования под *nix и компайлер для C и С++ — Clang.
А что может предложить FreeBSD? В первую очередь — скорость.
В то время как её родственникам пришлось принести скорость в жертву безопасности или кросс-платформенности, разработчики FreeBSD сосредоточились на максимальной оптимизации операционки для работы на ПК. Та же OpenBSD значительно медленнее фряхи и уж точно менее юзер-френдли.
NetBSD на М1
Зачем читать: посмотреть на то, как Запашные из мира BSD укротили М1.
Где читать: на TechnoSports.
Пруф к утверждению об универсальности NetBSD: её запустили даже на М1, новом процессоре Apple. Это даёт надежду на то, что в будущем на М1 заработают и другие операционки, а не только macOS, — так, разработчики Linux уже портируют его под архитектуру Apple.
Но пока что это мечты: даже NetBSD запустить было не так-то просто. Всё-таки М1 не рассчитан на сторонние системы, и понадобилось немало дополнительных драйверов.
Карманная BSD — NomadBSD
Зачем читать: узнать о возможностях BSD, создании новой версии операционки и её установке.
Где читать: на dev.to.
Вот ещё интересный пример, насколько сильно можно играться с BSD-системами: автор статьи создал свою операционку на основе FreeBSD, но только в разы легче и компактнее. В то время как стандартная версия использует порядка 40 ГБ дискового пространства, его карманная версия, названная NomadBSD, — всего 5 ГБ!
Кстати, этот форк — ещё и пример совместимости BSD-систем с программами для Linux: в NomadBSD использованы линуксовый оконный менеджер и рабочая среда.
Правда, автор уточняет, что, несмотря на привлекательность компактного варианта, для первого знакомства с системами BSD всё-таки лучше выбрать другие версии: начать он рекомендует с GhostBSD, а продолжить — FreeBSD или OpenBSD.
Как сделать свой вклад во FreeBSD
Зачем читать: узнать, как законтрибьютить что-нибудь во FreeBSD.
Где читать: на Klara Systems.
Как и любой проект с открытым исходным кодом, FreeBSD всегда приветствует новых участников и разработчиков. Но стороннему человеку бывает сложно разобраться, с чего начать.
Вот главные советы:
- Процесс делится на подготовку, сборку, тестирование и отправку патчей в репозиторий. И если для первого и последнего пунктов не так важно рабочее окружение, то сборкой и тестированием лучше всего заниматься именно под FreeBSD.
- Выбор редактора кода не особо важен. Многие используют Emacs или Vim, но вы можете выбрать и другой, какой вам удобнее.
- Удобно использовать инструменты для навигации в исходном коде — например, cscope или ctagsoffer. Cscope, tmux и Vim — отличная комбинация для разработки.
- Процесс сборки операционки может занять продолжительное время, но его можно ускорить. Так, разумно будет пропустить некоторые этапы с помощью команд $ make buildkernel -DKERNFAST и $ make buildworld -DWORLDFAST. Ещё один вариант — использовать Metamode, специальный режим, который сокращает время сборки.
- Потом все свои правки надо согласовать с командой проекта: можно отправить их в Git, но лучше — в Phabricator, инструмент для ревью кода.
Дискуссия: создание своей версии ОС на основе FreeBSD
Зачем читать: узнать, как начать сборку кастомной версии FreeBSD.
Где читать: на Reddit.
А если вам интересно самим покопаться в операционках и, может, даже создать собственную версию, то стоит заглянуть в это обсуждение на Reddit. Топикстартер спросил, как лучше создать свою версию операционки на основе FreeBSD — максимально простую, для личного пользования. И вот что ему посоветовали:
- Заглянуть в репозитории GhostBSD и HelloSystem.
- Изучить Makefile FreeBSD и примечания к релизу.
- Прочесть статью про создание подобных версий.
- Разобраться с инструментом FreeSBIE.