RSS
Pages: 1 ... 3 4 5 6 7 8 9 10 11 12 13
[>] Деды против mail.ru
std.hugeping
hugeping(ping,1) — All
2024-11-10 08:56:58


На днях пришло письмо от mail.ru. О том что "вечные" 100Гб облака подаренные ранее "заканчиваются" и нужно срочно оформить подписку.

Капитализм - подумал я. И даже не стал сильно сокрушаться. План маркетоидов понятен -- сначала подсадить на услугу, потом начать шантажировать. Видимо, 100Гб оказалось для многих "слишком много" вот и пришлось закручивать гайки и отменять данное ранее обещание. Интересно, что принесёт такой маркетинговый ход? Какая часть потенциальных клиентов поймёт, что иметь дело с шантажистом -- гиблое дело?

Так или иначе -- свои данные я слил на винчестеры. Но возникла проблема с почтой жены. За эти годы там накопилось несколько десятков гигабайт(!!!) писем (с аттачами). Попытка скачки архивов через web ничего не дала. Сначала браузер задумался на несколько минут, потом начал выплёвывать диалог на каждый .rar аттач. А потом сервер вовсе отказался выполнять запрос.

Удалить старые ненужные файлы тоже оказалось проблемой, связанной с ограничениями веб-версии. Например, в выдаче отсутствовала сортировка по размеру. Работать одновременно можно только с 1000 файлами, при этом страничка подгружает по 50... Бррр... А постоянные баннеры со скидками на подписку намекали что и тут не обошлось без не слишком чистых ручек маркетоидов.

Я даже подумал было купить место и не тратить своё время. Но просто так купить услугу, оказывается, нельзя. Нужно именно оформить подписку, с передачей права mail.ru снимать со счёта деньги без спроса.

Ужасно. Ну что же, тогда пришло время mbsync...

Предварительно нужно создать на mail.ru пароль для imap: https://account.mail.ru/user/2-step-auth/passwords/

Затем создаём файл mail.ru.conf:

IMAPAccount LOGIN
Host imap.mail.ru
User LOGIN@mail.ru
Pass PASSWD
SSLType IMAPS
CertificateFile /etc/ssl/certs/ca-certificates.crt

IMAPStore LOGIN-remote
UseUTF8Mailboxes yes
Account LOGIN

MaildirStore LOGIN-local
SubFolders Verbatim
Path ~/Downloads/Mail/
Inbox ~/Downloads/Mail/Inbox

Channel Login
Far :Login-remote:
Near :Login-local:
Patterns *
Create Both
Expunge Both
SyncState *

Потом:

$ mbsync -c mail.ru.conf LOGIN

И всё. Чтобы посмотреть свою почту, можно воспользоваться mutt или neomutt:

$ neomutt -R -f ~/Downloads/Mail/Inbox/

В очередной раз выручают протоколы "дедов". Удивительно, что почта продолжает работать по разработанным давным-давно технологиям и никакие vk, телеграмы, дискорды и прочие проприетарные "решения" не способны её заменить. Правда, это скорее исключительная ситуация именно с почтой. Почему так получилось? Наверное потому, что миру действительно нужна "федеративная" система обмена сообщениями, не привязанная технологически к каким-то конкретным корпорациям. Хотя тенденция когда тот же google (или сбер, или mail.ru, или Яндекс) пытается стать таким компонентом-"агентом" -- прослеживается. Искренне надеюсь, что у них ничего не получится.

P.S. Edited: 2024-11-10 09:40:24

[>] Gemini на микроконтроллере
std.hugeping
hugeping(ping,1) — All
2024-11-24 13:37:00


Моим первым компьютером был БК0010-01. 16Кб памяти. 300 тысяч операций в секунду. Два бита на цвет. Он дал мне первое опьянение (чувство эйфории смешанное с деперсонализацией). С тех пор меня тянуло к компьютерам и ко всему, что было на них похоже.

Когда появились первые мобильные телефоны, меня тянуло к телефонам.

Когда появились КПК, я собрал себе коллекцию КПК.

