Наверное самое сложное видео, которое я когда-либо делал. Дайте мне знать, если вы хотите видеть ещё подобные узконаправленные технические видео. Только часто я их делать точно не смогу :)
Чуваааак, ты мега крутой! Это прям очень интересно и нужно нашему сообществу красноглазиков) Мы безусловно ждем таких проектов и будем поддерживать вниманием!
У suckless действительно хватает утилит, чтобы целый дистрибутив создать. Такой уже даже есть, morpheus называется, но к сожалению его перестали поддерживать
Схема с svscan и littkit это, конечно, эталонный костылятор) После такой экскурсии хочется написать что-то своё и "правильное", чтобы можно было работать с порядком запуска сервисов, чтобы были зависимости и т.п, однако, [тут должна быть ссылка на генту вики с системами инициализации]. Авторы sinit наверное очень собой довольны, но здесь явно недостаёт удобств для пользователя)) Выключение компьютера это вообще восторг :) Поиграться будет весело, но не более)) А за видео спасибо, реально интересно!
Согласен, уж littkit точно можно заменить на что-то своё, а с заменой daemontools будет посложнее. sinit конечно можно допилить до более юзабельного состояния с управлением демонами и разрешением зависимостей, при этом не превышая 500-1000 строчек кода, что тоже очень минималистично, но суть sinit именно в максимальном упрощении функционала
@@ampersand3636 кстати, надо взять во внимание то, что скрипт /bin/rc.init можно запустить прямо через параметры ядра, в таком случае sinit будет вообще не нужен. по поводу краша демонов - тут спорно, я ниразу не сталкивался с крашем демонов, но их можно поднимать тем же bash скриптом который будет за ними следить. по сути вы написали систему инициализации на bash, ничего не хочу сказать напротив, наоборот вы мне помогли понять как происходит инициализация на таком уровне, ваш скрипт я взял, убрал оттуда все зависимости и теперь гружусь очень быстро. как считаете, стоит ли делать форк на github где все это реализуется на bash? а так, спасибо вам за ролик, я прозрел.
Как же круто иметь полный контроль над системой. Огромное спасибо за гайд. Теперь точно знаю, какой инит поставлю, когда буду собирать LFS. Однозначно лайк
Интересно, конечно. Прямо ностальгия по старому иниту. И вот проблемы те же - lk по сути заменяет svscan, потому как случайный порядок загрузки демонов сегодня - довольно уныло. Или, допустим, у меня amiшка на амазоне с бинарником сервиса. Я его стартую в том же systemd прописав зависимость - работает, само поднимается... Ну красота же! Да,не самое идеологически правильно решение, но точно рабочее.
Мне кажется, тема rc.init и rc.shutdown не раскрыта как надо. Что в видео, что в гайде просто говорят скопировать файлы и не сильно задумываться об их содержании, что, имхо, странно, т.к. большинство это будет делать только в образовательных целях не на реальных системах (За себя не говорю, прямо сейчас устанавливаю sinit на основной ПК). Про такие вещи, как /dev/shm и /dev/pts я узнал только когда переписывал скрипт и ради интереса пошёл искать, зачем они нужны и нужны ли они мне. Однако в остальном могу только поблагодарить автора за проделанный труд, ибо за исключением гайда из описания (который подразумевает установку только на определённые дистрибутивы), в интернете почти нет разъяснений по этой теме.
Привет, автор! Это конечно очень интересно, но возник вопрос в нужности этих действий. Все равно все не заменить, да и к тому же некоторые вещи просто не способны работать с другими системами инициализации. Мне конечно хотелось бы попробовать, но мучаться с тем что каждый раз что-нибудь не работает потому что не systemd не очень хочется. Вот если сделаешь полноценную текстовую (или видео) инструкцию со всеми нюансами, настройками, аналогами нужных для работы вещей, то тогда будет смысл от всего этого
Сейчас много вещей действительно завязаны на systemd. Но это конечно зависит от того, какой функционал требуется от системы. Мне например на OpenRC всего хватает. Что касается sinit, то если скопировать бОльшую часть скриптов из других систем инициализации со всевозможными проверками чтобы они работали на всех дистрибутивах, то получится вполне стабильная система инициализации. А также желательно пофиксить корявый скрипт выключения. Как будет время и возможность займусь этим
@@ampersand3636 было бы интересно посмотреть продолжение, а так вообще намешать из всех других систем инициализации тоже не есть хорошо. В таком случае лучше использовать сразу готовую, взрослую и проверенную систему инициализации. А так как хобби вполне. Кстати а как вам пришла в голову идея заняться этим, что для этого нужно и т.д.?
Идея пришла после видео со сравнением скорости всех систем инициализации, где sinit оказался самым быстрым. Решил записать полный обзор. Что для этого нужно? Лишь доступ в интернет, чтобы гуглить возникающие ошибки :)
@@ampersand3636 топовое видео, и да, вопрос о необьходимости sinit на десктопе остро стоит, а вот во встраиваемых системах... Не думал сделать видос о сборке дистрибутива для встраиваемой системы типо SBC, телефона, планшета?
`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` что всё ОК до запуска демона
Очень крутое видео, вот только я не до конца понял, как установить арч с sinit, там же систем д по умолчанию стоит и насколько я помню мы его руками не ставим при установке, а тут мы поверх него ставим синит и норм работает?
Да, просто поверх systemd ставится sinit. Кстати, можно откатиться обратно на systemd без проблем, если заменить /sbin/init обратно на /usr/lib/systemd/systemd. То же самое работает, если sinit был поставлен поверх любых других систем инициализации
Отличное видео! Спасибо! Только хотелось бы больше про плюсы и минусы, в сравнении с другими системами инициализации... Ну системд на десктопе понятно, слишком толсто, а вот рунит например, какие плюсы перед ним, ну кроме мимилистичности?
Из плюсов наверное только контроль над системой и время запуска. От запуска sinit до появления /dev/tty1 проходит меньше секунды. А так по удобству sinit конечно сильно уступает всем остальным инитам
@@ampersand3636 Хорошо, но также интересно какие устройства используешь? Пользуешься ли девайсами от purism, starlabs, nitrokey? Использеушь ли coreboot и измеримую загрузку?
Да, это может работать и на ванильном sinit, просто daemontools и LittKit делает всё более удобным и пригодным для десктопа. Если их всех вместе скомбинировать, то наверное получится пару тысяч строк кода, что тоже довольно мало
Неужто граф зависимостей и гипервизор для сервисов с парсером конфигов - это так много строчек кода? Вы, конечно, можете бросить мне «так системд и начался», но а если серьезно. Это же несложно допилить, будет уже удобно
На масле тоже хватает пердолинга. В основном весь софт заточен под Glibc и на Musl, соответственно, работать не будет. С другой стороны, если использовать тот же Flatpak, то оно вроде способно будет запускать Glibc-софт под Musl.
Наверное самое сложное видео, которое я когда-либо делал. Дайте мне знать, если вы хотите видеть ещё подобные узконаправленные технические видео. Только часто я их делать точно не смогу :)
Мне понравилось! Довольно редко встречаю подобные познавательные ролики. Однозначно буду только рад видеть периодических их на вашем канале
конечно хотим
как на счет 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 зроби форк
Как же круто иметь полный контроль над системой. Огромное спасибо за гайд. Теперь точно знаю, какой инит поставлю, когда буду собирать LFS. Однозначно лайк
Ты безумец. Молча скинул видос друзьям. Надеюсь, у тебя не закончится энтузиазм!)
Ну ты и красава! Менять dinit на sinit я, конечно, не собираюсь, но на том же тестовом арче протестить можно
Хайповый ролик, контент у тебя крайне интересный на канале. Спасибо за обзор sinit, потыкать в Арче будет крайне интересно!
Спасибо за видео. Теперь ждем установку tcc и прочих на замену gcc)
Спасибо за твой контент! Благодаря тебе решил поставить артикс с динитом. Вроде норм получилось)
Спасибо за труды! Было ооочень интересно, но мало понятно😅
Таких видео надо поболее. Отличная работа!!!
Очень круто, хотелось бы больше подобного контента)
Отличное видео!
Наконец-то я нашёл тот инит, который запустился бы на моем старом ноуте
Это у тебя какое железо?
@@AlexandrVtoroy печатный станок
Интересно, конечно. Прямо ностальгия по старому иниту.
И вот проблемы те же - lk по сути заменяет svscan, потому как случайный порядок загрузки демонов сегодня - довольно уныло.
Или, допустим, у меня amiшка на амазоне с бинарником сервиса. Я его стартую в том же systemd прописав зависимость - работает, само поднимается... Ну красота же!
Да,не самое идеологически правильно решение, но точно рабочее.
Мне кажется, тема rc.init и rc.shutdown не раскрыта как надо. Что в видео, что в гайде просто говорят скопировать файлы и не сильно задумываться об их содержании, что, имхо, странно, т.к. большинство это будет делать только в образовательных целях не на реальных системах (За себя не говорю, прямо сейчас устанавливаю sinit на основной ПК). Про такие вещи, как /dev/shm и /dev/pts я узнал только когда переписывал скрипт и ради интереса пошёл искать, зачем они нужны и нужны ли они мне.
Однако в остальном могу только поблагодарить автора за проделанный труд, ибо за исключением гайда из описания (который подразумевает установку только на определённые дистрибутивы), в интернете почти нет разъяснений по этой теме.
Повторю слова великих "Них*я не понял. Но ОЧЕНЬ интересно"
Довольно круто.
Дак в итоге получается тоже самое что делает runit. И litkit не нужен, если определить зависимости демонов в стиле runit
топ контент, красавчик
Всё что не СисяД - круто и здорово!!! Даже SysV.
Привет, автор! Это конечно очень интересно, но возник вопрос в нужности этих действий. Все равно все не заменить, да и к тому же некоторые вещи просто не способны работать с другими системами инициализации. Мне конечно хотелось бы попробовать, но мучаться с тем что каждый раз что-нибудь не работает потому что не systemd не очень хочется. Вот если сделаешь полноценную текстовую (или видео) инструкцию со всеми нюансами, настройками, аналогами нужных для работы вещей, то тогда будет смысл от всего этого
Сейчас много вещей действительно завязаны на systemd. Но это конечно зависит от того, какой функционал требуется от системы. Мне например на OpenRC всего хватает. Что касается sinit, то если скопировать бОльшую часть скриптов из других систем инициализации со всевозможными проверками чтобы они работали на всех дистрибутивах, то получится вполне стабильная система инициализации. А также желательно пофиксить корявый скрипт выключения. Как будет время и возможность займусь этим
@@ampersand3636 было бы интересно посмотреть продолжение, а так вообще намешать из всех других систем инициализации тоже не есть хорошо. В таком случае лучше использовать сразу готовую, взрослую и проверенную систему инициализации. А так как хобби вполне. Кстати а как вам пришла в голову идея заняться этим, что для этого нужно и т.д.?
Идея пришла после видео со сравнением скорости всех систем инициализации, где sinit оказался самым быстрым. Решил записать полный обзор. Что для этого нужно? Лишь доступ в интернет, чтобы гуглить возникающие ошибки :)
@@ampersand3636 топовое видео, и да, вопрос о необьходимости sinit на десктопе остро стоит, а вот во встраиваемых системах... Не думал сделать видос о сборке дистрибутива для встраиваемой системы типо SBC, телефона, планшета?
`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 после запуска демона
Очень крутое видео, вот только я не до конца понял, как установить арч с sinit, там же систем д по умолчанию стоит и насколько я помню мы его руками не ставим при установке, а тут мы поверх него ставим синит и норм работает?
Да, просто поверх systemd ставится sinit. Кстати, можно откатиться обратно на systemd без проблем, если заменить /sbin/init обратно на /usr/lib/systemd/systemd. То же самое работает, если sinit был поставлен поверх любых других систем инициализации
Есть вопрос, что делать со сервисом anacron он обращен к стоп старт демон. Есть ли другие сервисы, что с ними делать или они не очень нужны?
@ampersand3636 Вопрос Амперсанду но кто знает ответте.
Отличное видео! Спасибо! Только хотелось бы больше про плюсы и минусы, в сравнении с другими системами инициализации... Ну системд на десктопе понятно, слишком толсто, а вот рунит например, какие плюсы перед ним, ну кроме мимилистичности?
Из плюсов наверное только контроль над системой и время запуска. От запуска sinit до появления /dev/tty1 проходит меньше секунды. А так по удобству sinit конечно сильно уступает всем остальным инитам
@@ampersand3636 ок понял!
Очень интересно, но не хрена не понятно 😊 лайк с меня за труд, бро
Спасибо за интересное видео. Еще интересно: какой девайс используешь, видно что TianoCore в качестве прошивки?
Это виртуальная машина QEMU/KVM :)
@@ampersand3636 Хорошо, но также интересно какие устройства используешь? Пользуешься ли девайсами от purism, starlabs, nitrokey? Использеушь ли coreboot и измеримую загрузку?
Жду время загрузки ПК с помощью efistub+sinit
Нельзя в скрипт запуска dbus сразу вписать запуск sddm?
есть покетный менеджер от саклэсс?
Не уверен, но у них был дистрибутив morpheus, который перестали поддерживать. Там возможно был пакетный менеджер
У меня после перехода на sinit не работает alsa, я создал демона для работы alsa но ничего не работает, что делать?
Скопируй сервис альсы из старой системы инициализации без сокращений. Посмотри какие ошибки возникают при запуске сервиса
Еще вопрос о том как записать в init.rc запуск сервисов.
@ampersand3636 Вопрос Амперсанду но кто знает ответте.
Очень круто и после этго ты себя не считаешь программистом?)
75 строк это конечно круто, но к чему потом перечислять утилиты без которых это работать не будет, а сколько там строк кода?
Ну так оно без всего спокойно работает, видео про расширение функционала этих 75 строк
Да, это может работать и на ванильном sinit, просто daemontools и LittKit делает всё более удобным и пригодным для десктопа. Если их всех вместе скомбинировать, то наверное получится пару тысяч строк кода, что тоже довольно мало
@@alenigmaenigmaticovich ага, если запускать демонов не в правильном порядке то не спокойно
Кстати, а будет видео по смене системы инициальзации в Arch Linux?
Пока что не вижу в этом смысла. Можно установить почти любую систему инициализации из AUR-а и скачать нужные скрипты из репозиториев артикса
@@ampersand3636 А где найти эти скрипты?
Здесь packages.artixlinux.org/?search_criteria=dinit&limit=50
👍👍👍
Гений
Отдуши.
Обзор/установку полного комплекта suckless или системы на нём.
Подумаю над этим
Круто! А можно ждать видео по NixOS?;)
Можно, но выйдет оно через месяца 2-3
Если вы вдруг запутались - ставьте системди
Неужто граф зависимостей и гипервизор для сервисов с парсером конфигов - это так много строчек кода? Вы, конечно, можете бросить мне «так системд и начался», но а если серьезно. Это же несложно допилить, будет уже удобно
ждем alpine linux на десктопе
❤
попробовал я артикс, девуан и генту с разными инитами и понял что если не SystemD то OpenRC.
Кого это я не узнал?
@@whereis_doas ???
так это же буквально runit
Познавательно, но это уже черезчур, вот тебе более интесное musl c, замена для glib c
и получится Alpine linux
На масле тоже хватает пердолинга. В основном весь софт заточен под Glibc и на Musl, соответственно, работать не будет. С другой стороны, если использовать тот же Flatpak, то оно вроде способно будет запускать Glibc-софт под Musl.
@@Mitsumata именно, да будет работать проверял лично
@@SPRATAY и главное зачем ?
имхо лучше просто еще 75 строк в сосименьше добавить без лишних зависимостей.
Хотите минимализма- используйте s6.
Попробуй её в Alt сунуть ;)
Зачем хороший инит пихать в 💩 дистрибутив? Оно от этого лучше не станет.
Sinit настолько крутой, что копирует весь функционал systemd в 79 строк кода🤞🤣🤣
Шумо-музыкальный фон всё портит.
Просто поставь systemd
systemd для умственно отсталых
@@grosmaek поплачь)
@@gepron1xыыыыыы я лублу тратить свой озу непонятно на что
@@ownedbyptr сколько у тебя оперативной памяти? 512 мегабайт?
@@gepron1x много. просто я люблю использовать ее оптимально, а это позволяют openrc и runit.