Установка Suckless init на Linux
HTML-код
- Опубликовано: 12 сен 2024
- Гайд для отважных: troubleshooters...
Репозиторий: github.com/And...
Документация по daemontools: untroubled.org/...
Музыка на фоне:
• MONIN - Binary Stars [...
• 1 A.M Chill Session 🌌 ...
Наверное самое сложное видео, которое я когда-либо делал. Дайте мне знать, если вы хотите видеть ещё подобные узконаправленные технические видео. Только часто я их делать точно не смогу :)
Мне понравилось! Довольно редко встречаю подобные познавательные ролики. Однозначно буду только рад видеть периодических их на вашем канале
конечно хотим
как на счет Alpine+sinit+doas+wayland+ly+tilling wm(например riverwm)?
именно таких роликов и не хватает.
побольше бы таких видео, это очень мотивирует развиваться
Пользователь линукса просит нейросеть написать код, чтобы выключить компьютер без последствий. Просто база.
Чуваааак, ты мега крутой! Это прям очень интересно и нужно нашему сообществу красноглазиков) Мы безусловно ждем таких проектов и будем поддерживать вниманием!
Очень круто!
Ждём сериал по созданию минималистичного дистрибутива на утилитах suckless!
Ядро линукс, синит и утилиты gnu - вот вся система :)
У suckless действительно хватает утилит, чтобы целый дистрибутив создать. Такой уже даже есть, morpheus называется, но к сожалению его перестали поддерживать
@@AlexandrVtoroy У саклес есть sbase, даже GNU не оставили!
@@speedyfox9080 а, даже так
@@ampersand3636 Если ты ответишь на мои вопросы я постараюсь зделать на убунте и sinit(без демонов только сервисы).
Осталось только портировать на gentoo, crux, void Linux, freebsd, тостер и лампочку. Жизнь должна быть не по bloatware)
Ты безумец. Молча скинул видос друзьям. Надеюсь, у тебя не закончится энтузиазм!)
Схема с svscan и littkit это, конечно, эталонный костылятор) После такой экскурсии хочется написать что-то своё и "правильное", чтобы можно было работать с порядком запуска сервисов, чтобы были зависимости и т.п, однако, [тут должна быть ссылка на генту вики с системами инициализации]. Авторы sinit наверное очень собой довольны, но здесь явно недостаёт удобств для пользователя)) Выключение компьютера это вообще восторг :) Поиграться будет весело, но не более)) А за видео спасибо, реально интересно!
Согласен, уж littkit точно можно заменить на что-то своё, а с заменой daemontools будет посложнее. sinit конечно можно допилить до более юзабельного состояния с управлением демонами и разрешением зависимостей, при этом не превышая 500-1000 строчек кода, что тоже очень минималистично, но суть sinit именно в максимальном упрощении функционала
@@ampersand3636 кстати, надо взять во внимание то, что скрипт /bin/rc.init можно запустить прямо через параметры ядра, в таком случае sinit будет вообще не нужен. по поводу краша демонов - тут спорно, я ниразу не сталкивался с крашем демонов, но их можно поднимать тем же bash скриптом который будет за ними следить. по сути вы написали систему инициализации на bash, ничего не хочу сказать напротив, наоборот вы мне помогли понять как происходит инициализация на таком уровне, ваш скрипт я взял, убрал оттуда все зависимости и теперь гружусь очень быстро. как считаете, стоит ли делать форк на github где все это реализуется на bash? а так, спасибо вам за ролик, я прозрел.
@@hypeqq постоянно сталкивался с крашем и зависанием сервисов при выключении на systemd
@@hypeqq зроби форк
Как же круто иметь полный контроль над системой. Огромное спасибо за гайд. Теперь точно знаю, какой инит поставлю, когда буду собирать LFS. Однозначно лайк
Спасибо за труды! Было ооочень интересно, но мало понятно😅
Ну ты и красава! Менять dinit на sinit я, конечно, не собираюсь, но на том же тестовом арче протестить можно
Спасибо за видео. Теперь ждем установку tcc и прочих на замену gcc)
Хайповый ролик, контент у тебя крайне интересный на канале. Спасибо за обзор sinit, потыкать в Арче будет крайне интересно!
Спасибо за твой контент! Благодаря тебе решил поставить артикс с динитом. Вроде норм получилось)
Очень круто, хотелось бы больше подобного контента)
Отличное видео!
Привет, автор! Это конечно очень интересно, но возник вопрос в нужности этих действий. Все равно все не заменить, да и к тому же некоторые вещи просто не способны работать с другими системами инициализации. Мне конечно хотелось бы попробовать, но мучаться с тем что каждый раз что-нибудь не работает потому что не systemd не очень хочется. Вот если сделаешь полноценную текстовую (или видео) инструкцию со всеми нюансами, настройками, аналогами нужных для работы вещей, то тогда будет смысл от всего этого
Сейчас много вещей действительно завязаны на systemd. Но это конечно зависит от того, какой функционал требуется от системы. Мне например на OpenRC всего хватает. Что касается sinit, то если скопировать бОльшую часть скриптов из других систем инициализации со всевозможными проверками чтобы они работали на всех дистрибутивах, то получится вполне стабильная система инициализации. А также желательно пофиксить корявый скрипт выключения. Как будет время и возможность займусь этим
@@ampersand3636 было бы интересно посмотреть продолжение, а так вообще намешать из всех других систем инициализации тоже не есть хорошо. В таком случае лучше использовать сразу готовую, взрослую и проверенную систему инициализации. А так как хобби вполне. Кстати а как вам пришла в голову идея заняться этим, что для этого нужно и т.д.?
Идея пришла после видео со сравнением скорости всех систем инициализации, где sinit оказался самым быстрым. Решил записать полный обзор. Что для этого нужно? Лишь доступ в интернет, чтобы гуглить возникающие ошибки :)
@@ampersand3636 топовое видео, и да, вопрос о необьходимости sinit на десктопе остро стоит, а вот во встраиваемых системах... Не думал сделать видос о сборке дистрибутива для встраиваемой системы типо SBC, телефона, планшета?
Таких видео надо поболее. Отличная работа!!!
Наконец-то я нашёл тот инит, который запустился бы на моем старом ноуте
Это у тебя какое железо?
@@AlexandrVtoroy печатный станок
Мне кажется, тема rc.init и rc.shutdown не раскрыта как надо. Что в видео, что в гайде просто говорят скопировать файлы и не сильно задумываться об их содержании, что, имхо, странно, т.к. большинство это будет делать только в образовательных целях не на реальных системах (За себя не говорю, прямо сейчас устанавливаю sinit на основной ПК). Про такие вещи, как /dev/shm и /dev/pts я узнал только когда переписывал скрипт и ради интереса пошёл искать, зачем они нужны и нужны ли они мне.
Однако в остальном могу только поблагодарить автора за проделанный труд, ибо за исключением гайда из описания (который подразумевает установку только на определённые дистрибутивы), в интернете почти нет разъяснений по этой теме.
Отличное видео! Спасибо! Только хотелось бы больше про плюсы и минусы, в сравнении с другими системами инициализации... Ну системд на десктопе понятно, слишком толсто, а вот рунит например, какие плюсы перед ним, ну кроме мимилистичности?
Из плюсов наверное только контроль над системой и время запуска. От запуска sinit до появления /dev/tty1 проходит меньше секунды. А так по удобству sinit конечно сильно уступает всем остальным инитам
@@ampersand3636 ок понял!
Гений
Довольно круто.
Интересно, конечно. Прямо ностальгия по старому иниту.
И вот проблемы те же - lk по сути заменяет svscan, потому как случайный порядок загрузки демонов сегодня - довольно уныло.
Или, допустим, у меня amiшка на амазоне с бинарником сервиса. Я его стартую в том же systemd прописав зависимость - работает, само поднимается... Ну красота же!
Да,не самое идеологически правильно решение, но точно рабочее.
топ контент, красавчик
Повторю слова великих "Них*я не понял. Но ОЧЕНЬ интересно"
Очень крутое видео, вот только я не до конца понял, как установить арч с sinit, там же систем д по умолчанию стоит и насколько я помню мы его руками не ставим при установке, а тут мы поверх него ставим синит и норм работает?
Да, просто поверх systemd ставится sinit. Кстати, можно откатиться обратно на systemd без проблем, если заменить /sbin/init обратно на /usr/lib/systemd/systemd. То же самое работает, если sinit был поставлен поверх любых других систем инициализации
Очень интересно, но не хрена не понятно 😊 лайк с меня за труд, бро
❤
Есть вопрос, что делать со сервисом anacron он обращен к стоп старт демон. Есть ли другие сервисы, что с ними делать или они не очень нужны?
@ampersand3636 Вопрос Амперсанду но кто знает ответте.
Нельзя в скрипт запуска dbus сразу вписать запуск sddm?
Еще вопрос о том как записать в init.rc запуск сервисов.
@ampersand3636 Вопрос Амперсанду но кто знает ответте.
Спасибо за интересное видео. Еще интересно: какой девайс используешь, видно что TianoCore в качестве прошивки?
Это виртуальная машина QEMU/KVM :)
@@ampersand3636 Хорошо, но также интересно какие устройства используешь? Пользуешься ли девайсами от purism, starlabs, nitrokey? Использеушь ли coreboot и измеримую загрузку?
есть покетный менеджер от саклэсс?
Не уверен, но у них был дистрибутив morpheus, который перестали поддерживать. Там возможно был пакетный менеджер
Очень круто и после этго ты себя не считаешь программистом?)
Дак в итоге получается тоже самое что делает runit. И litkit не нужен, если определить зависимости демонов в стиле runit
Всё что не СисяД - круто и здорово!!! Даже SysV.
Жду время загрузки ПК с помощью efistub+sinit
А нафига dbus и sddm ставить в такую систему?
👍👍👍
Кстати, а будет видео по смене системы инициальзации в Arch Linux?
Пока что не вижу в этом смысла. Можно установить почти любую систему инициализации из AUR-а и скачать нужные скрипты из репозиториев артикса
@@ampersand3636 А где найти эти скрипты?
Здесь packages.artixlinux.org/?search_criteria=dinit&limit=50
75 строк это конечно круто, но к чему потом перечислять утилиты без которых это работать не будет, а сколько там строк кода?
Ну так оно без всего спокойно работает, видео про расширение функционала этих 75 строк
Да, это может работать и на ванильном sinit, просто daemontools и LittKit делает всё более удобным и пригодным для десктопа. Если их всех вместе скомбинировать, то наверное получится пару тысяч строк кода, что тоже довольно мало
@@alenigmaenigmaticovich ага, если запускать демонов не в правильном порядке то не спокойно
`lk_runsvc` гарантирует запуск демона ? (я не знаю, просто интересуюсь без какого либо хейта и т.п.)
Просто, у Вас на 7:54 показан скрипт, где есть функция `log`, которая принимает в качестве аргумента имя демона, и просто напечатает в консоль `[ OK ] demon name`
и при этом Вы вызываете функцию `log` перед тем, как запустить демона...
Что я имею в виду:
```
log "udevd"
lk_runsvc /etc/rc/udevd 0
```
т.е. функция `log` будет напечатать, что всё ок ещё до запуска демона, т.е. `[ OK ] udevd` и только после этого `lk_runsvc /etc/rc/udevd 0`
Потому интересовался, гарантирует ли `lk_runsvc` запуск демона, раз Вы напечатаете `log` что всё ОК до запуска демона
Это хорошее замечание. Было бы логичнее писать OK после запуска демона
Неужто граф зависимостей и гипервизор для сервисов с парсером конфигов - это так много строчек кода? Вы, конечно, можете бросить мне «так системд и начался», но а если серьезно. Это же несложно допилить, будет уже удобно
Отдуши.
Обзор/установку полного комплекта suckless или системы на нём.
Подумаю над этим
Если вы вдруг запутались - ставьте системди
Познавательно, но это уже черезчур, вот тебе более интесное musl c, замена для glib c
и получится Alpine linux
На масле тоже хватает пердолинга. В основном весь софт заточен под Glibc и на Musl, соответственно, работать не будет. С другой стороны, если использовать тот же Flatpak, то оно вроде способно будет запускать Glibc-софт под Musl.
@@Mitsumata именно, да будет работать проверял лично
@@SPRATAY и главное зачем ?
Хотите минимализма- используйте s6.
У меня после перехода на sinit не работает alsa, я создал демона для работы alsa но ничего не работает, что делать?
Скопируй сервис альсы из старой системы инициализации без сокращений. Посмотри какие ошибки возникают при запуске сервиса
имхо лучше просто еще 75 строк в сосименьше добавить без лишних зависимостей.
Круто! А можно ждать видео по NixOS?;)
Можно, но выйдет оно через месяца 2-3
попробовал я артикс, девуан и генту с разными инитами и понял что если не SystemD то OpenRC.
Кого это я не узнал?
@@whereis_doas ???
Попробуй её в Alt сунуть ;)
Зачем хороший инит пихать в 💩 дистрибутив? Оно от этого лучше не станет.
Шумо-музыкальный фон всё портит.
Sinit настолько крутой, что копирует весь функционал systemd в 79 строк кода🤞🤣🤣
Просто поставь systemd
systemd для умственно отсталых
@@grosmaek поплачь)
@@gepron1xыыыыыы я лублу тратить свой озу непонятно на что
@@ownedbyptr сколько у тебя оперативной памяти? 512 мегабайт?
@@gepron1x много. просто я люблю использовать ее оптимально, а это позволяют openrc и runit.