На ipod nano я написал прошивку, которая позволяла мне читать книжки на крошечном экране. Зачем? Потому что это тоже был компьютер.

А потом пришли смартфоны.

Сначала казалось, что это те же самые КПК только лучше.

Потом рынок решил что "маленькие компьютеры с клавиатурами" никому не нужны. Постепенно смартфоны превратились в устройства-экраны для "потребления". Привязались к онлайн "сервисам". Обзавелись банковскими приложениями. Стали обязательным атрибутом жизни. И я стал презирать смартфоны. Смартфоны больше не мои друзья. Скорее -- шпионы.

Хотелось вернуться к старым друзьям. Устройствам с простой прошивкой которые делают именно то, что ты говоришь им делать и не следят за тобой. К настоящим "компьютерам", которые не требуют твоего рабства как плату за мнимый комфорт.

В этой заметке я хочу описать те устройства с которыми я "поиграл" за последнее время.

# Technointeres Arduino клавиатура на ESP32 C3

Клавиатура для ардуино (UART) и ПК (bluetooth) на ESP32 C3. Русская + английская раскладка. -- так назывался лот на aliexpress.

https://aliexpress.ru/item/1005005764316991.html -- больше нет в продаже.

Можно сказать что это тот самый мини-КПК на контроллере с клавиатурой и маленьким (но всё же не крошечным) экраном 240x240. С wifi и bt. Питается от 18650. Прошивается напрямую через usb type-c. Отличная платформа для опытов!

Пока устройство ко мне шло я начал было читать даташит на контроллер, но быстро понял, что писать всё на низком уровне я не буду. Время БК0010-01 ушло. Современные микроконтроллеры - те же процессоры. В рамках экосистемы Arduino создан слой абстракции с которым действительно проще "сразу взять и написать" не занимаясь написанием ОС. Например, когда в Arduino IDE создаётся прошивка для ESP32 на самом деле в неё прошивается и FreeRTOS. А наша прошивка - лишь задача, запускаемая в этой ОС.

К счастью, автор устройства (кстати, соотечественник) выложил на github исходники своей тестовой прошивки из которой я смог разобраться как именно подключено оборудование и как с ним работать.

https://github.com/technointeres/V3-ESP_KEYBOARD_RU_EN

Я начал работать в Arduino IDE. Плюс среды в том, что можно действительно сразу начать писать код и его прошивать. Кажется, разберётся и ребёнок. Минус -- она очень неудобна для создания чего угодно большего, чем набросок. К тому же, она довольно глючная и жрёт много памяти. Во время сборки файлы проекта куда-то неявно копируются, кешируются и т.д. Но мне хотелось сразу начать писать код поэтому я писал его в своём редакторе, а потом запускал IDE для сборки и прошивки.

Код пишется на C++. Я много раз встречал упоминание, что это НЕ C++. Возможно, когда люди говорят подобное они имеют в виду отсутствие stl библиотеки и поддержки современных стандартов. Но для системного программиста это настоящий С++ в режиме "Cи с класами"... ;)

В итоге появилась прошивка, которая содержала в себе:

- клиент gemini;
- просмотрщик картинок с zx-art.ee;
- irc клиент.

https://github.com/hugeping/arduino-technointeres-fw

Кстати, пока писал клиента gemini столкнулся с различной интерпретацией стандарта разными серверами. Особенно в части относительных ссылок типа ../. Пришлось городить нечто "среднее". Ещё раз понял, что не надо бояться уточнять детали стандарта.

Вторая проблема - tls. Из коробки для esp32 был только tls 1.2. Большинство капсул работает и по 1.2, но, например gemini://gemlog.stargrave.org похоже жёстко требует 1.3. Впрочем, даже когда я собрал со сторонней библиотекой, которая поддерживает tls 1.3, капсула stargrave по-прежнему рвала соединение. Так что причина может быть в чём то ещё. Например, в каких то жёстких настройках. Не знаю.

