CRUX NG — бездисковый дистрибутив ориентированный на сетевую прозрачность и загрузку по сети, в основе которого, конечно же, CRUX.
— NG?
— NextGen!
Текущее состояние пре-альфа-версия, поскольку это только initrd-образ для загрузки с локального сервера. Дистрибутив загружается напрямую в оперативную память. Если у вас дома чисто случайно так крутится DHCP, TFTP, iPXE, да ещё QEMU какой-нибудь, вам это может показаться интересным. А если нет, то вперёд, настраивать. ;)
В составе образа обновлённый core-репозиторий CRUX, сжатый при помощи xz и размером всего 132мб, — именно столько оперативной памяти будет расходовать корневая ФС дистрибутива после загрузки. В текущей стадии развития дистрибутива вы просто получаете чистый CRUX работающий из памяти.
CRUX NG использует squashfs и overlay для работы. squashfs это ФС доступная только для чтения, в которой находится сама ОС, а overlay создаёт дополнительный слой «поверх» squashfs, tmpfs-диск в памяти, куда записываются все изменения. Таким образом система полностью работоспособна. Всё очень просто, «по-CRUX'овски». Соответственно, когда вы будете собирать ядро (рекомендую), хотя бы ванильное, то обратите внимание чтобы эти опции были включены, можете посмотреть config.
— Очередной школолодистр с нескучными обоями, надолго тебя хватит...
— У вас, как и у меня, наверняка есть старые железки, ресурс которых ещё можно утилизировать. Да просто виртуалки с сервисами запускать. Целью проекта сделать полноценный, но лёгкий дистрибутив, такой как CRUX, загружаемым и работоспособным («прозрачным») по сети. Мне очень нравится сама идея, что одним нажатием кнопки Reset система возвращается в исходное состояние и никакие кулхацкеры вам не страшны. Пока у меня есть хотя бы один лишний ПК в доме, — я буду развивать проект.
Архитектура такой системы централизована и её удобно поддерживать. Например, мой роутер загружается по сети, по сети же получает свою конфигурацию и начинает выполнять функции роутера — раздавать интернеты, в том числе и самому серверу, с которого он эту конфигурацию получил по локальной сети. Идентификация хоста, какую ему конфигурацию отдать, происходит по mac-адресу, поэтому любая железка или виртуалка, просто сообщая свой mac-адрес, сможет получить любую конфигурацию и начать выполнять инструкции прописанные для данного mac-адреса.
Что будет сделано в ближайшее время?
1) Образ корневой ФС будет урезан до минимума. Чистый core это хорошо, но на «тонких серверах» (это как «тонкие клиенты», только «тонкие сервера», выполняющие одну задачу, но делающие её хорошо (ц) :-) все эти инструменты разработчика и прочие утилиты ни к чему. CRUX NG даст только минимум, необходимый для подключения, загрузки дополнительных пакетов и получения конфигурации по сети. По итогу система станет ещё меньше, прям, сущие копейки. В пределах 50мб (это с глибцом).
2) Будет улучшена поддержка железа. Сейчас это ядро, какое вы сами соберёте, такое у вас и будет. Никакой /lib/firmware нет, а надо бы, ради поддержки сетевых карт и Wi-Fi, хотя бы. Загружать ОС по Wi-Fi — топ.
3) Основой системы всегда будет ванильный CRUX, хотя ничего не мешает загружать любую другую ОС в оперативную память по сети, но все прочие дистрибутивы для меня слишком сложные. «Сложна, сложна!» (ц)