dwm, ranger, geany...
Настало время попробовать очередной тайловый оконный менеджер. Выбор пал на dwm. Долго не решался его попробовать, т. к. он отпугивал своей специфичной настройкой. На деле оказалось все намного проще.
Всего сообщений: 4
Настало время попробовать очередной тайловый оконный менеджер. Выбор пал на dwm. Долго не решался его попробовать, т. к. он отпугивал своей специфичной настройкой. На деле оказалось все намного проще.
Этот небольшой пост не порадует вас обилием картинок, он скорее объявление о намерениях.
Под новый год сдох последний SSD в рейде, и я наконец перешел с Oracle Linux 6 (с 2013 года) на FreeBSD (да, у меня много времени). И вот хочу бороться с мифами на форуме и всеми этими постами «стоит ли переходить», а «какого цвета трава по вашу сторону забора» и т.д. Обычно на эти вопросы отвечают фанаты FreeBSD, а я предлагаю ниже краткое описание от линуксоида. Посвящено оно в основном звуку. Это при том, что я уже два года пробую FreeBSD на личных серверах.
Сначала о постановке целей.
1) Недостижимый идеал темы выглядит вот так https://www.gnome-look.org/p/1120849/ Недостижим он по той причине, что исходники иконок в SVG недоступны, а темы QT и GTK изрядно переписаны в сторону метросексуальности. Так что пока скриншот только с консолью.
2) Основные требования к софту:
2.0 стабильность
2.1 Urxvt/bash/mc
2.2 Google Chrome
2.3 Thunderbird
2.4 VirtualBox
2.5 rtorrent/mplayer (mpv/moc)
2.6 LibreOffice
2.7 Контейнерная виртуализация.
3) Основные требования к ОС:
3.0 мышь и клавиатура
3.1 Firewall, маркировка по портами, маршрутизация вместе с NAT.
3.2 No Pottering, No pulseaudio, No systemd, No gstreamer, No avahi
3.3 FS live snapshots. Не ZFS.
3.4 nvidia proprietary driver
3.5 PA like functionality.
--------------
Реальность:
2.0 Во-первых, надо полностью развеять миф о бОльшей стабильности FreeBSD по сравнению с Linux. За время своего знакомства я наступил на кернел паник в стабильном, ванильном, оттестированом и т.д. выпуске, сегфолт пакетного менеджера (знаю, как повторить), сегфолт утилиты из базы (jails, зафиксировано в багтреке), сегфолт fsck (зафиксировано в багтрекере). И нет в шестом редхате такого не было, а с манжаро, арчами, федорами и гентами сравнивать не берусь, там все бывает. Во-вторых, везде кода меньше, система легче. Порядка немного больше. Это что касается базы. В прикладном софте примерно также.
2.1 bash. Я держу набор .bashrc файлов для всего набора линуксов, с которыми сталкивался, чтобы унифицировать поведение в консоли. Ес-но, FreeBSD отличается сильнее, консольные утилиты просто менее функциональны, дурацкое требование слеша на конце при использовании cp -r dir1/ dir2... Поэтому я просто заинсталировал все, что было в репозиториях из гнутого консольного софта и обмотал это альясами. Жить можно и даже неплохо. Из неудобного: все пути длинее, т.к. /usr/local/, блин:( Из странного каждый терминал считается залогиненым юзером в w. Это очень странно.
2.2 Google Chrome. Поломано определение Memory Footprint в Task Manager. Теперь не прибъешь вкладки, которые много отожрали. Хотя кто-то мне доказывал со скриншотами, что это только у меня. хз.
2.3 Thunderbird + (все также)
2.4 VirtualBox - отсутствует коммерческий пак от оракла, стало быть не работает быстрое USB2.0 (буду пробовать прокидывать контроллер) и не работает RDP (не решаемо). Проблемы со звуком, см. ниже.
2.5 mplayer - проблемы со звуком. см. ниже.
2.6 LibreOffice - от RH GTK не избавишься, т.к. программисты с freedesktop хуже поддерживают qt, чем gtk. на QT поломан размер шрифтов. неюзабельно.
2.7 контейнеры jails. Это то, к чему я привык во времена OpenVZ. Все есть, все хорошо. Но рестарт контейнера возможен только через минуту-две. Не освобождает ресурсы. Досадный глюк.
3.0 Из того, что работало на Linux десятилетней давности, но перестало на FreeBSD - это мышь и клава. У FreeBSD традиционно сложные отношения с определением устройств. Они не могу определиться, развивать свое или копировать с линукса udev. В итоге они делают и то, и то и в результате по-умолчанию нифига не работает, конфигурация Xorg'a превращается в разбор внутренней кухни этих заморочек. Плюс они что-то там намудрили, что мультимедийные кнопки на клаве - это как бы отдельная клавиатура (которая не работает). И в добавок, эти мультимедийные клавиши просто не могут работать, т.к. для них указаны ошибочные кейкоды в каком-то махровом году. Два года назад я это выяснил и пропатчил демон, который их определяет. Руки дойдут - сделаю снова.
Почему не определился Genius MX Master, я пока так и не понял, воткнул самую простую USB мышь.
3.1 Firewall - самая грустная часть FreeBSD:( При том, что он существует в трех(!) инкарнациях, они все глубоко в *опе. ipfw - основной и самый функциональный, застрял в середине 90х. Документации просто недостаточно. Сложные штуки с маркировкой трафика по портам и натами на нем невозможно выполнить. pf - устаревшая версия из OpenBSD. сама OpenBSD ее уже выкинула. и также с соляровским вариантом. Солярис тоже его давно выкинул в пользу OpenBSDшного. И хуже всего то, что внутриядерная часть фвола очень простая. Все пакеты падают в одно ведро, там перемешиваются и по факту невозможно их сепарировать. Короче говоря, я пытался три раза хотя бы спародировать какие-то простые места из своей огромной портянки iptables и все это заканчивалось ненавистью и фрустрацией. Так что придется просто поднимать виртуальную машину со старым Linux+iptables.
3.2 No Pottering, No pulseaudio, No systemd, No gstreamer, No avahi - тут полный успех. Но только, если собирать из портов.
3.4 live snapshots. Я говорю об аналоге lvm на линуксе. Я уже много лет использую эту схему, чтобы очень эффективно бекапить террабайты данных. В отличие от всех этих поделок с tar, которые приносят сюда ньюфаги, такая схема позволяет бекапить шифрованные данные, много, не выключая систему, а ZFS на сервере еще и позволяет всем этим свободно манипулировать. Очень круто. Я не знаю, появились ли в Linux offline snapshots, но лучше ZFS я тут ничего не видел.
У меня получилось собрать полный аналог слоеного пирога encryption layer+volume manager+fs. FreeBSD традиционно использует fs soft updates вместо журналирования. В чем принципиальная разница так и не понял, ну и ладно. Просто пришлось отказаться от soft update, включить журналирование посредством geom, словить баг в gjournal, зарапортовать, подождать два года. По-моему он пофикшен, но так ко мне и не прилетел. Но работает.
Вроде
Потому что в первую же ночь система стала колом с ошибками в журнал при распаковке архива!
Я уже хотел спустить это все в мусорку, когда случайно нашел пару sysctl сетингов, которые это решают. Ни в каких хваленых фрибздешных хендбуках вы это, конечно, не найдете. FreeBSD с одной стороны не имеет адекватных для современного оборудования лимитов по-умолчанию, а с другой хаутушек, чтобы это фиксить, поэтому этим всем можно заниматься только, если вот вам прямо хочется FreeBSD и вы такой весь олдфаг и готовы читать мейл-листы.
Короче, неожиданный успех. Если кому интересно, почему я не использую здесь ZFS, спросите меня.
3.4 FreeBSD - это единственная ОС из других *BSD с проприетарными драйверами. Полный успех.
3.5 PA like functionality. Да, это большая тема, в которой я к тому же понимаю слабо. Я использую USB-звуковуху, которая пригодна для записи звука и может работать с повышенной дискретизацией или что-то типа того. Считается, что FreeBSD изначально имела более качественный аудио-стек, чем Linux. И судя по количеству и качеству ручек, я в это верю. Такое впечатление, что инженеры, которые это писали, увлекались аудиозаписью. А вот сохранять уровни громкости для приложений она не может:( Поэтому ей нужна надстройка, аналог PA - sndiod.
Естественно, FreeBSD развивается очень медленно, а на линуксе тем временем тяп-ляп глючный пульсаудио. Сейчас к 15ой версии он, наверное, уже не доставляет столько гемороя, и в нем море фич. Я исторически использовал PA 8.0. Звук в VirtualBox заикался. Глючило при разных уровнях громкости для каналов. Рестарт пульсаудио - часть моего воркфлоу с 2013 года, но регулятор громкости для приложений - это прикольно и не имеет аналогов во FreeBSD.
Во FreeBSD нас встречает утилита в 10 раз меньше. Она не требует портянок конфигов, в ней нет блютуса и еще каких-то новомодных штук. Но она тут же сделала все, что мне нужно. Она принимает поток по tcp. Она объединяет каналы в моно, как мне нужно. Она выставляет нужную частоту дискретизации. Первое, что я заметил звук стал чище. Как будто новую аудиокарту взял. Очень круто.
Но
Но теперь звук в mplayer заикается при нагрузке на диск! Я не понимаю, это баг системы или конкретного софта. Вроде напрямую в OSS не заикается. Но так мне не надо.
VirtualBox теперь играет звук чисто. Но недолго. Он не может выводить в sndio, отправляет в OSS и скоро затыкается.
На этом со звуком все.
Вроде бы всё
Привет всем! Хочу показать своё домашнее рабочее место, а также место, где хостится бОльшая часть ресурсов http://www.cypherpunks.ru
Главная часть — два компактных сервера от ETegro Technologies. Xeon процессор (чтобы поддерживать ECC память), 16 GB ECC RAM. В каждом из них корзина для 4-х hot-swap SATA дисков, но в серверах только по два диска (2-3 TB) в ZFS зеркале. В одном сервере ещё и 100 GB Kingston SSD для L2ARC кэша. Всё это соединено гигабитной сетью не связанной с Интернетом. Один из серверов выступает в качестве шлюза к Интернету — для него отдельный 100 Mbps коммутатор стоит. Есть ещё какой-то дешёвый WiFi мост, но он не включался уже много месяцев, так как вся связь между компьютерами только по Ethernet. Серверы запитаны от ИБП. К одному из серверов подключён монитор, выводящий кой какой мониторинг.
К этом подключается рабочий ноутбук — Dell Latitude 3470: довольно дешёвый, с вполне сносными характеристиками (Intel i5 на архитектуре SkyLake, 8 GB RAM, 120 GB Kingston SSD). Так как работа за самим ноутбуком (его монитором и клавиатурой) довольно редка, то претензий к качеству экрана, клавиатуры и тачпада нет никаких (любое дерьмо сгодится). Обклеен наклейками: Bradi Cerebri Ectomia, GNU, FSF, EFF, FSFE тематика — с ними работает субъективно получше. К нему подключён USB хаб на четыре порта, но, к сожалению, его не видно за монитором. Full HD 27" Монитор подключается по HDMI (в ноутбуке нет DisplayPort) и крепится на кронштейне с газпатроном — легко сделать повыше/пониже, если хочется работать стоя. Обязательно наличие Beastie — BSD системы без него... я даже не пробовал как они без него работают, ибо сомнения.
Основной элемент без которого я бы вообще не рискнул работать — тактильная механическая клавиатура. Можно поменять серверы и взять какую-нибудь лажу, можно ноутбук 10 летней давности, можно много чего — но без тактильной клавиатуры жизни нет, в принципе, вообще. Так как всё программирование проходит в редакторе, вся почта проходит в редакторе, даже набор формочек в броузере проходит в редакторе... то интерфейс между мной и редактором должен быть первостепенной важности. В данном случае это Filco Majestouch 2 с MX Blue переключателями. Абсолютно никаких к ней нареканий. Справа от неё трэкбол Kensington Expert — 4 больших полноценных кнопки, большой с хорошей инерцией шарик и колесо прокрутки вокруг него.
Работа немыслима без хорошей музыки в ушах. Asus Essence One MkII USB звуковая карта, Beyerdynamic A1 усилитель и Beyerdynamic DT990 Pro наушники — идеально под это подходят. В данный момент ноутбук ещё и заряжает сотовый телефон: OpenPhoenux (GTA4), служащий на ура уже много лет. Всё это размещается на столе Ergostol Duo — его высота может регулироваться электрическим приводом, пуль управления которого рядом с сотовым телефоном. Можно буквально все выходные провести в стоячем положении за ним. Но пришлось приобрести кронштейн для монитора — в сидячем и стоячем положении у него должна быть разная высота.
Что касается ПО, то на всех серверах и ноутбуке или HardenedBSD (в том числе в виртуалках) или FreeBSD. Все файловые системы это только ZFS (ну кроме флешек которые нужно сувать в чуждые ОС). Самое важное и ценное с точки зрения конфиденциальности расположено на зашифрованных GELI разделах: AES-XTS режим, но без явной аутентификации, ибо, так как внутри раздела ZFS, то изменить данные не получится, не нарушив целостности ФС. Трафик между серверами шифруется IPsec-ом, между ноутбуком GoVPN-ом. На шлюзе в качестве firewall: ipfw и ядерный встроенный в него NAT (к сожалению приходится иметь дело с IPv4). Касательно серверного ПО не буду вдаваться в подробности.
На ноутбуке в качестве оконного менеджера — DWM. Терминал — st. Шрифты — Inconsolata LGC. Почти всё автоматически запускается под Tmux — несколько буферов обмена, scrollback буфер с большой историей и возможностью поиска, табы, скриптование. БОльшую часть времени провожу в Vim редакторе. Почта читается в Mutt. В качестве IRC клиента — irssi, Jabber/XMPP — Bitlbee, Tox — Toxic. RSS/Atom новости сыпятся в почту через rss2email Python программу, хотя когда-то очень любит Newsbeuter. Музыка слушается Cmus-ом. На одном из серверов мультимедиа библиотека, доступ к которой идёт через NFS. На одном из серверов запущен почтовый — почта сыпется не в mailbox, а в NNCP который сохраняется в своём буфере исходящих сообщений письма для ноутбука. Когда он подключается к серверам, то забирает/отправляет всё что накопилось. Если нужно сбросить на серверы бэкапы или какие-то данные для хранения, то, опять же, все они отправляются в NNCP набор утилит чтобы fire-and-forget-ом пересылать большие объёмы данных когда появляется связанность машин.