Устройство интересное. Правда, я сразу же сжёг ему контроллер заряда. :) Но главным недостатком для меня оказалось то, что у него нет корпуса. Можно сказать что это фича. Но всё-таки, его уже не бросишь "просто в карман".

И тут на глаза подвернулся другой девайс...

# Cardputer

Устройство можно купить на aliexpress. Внутри ESP32-S3 контроллер. Хороший корпус. Игрушечная, но всё-таки клавиатура. И... экран в 1.14" :)

Я не буду описывать целевую аудиторию этого устройства и его возможности. Cardputer достаточно популярен и о нём можно почитать в интернете. А для меня это был просто очередной "маленький компьютер". Конечно, я его заказал...

Штатная прошивка полностью бесполезна и её можно воспринимать только как технологическую демку. Я начал портировать свою прошивку с прошлого устройства заодно пытаясь отвязаться от кучи ненужных библиотек и лишних слоёв. Сделал подобие многозадачности (например, можно запускать irc-клиента в фоне) и функции "органайзера" - когда по netcat можно заливать и считывать текстовые заметки. Добавил repl питона -- теперь устройство можно было использовать в качестве калькулятора. В целом, вышло симпатично.

https://github.com/hugeping/cardputer-fw

Кстати, тут я уже использовал arduino-cli чтобы не запускать Arduino IDE и просто вызывать make. Конечно, это не лучший способ разрабатывать под Arduino, но так было проще "сразу начать".

Клиент gemini на таком маленьком (крошечном!) экране, как ни странно, оказался вполне себе достаточным для чтения заметок в режиме "детокса". Вообще, стало понятно что для подобного вида устройств эргономика очень важна и наличие корпуса (или возможность его сделать) -- необходимость, если только вы собираетесь хоть как то это устройство использовать.

Потом я охладел к игрушке и многие функции остались нереализованными. Например, можно было сделать диктофон, тюнер, поддержку sd-карточки. Может быть я ещё вернусь к этим задачам (например, тюнер был бы полезен "в быту"). Но даже сейчас иногда читаю капсулы в gemini на cardputer и это приносит удовольствие и умиротворение. :)

Если бы только размер экрана был хотя бы в 2 раза больше...

# r36s

На том же aliexpress можно купить множество "игровых" linux консолей. Все они идут из коробки с прошивками в которых есть эмуляторы различных ретро-платформ, а на флешках лежит множество rom-файлов с играми для этих платформ.

Меня эти консоли не сильно привлекают именно в плане retro-gaming. Эти устройства мне интересны с точки зрения любительского софта. Конечно, формат устройства предполагает, что это будут главным образом игры.

Когда я изучал ассортимент этих устройств я понял, что они не одинаковы именно с точки зрения любительской разработки. Например, miyoo mini очень неплоха с точки зрения потребительских свойств, но по определённым причинам для неё мало именно любительского ПО. С другой стороны, есть устройства которые работают под управлением ArkOS (фактически, Ubuntu для arm), что делает портирование игр крайне простой задачей. Существует проект, который предоставляет возможность грубо (но эффективно) делать сборки с "портируемым" ПО. Фактически, мы запускаем виртуалку, собираем проект и кидаем бинарник на устройство. Потом обвязываем его скриптом запуска.

https://portmaster.games/games.html

Я бы сказал, что по наполнению там уже больше портов, чем было в своё время для canoo и подобных устройств. Обратите внимание, что в разделе Devices нет miyoo.

Для miyoo тоже есть возможность создавать порты, но их гораздо меньше. Вероятно, это связано с особенностями портирования.

https://github.com/OnionUI/Ports-Collection

Конечно же, я сразу "портировал" свой движок rein и запустил на r36s свою игру.

https://github.com/hugeping/rein

Работает отлично. Изменений в кодовую базу практически не вносил, кроме мелких настроек в Lua части (более гибкий масштаб экрана к разрешению).

Интересно, что если добавить к устройству клавиатуру, то получится тот самый "маленький компьютер" причём за умеренную цену. Думаю, можно даже купить подходящую клавиатуру и воткнуть её в usb. Но использовать это будет неудобно.

