NetBSD в деле
Как я уже писал, давно использую эту ОС на практике, поэтому есть что рассказать.
На данный момент NetBSD 9.3 стоит на реальном железе, не в виде виртуальной машины, на ноутбуке Lenovo T440, достаточно старом для таких экспериментов.
Имейте ввиду, что NetBSD это максимально далекая от обычного пользователя ОС, поэтому ставить ее на голое железо (тем более свежее) — дело крайне рисковое и наивное.
Еще у вас точно должен быть серьезный опыт и с Линуксами и с куда более «пользовательской» FreeBSD, прежде чем лезть в это.
Suspend/Resume
Внезапно это работает, но по-особенному.
Дело в том что из системы убраны все клиентские утилиты и обвязка по управлению засыпанием, нет acpiconf, нет zzz, нет rc.suspend и rc.resume, уже привычных по FreeBSD.
В NetBSD оставили только голый sysctl:
sysctl -w hw.acpi.sleep.state=3
Вызов которого я и закатал в кастомный аналог zzz:
cat /usr/bin/zzz #!/bin/sh sysctl -w hw.acpi.sleep.state=3
Дальше этот скрипт просто вызывается из консоли для погружения ноутбука в сон. Так и живем.
Заряд батареи
Индикацию заряда батареи получить также непросто, пришлось написать еще один скрипт:
cat /opt/own/bin/acpi_stat #!/bin/sh /usr/sbin/envstat -d acpibat0 /usr/sbin/envstat -d acpibat1
На моем ноутбуке две батареи, поэтому тут два вызова, вам скорее всего хватит одного (первого).
В принципе информации достаточно, но конечно выглядит не так красиво как иконка с индикатором.
Обновления и пакеты
Главный пакетный менеджер тут называется pkgin, жить без которого проблематично.
pkgin install mc
pkgin upgrade
Обновление самой системы происходят по аналогии с OpenBSD, уж не знаю кто у кого взял идею, с ключевым отличием что в NetBSD есть «автоматический режим»:
sysupgrade auto
Одной командой происходит проверка на наличие обновлений, их скачивание и установка (включая ядро). Остается только перезагрузить систему и работать дальше.
Что такое WIP
В NetBSD и OpenBSD существуют неофициальные наборы частично работающего софта, которые называются WIP, сокращение от фразы «Work-In-Progress» («Ведутся работы»).
Для NetBSD это выглядит вот так.
Несмотря на очевидные проблемы, при активном использовании таких ОС вы очень быстро упретесь в необходимость использования WIP с ручной правкой исходников и сборки.
Именно так я совсем недавно заставлял работать свежую версию KDE, до ее нормальной поддержки а сейчас работаю над сборкой chromium и telegram-desktop.
Разборки с Intellij Idea
Само собой NetBSD у этой замечательной среды разработки не поддерживается, а последние версии еще и нуждаются в достаточно сложной ручной правке просто для запуска.
Но это на самом деле лишь начало, первое что вы увидите попытаясь запустить идею под NetBSD будет вот такое маловразумительное сообщение:
[alex@caramba:/opt/app/idea-IC-232.8660.185]$ ./bin/idea.sh Error calling StartServiceByName for org.freedesktop.Notifications: Process org.freedesktop.Notifications received signal 11
Проблема заключается в удивительном факте:
для отображения сообщения об ошибке на стадии логики скрипта запуска (т.е еще до старта Java), используется система показа оповещений, завязанная на Dbus.
Вот что бывает когда поручаешь серьезную работу зумерам от разработки, вообщем.
Поэтому устанавливаем notifyd:
pkgin install xfce4-notifyd
и запускаем (в сессии пользователя):
Теперь наконец можно увидеть настоящую ошибку:
Вот оно что, в окружении не нашлась одна из утилит, типичных для более обычных ОС.
Но в системе она все равно есть, просто в нестандартном месте, поэтому докручиваем переменную PATH:
export PATH=/usr/pkg/gnu/bin:$PATH
В этот раз все должно получиться, не забудьте только поставить свежую JDK:
pkgin openjdk17
export JAVA_HOME=/usr/pkg/java/openjdk17/