# Другие устройства

В поле внимания попадались и другие девайсы, которые меня заинтересовали, но которые я не заказал (по причинам стоимости, доступности или других соображений).

## playdate

Очень стильная игровая самобытная консоль с монохромным экраном. Но очень дорого.
https://play.date/

## arduboy

Забавная миниатюрная игровая консоль с монохромным экраном 128x64.
Как выглядят игры можно посмотреть здесь: https://arduboy.ried.cl/
Можно купить на aliexpress за вменяемые деньги. Предпочёл cardputer.

## uConsole

Прикольный маленький linux компьютер. Иногда можно купить на aliexpress. https://www.clockworkpi.com/uconsole
Не очень интересно, потому что там просто Linux. И не думаю что удобен в "практическом" смысле.

## T-Deck-ESP32 S3 Blackberry

Конструктор в виде контроллера + экрана + клавиатуры от BB. Интересный вариант. Если бы не заказывал до этого cardputer, возможно, поиграл бы с этой штукой.

https://aliexpress.ru/item/1005007938506565.html

# Заключение

Конечно, в интернете можно найти много DIY устройств, но в большинстве случаев они недоступны в формате "закажи и используй". Жаль что "компьютеры" больше никому не нужны. И даже смартфон с клавиатурой -- экзотика на которую придётся раскошелится. Я часто слышу, что экранная клавиатура в режиме набора свайпом -- более эффективна. Я даже не спорю с этим. Просто снисходительно улыбаюсь. Они не поймут.

А я _точно_ знаю -- мы должны чувствовать свои компьютеры.

P.S. Edited: 2024-11-24 15:02:57

cardputer.png
[>] О чтении
std.hugeping
hugeping(ping,1) — All
2024-11-30 12:07:34


Я часто "снисходительно" относился к людям, которые не умеют (не любят) читать. Мне казалось, что это какая-то слабость и ограниченность. Но вдруг обнаружил что я тоже читаю всё реже. Я имею в виду -- из художественной литературы.

Причём, кажется, что только если я начну, то скорее всего "разогреюсь" и чтение меня увлечёт как раньше. Но -- не начинаю. Сейчас я на втором томе "Дон Кихота", но прогресс почти стоит на месте. Причём сама книга мне нравится. Я сажусь в метро. Включаю читалку в смартфоне и ... выключаю. Усталость, невозможность сосредоточиться.

Неужели дело лишь в наличии более доступных "развлечений"?

Я зло смеялся над людьми которые делают скриншоты текста, а потом отправляют это в соцсети, мессенджеры и куда угодно. А сейчас это так обычно, что уже не смешно. Произошло примерно то, что было с селфи-палками. Когда они только появились, я считал людей делающих селфи умалишёнными. А сейчас? Обычное дело...

Инструкции в виде клипов. Обучение по сериалам вебинаров. Везде ролики, картинки. И смартфоны вместо компьютеров. Когда я вижу беднягу "работающего" с текстом или сложным сайтом на смартфоне я всё ещё чувствую снисхождение. Да не мучайся ты! Доберись до ноутбука и сделай всё за 10 минут! А потом оборачиваюсь и понимаю, что компьютеры остались нужны только программистам. Пока. Cмартфоны созданы не для того, чтобы создавать. Они -- "телевизоры" нашей эпохи.

Компьютерные игры стали нашей виртуальной жизнью (говорю в основном о MMORPG). Эскапизм приключенческих книг и даже игр вроде DOOM образца 1993 года и рядом не стоял по влиянию на нашу _реальную_ жизнь. Они прочно подсаживают нас на эндорфиновые качели и ты уже сам не понимаешь, нравится ли тебе эта "виртуальная жизнь" или ты -- её заложник, вынужденный подключаться снова и снова...

Я не очень хорошо владею английским. В детстве уроки английского наводили на меня ужас, а англо-русский словарик был символом спасения. Правда, в нём не хватало страниц (бракованная серия?), но это было не так уж и важно. Особенно сложно было писать сочинения. Я писал текст на русском, потом неумело (но кропотливо!) переводил на английский. Сейчас глядя на то как эту задачу выполняют нейросети, я прекрасно понимаю школьников. Будь у меня такая возможность, я бы тоже просто скормил "нейросеточке" свой текст и получил результат. Да нет! Ещё лучше! Просто ввёл бы запрос: "напиши сочинение на английском как я провёл лето". Научился бы я чему-то в таком режиме? Собственный опыт показывает, что воспользовавшись нейросетью несколько раз для решения задач перевода, способности к самостоятельной работе и творчеству лишь притупляются.

Ворчание -- признак старости. :) А стареть -- не хочется. Так или иначе, мир продолжает меняться и это невозможно не замечать (и не анализировать). Когда-то я думал, что новые системные программисты легко заменят старых. Но сейчас я вижу что этим новым просто не откуда взяться! Как ушло поколение радиолюбителей, так и уходит поколение системщиков. Интересно, что будет с проектами вроде NetBSD? В скорую смерть "C" я не верю, но будет ли достаточно свободных "C" программистов чтобы наследие осталось живым?

Когда в интернете стали появляться торренты (тогда ещё) либрусека, я был впечатлён объёмом. Мне казалось очень горьким, что такое количество книг невозможно прочитать за жизнь. Значит, надо не терять времени, искать! Искать лучшее и читать. Где лежит тот скачанный архив я даже не помню.

Надо всё-таки добить "Дон Кихота"...

donquixote.png
[>] Re: О чтении
std.hugeping
boscholeg(ping,5) — hugeping
2024-11-30 14:46:58


Что-то уж очень мрачновато. Наверное сказывается зимняя хандра и/или усталость. Выше голову!
Я уверен, что никуда не денутся ситемщики.
Так же как никуда не делись электронщики. Просто их стало меньше. Но это не потому, что происходит деградация. Дело в том что, их останется ровно столько сколько нужно обществу/социуму.
Мода прошла. Останутся только те для кого это действительно призвание. И те кто смогут состояться в жизни занимаясь этим.
А что-то конечно отомрет как ненужное и сильно устаревшее. Как например исчезли извозчики и фонарщики.

[>] Re: О чтении
std.hugeping
boscholeg(ping,5) — hugeping
2024-11-30 15:27:33


К стати вопрос не по теме. Как поживает твоя малина? Сколько она уже работает без перерыва?
3 года или больше?

[>] Re: О чтении
std.hugeping
hugeping(ping,1) — boscholeg
2024-11-30 16:39:46


boscholeg> Как поживает твоя малина? Сколько она уже работает без перерыва?
boscholeg> 3 года или больше?

Да. Сам жду что уже пора бы карточке посыпаться. Делаю бекапы регулярно :) Но систему буду переустанавливать полностью, так что дубль всей карточки не делаю.

[>] Re: О чтении
std.hugeping
hugeping(ping,1) — boscholeg
2024-11-30 16:41:45


boscholeg> Мода прошла. Останутся только те для кого это действительно призвание. И те кто смогут состояться в жизни занимаясь этим.

Да, может и так. Выглядит вполне правдоподобно. Тем более, что молодых системщиков я встречаю. Но за судьбу тех же BSD* все-таки беспокоюсь. :)

[>] Re: О чтении
std.hugeping
tuple(ping,54) — hugeping
2024-11-30 18:56:09


hugeping> Да, может и так. Выглядит вполне правдоподобно. Тем более, что молодых системщиков я встречаю. Но за судьбу тех же BSD* все-таки беспокоюсь. :)

У меня есть желание уйти в системщики. Пока студент, всё впереди :)

[>] Re: О чтении
std.hugeping
boscholeg(ping,5) — tuple
2024-11-30 19:24:06


Очень хорошо! Прямое доказательство моего предположения.

[>] Снова про отладку
std.hugeping
hugeping(ping,1) — All
2024-12-07 07:29:05


На работе произошёл забавный случай во время отладки.

В какой-то момент работы с дебаг-прошивкой менялся файл /etc/passwd. Вернее, ссылка /etc/passwd ведущая в rw-область заменялась настоящим файлом /etc/passwd. И мы не понимали какой компонент это делает.

В итоге я решил просто поискать в бинарниках прошивки всё, что содержит строку "/etc/passwd".

Обнаружился elf-файл 'zellij' ( https://zellij.dev/ ) которого в прошивке быть не должно. Это разработчик положил для своего удобства. После запуска zellij действительно ссылка /etc/passwd заменялась файлом. Радости не было предела! Ведь zellij написан на Rust! Хотел тут же писать статью на эту тему (очерняющую Rust, естественно).

Но реальность оказалась прозаичней. Запуск zellij выполнялся скриптом с машины разработчика, скрипт помимо прочего делал по ssh sed на /etc/passwd (связано с особенностями удобства отладки прошивки). sed убивал ссылку, так как был запущен без параметра --follow-symlinks. То, что /etc/passwd находился в прошивке zellij - оказалось лишь совпадением.

Этот пример наглядно показывает пользу отладки, даже если она исходит из ложных предпосылок. Бывало у нас возникали споры с коллегами, когда я предлагал эксперимент не предоставляя гипотезу, которую эксперимент призван опровергнуть или доказать. Ведь правильная с виду идея состоит в том, чтобы сначала полностью проработать гипотезу, а потом уже делать эксперимент. Я с этим не согласен. Эксперименты в IT обычно дёшевы и приносят новые данные-улики которые в свою очередь могут вывести разработчика на верный след. Как в нашем примере, когда абсолютно ложная гипотеза стала толчком к исследованию, которое и привело к пониманию происходящего.

Так что отладка -- это в первую очередь практический навык. Конечно, со временем развитая на опыте интуиция позволяет делать "расследования" полностью "не выходя из кабинета". И такие случаи приносят максимальное удовлетворение. :) Но я уверен, что без долгих практических навыков эта интуиция не появится сама собой. Реальность оказывается всегда удивительней чем наши ожидания.

[>] Re: Снова про отладку
std.hugeping
boscholeg(ping,5) — hugeping
2024-12-09 07:36:11


У вас что-то на подобии OpenWrt? Очень интересно как устроены такие крохотные системы.
Можешь порекомендовать что почитать? Или может сам расскажешь чего или статью напишешь?
Было бы очень интересно почитать.

[>] Re: Снова про отладку
std.hugeping
hugeping(ping,1) — boscholeg
2024-12-09 07:50:06


boscholeg> У вас что-то на подобии OpenWrt? Очень интересно как устроены такие крохотные системы.
boscholeg> Можешь порекомендовать что почитать? Или может сам расскажешь чего или статью напишешь?
boscholeg> Было бы очень интересно почитать.

Что читать -- не знаю что посоветовать. Слышал, кто-то Linux From Scratch хвалил в этом плане. https://www.linuxfromscratch.org/ Позволяет понять как всё работает в Linux-системах вместе.

А так, существуют "готовые" конструкторы. Тот же buildroot, yocto и openwrt. Но в принципе, Linux и Linux. :)

[>] О systemd
std.hugeping
hugeping(ping,1) — All
2024-12-14 09:55:45


У меня была заметка про случай с systemd, но в блоге я её не публиковал. Кроме того, за последующие годы накопились другие случаи из практики. Поэтому решил собрать этот материал в одном месте.

Для начала, оригинальное сообщение из 2020 года.

## Удаление IPC при logout

Привет!

До последнего относился к деятельности Поттеринга с пониманием. Прогресс дело такое. Linux давно уже сложная система, systemd неизбежен -- думал я.

Пока не коснулось моей работы. Несколько лет у нас периодически падала сборка, в момент работы fakeroot. Отлаживали faked, пытались разнести во времени сборки -- результата не было. Наконец, когда за одну ночь сборка упала 5 раз я не выдержал и попытался в очередной раз найти причину.

Помог гугл. Оказалось, что systemd стирает объекты IPC при log-out пользователя из системы. А на систему сборки периодически ломились наши боты, проверяя статус сборки итд.

В общем, RemoveIPC=no в /etc/systemd/logind.conf помог. По крайней мере, три дня уже всё чисто.

Конечно, ошибаются все. Но в данном случае это не ошибка, а осознанное убивание Unix. Ситуация наглядно иллюстрирует тот факт, что когда какой-то Unix компонент занимается не своим делом, найти проблему очень и очень сложно.

Как вообще могло придти в голову стирать что-то там при logout? Удивительно, что /tmp не затирается...

В общем, признаюсь себе честно -- Linux больше не система моей мечты. Я разочарован и удручён. Похоже, Plan9 и BSD системы -- это мой удел на старости лет. Linux -- система для выполнения утилитарных вещей и это моя работа. Но сказать, что мне нравится выбранный курс развития -- категорически не могу. Linux стал слишком "взрослым". Sad but true...

## Удаление "временных файлов"

> "Удивительно, что /tmp не затирается..."

Как наивен я был!

Да, зачистка данных во время работы системы это действительно архитектурное решение, которое целенаправленно продвигается разработчиком. И следующий случай это подтверждает.

Разрабатываемая embeded-система работала около месяца, а потом у неё отваливалась подсистема конфигурации. Когда это произошло во второй раз я сразу подумал о systemd. Ведь работало это удаление "как часы". Заглянул в /etc/systemd/tmpfiles.d и... чего только там нет! Я не помню что именно он стирал, но сам факт, что на работающей автономно системе какой-то компонент начинает вдруг стирать чужие файлы (например, в /var/tmp) по ему одному ведомой причине -- это просто за гранью добра и зла.

Если вы по прежнему считаете, что это "правильное направление" (ведь речь идёт о "временных" файлах) то... вот: https://www.opennet.ru/opennews/art.shtml?num=61403

> ... опция "--purge" удаляет все файлы и каталоги, созданные через настройки tmpfiles.d, но название "tmpfiles" в названии утилиты вводило в заблуждение и создавало впечатление, что удаление касается только временных файлов. При этом настройки tmpfiles.d не ограничиваются временными файлами и также используются для автоматического создания несуществующих каталогов с данными. В частности, удаление содержимого домашних каталогов объясняется тем, что при помощи файла "/usr/lib/tmpfiles.d/home.conf" создавался раздел "/home" и, соответственно, команда "systemd-tmpfiles --purge" приводила к его удалению.

То-есть, tmpfiles это уже не временные файлы. :)

Кстати, в 257 приладили "костыль" чтобы сгладить проявления своего архитектурного пути: https://www.opennet.ru/opennews/art.shtml?num=62380

> В systemd-tmpfiles во избежание ошибочного удаления не тех файлов опция "--purge" теперь применяется только к настройкам в tmpfiles.d/, для которых явно выставлен флаг "$"


## Встроенные fallback-сервера

Следующая проблема. По умолчанию в systemd встроены адреса fallback dns и ntp серверов. То есть, если вы ничего не настраивали система всё равно будет долбиться на какие-то сервера "из коробки". Казалось бы, должна быть опция отключить это. И действительно, в манах есть кое-что на эту тему. В том числе описание приоритетов каталогов systemd с конфигурационными файлами. Я сейчас не помню деталей, но полностью "выжечь" обращение к внешним серверам зашитым где-то внутри мне удалось только патчем на код. После нескольких безуспешных попыток решить это конфигурационными файлами. Вещь в себе.

## Старт с ro-раздела

systemd не рассчитан на старт с ro-раздела. В systemd есть код, который адаптирован к этой ситуации (например, делает bind /etc/machine-id на файл в /run), но в целом - он не готов. Причём просто так поменять-задать местоположение rw-данных мы не можем -- все эти "/etc" зашиты прямо в код. В итоге в embeded-среде принят подход (рекомендован Поттерингом) с монтированием rw-оверлея /etc/ в initramfs _до_ запуска systemd, что снова выглядит дикой дичью. Неужели сложно было параметризовать эти вещи с самого начала? Снова патчим systemd...

## Баги и эффект чёрного ящика

Баги в реализации. Я встречался с некоторыми багами, которые ведут в .c часть. Например, некорректное слежение за состоянием интерфейса по netlink (код не был рассчитан на "нестандартную ситуацию" и принимал один тип сообщений за другой). Не помню уже как именно это проявлялось, скорее всего что-то связанное с dns серверами и маршрутами полученными по dhcp. Понятно, что "C" код для администратора это чёрный ящик и исправить что-то "на месте" практически нереально. В отличие от систем, где каждый компонент может быть заменён и их взаимодействие прозрачно. Здесь же есть "вещи в себе" которые или работают или нет.

## Заключение

Не могу сказать что в systemd присутствует только плохое. Когда компоненты работают без ошибок (и сюрпризов!), в целом, пользоваться этим удобно. Сложность "запрятана" в сам systemd. Мне в целом нравится тот же journald -- возможностью выборки по unit, а не только по facility/priority.

Вообще, systemd должен был появиться и это естественный путь развития для Linux. Жаль только что спроектирован он .. "напролом". В нём нет элегантности, "хакерской" изящности и гибкости. Предлагаются "готовые" решения, которые могут подойти и тогда всё хорошо (если нет багов). Или не подойти -- и тогда делай что хочешь. :) Ну а про то, что он слишком много на себя берёт я уже написал.

Тем не менее, не зависимо от того любите ли вы systemd или нет, если вы работаете с Linux - вам придётся с ним познакомиться (рано или поздно).

[>] Re: О systemd
std.hugeping
doesnm(ping,55) — hugeping
2024-12-15 06:31:46


Читая пост возник только один вопрос: а почему systemd вообще используется в embedded? Каких-то своих узкоспециализированных решений нет?

+++ Никто не знает, как правильно. Так зачем же выдумывать правила?

[>] Re: О systemd
std.hugeping
hugeping(ping,1) — doesnm
2024-12-15 11:44:42


doesnm> Читая пост возник только один вопрос: а почему systemd вообще используется в embedded? Каких-то своих узкоспециализированных решений нет?

Смотря что понимать под embedded. Ведь часто это "обычный линукс" работающий на спец. железе. И там тоже нужен тот же udev, например. Который давно есть часть systemd. :) Вообще, systemd постепенно всё глубже проникает в экосистему и с определённого момента проще расслабиться и плыть в струе мейнстрима... ;)

[>] Re: О systemd
std.hugeping
doesnm(ping,55) — hugeping
2024-12-15 13:04:58


hugeping> Смотря что понимать под embedded. Ведь часто это "обычный линукс" работающий на спец. железе. И там тоже нужен тот же udev, например. Который давно есть часть systemd. :) Вообще, systemd постепенно всё глубже проникает в экосистему и с определённого момента проще расслабиться и плыть в струе мейнстрима... ;)

Линукс-то обычный, но у меня ассоциации embedded с очень слабым железом и поэтому systemd кажется немного пушкой по воробьям. Да и вроде как есть тот же eudev

+++ Никто не знает, как правильно. Так зачем же выдумывать правила?

[>] Re: О systemd
std.hugeping
hugeping(ping,1) — doesnm
2024-12-15 13:14:31


doesnm> Линукс-то обычный, но у меня ассоциации embedded с очень слабым железом и поэтому systemd кажется немного пушкой по воробьям. Да и вроде как есть тот же eudev

Слабое железо тоже уже давно не слабое... Ну взять хотя бы домашние роутеры. Нормальное там железо. И с systemd система будет быстрее скорее всего загружаться. :) Так что это даже довод ЗА systemd как это не парадоксально. eudev как не крути вещь вторичная. А так, конечно, можно. Но в целом, можно и systemd в какой-то части использовать. Вопрос - что выбрать. В том же https://buildroot.org/ systemd есть как опция.

Pages: 1 ... 3 4 5 6 7 8 9 10 11 12 13