LINUXTALKS.CO

Я ПРИДУМАЛ САМЫЙ КРУТОЙ ЛИНУКС

 

L


0

1

Практически да. В общем, далее я постараюсь максимально кратко и насколько это возможно понятно, что я хочу:

Нужна такая новая фишка, я назвал ее слои. В общем слой, это такой подключаемый кусок файловой системы в котором могут храниться пакеты и опционально необходимые файлы к ним (конфиги и все такое). Далее я могу создавать слои, добавляя необходимые пакеты из системы в него. К примеру все пакеты из base и base-devel, а также нужные консольные утилиты (vim, mc, htop и все такое). Могу создать еще слой для графики, например пакеты xorg-* xf86-* и до кучи туда кинуть графическое окружение с файловым менеджером и т.д. Все остальные программмы к примеру в еще один отдельный слой (или вот например отдельный для вайна и его мусора). Суть в чем, такие слои запаковываются в какую-нибудь фс вроде squashfs (это вроде должно хорошо подходить, оно рид-онли, что добавит немного к безопасности, меньше шансов испогнанить такой слой, а еще оно будет сжато, что тоже круто.

И еще такие слои должны уметь монтироваться на горячую и все такое, чтобы условно захотел я в игры играть, подключил слой с вайном и играми, поиграл и отмонтировал его к чертям. Или захотел обновить себе срез ПО, сделал обновление, создал поновой слои и готово. А можно еще чтобы в разных слоях были разные версии ПО. Захотел, сделал слой с блиндинг-эдж кедами, захотел, сделал из стейлветки, а еще крыску и гном. Таким образом, если наготовить этих блинов, потом можно их подключать и отключать когда вздумается.

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

Еще классно, что условно, пользователь может перепробовать хоть все пакеты из репозитория, и потом когда он это все удалит у него останется такая же чистая система, как и была до этого, никакого мусора по всем каталогам. Алсо, каталоги в корне я бы тоже изменил, я в полном ахуе от одних только /bin /usr/bin /sbin /usr/sbin, да и все остальные каталоги тоже от дедов из 70-х достались. По факту должно быть ровно 2 каталога, условный /system и какой-нибудь /home/username.

Такой дистрибутив будет иметь одну интересную фишку: на его основе можно будет очень легко готовить «свои сборки». То есть условно, вы можете создать свой слой пакетов поверх base, настроить все что только можно, драйвера, вайн, программы все, десктопное окружение, конфиги и темы оформления, все это запаковать как VASYAN1337_KDE6_EDITION.img который достаточно просто скачать в свою систему и примонтировать.

Ща отдохну и еще может чо напишу, охуенно выходит

У половины линуксоидов от snap, flatpak и appimage жопа горит, а тут еще слои какие-то.

Алсо, что-то такие треды слишком часто начали появляться. На лоре только 4-5 штук было за последний месяц-два.

Zadoff386    
★★★★★
Последнее исправление: Zadoff386 (всего исправлений: 1)

Windows / Firefox
Ответ на: комментарий от JamesHolden

Серьезно? Я когда-то давно щупал, но в детали не вникал, у меня там завелось ровно ничего. Если бы хоть как-то вифи работал, уже можно было бы вкатиться, а так, увы.

shikata_ga_nai    
★★★★★
Linux / Chrome

У меня для тебя идея которую я отложил подальше.

Нужно модифицировать утилиту dpkg, что бы она не распаковывала файлы из пакета в файловую систему, а создавала символические ссылки на уже распакованный пакет в каталог с его именем.

Например пакет распакован в /packages/sid/libc6_2.36-9_amd64.deb/

Соответственно его файлы расположены по абсолютным путям типа /packages/sid/libc6_2.36-9_amd64.deb/etc/ld.so.conf.d/x86_64-linux-gnu.conf

При установке программ пакеты сначала монтируются через btfs и программа сразу готова к работе. Постепенно в фоне файлы копируются в локальный каталог /packages/ и происходит переименование символических ссылок в классических /usr, /var/lib

Если требуется запустить одну конкретную программу из experimental, а основа stable, то создаётся /distributions/experimental/root/ при помощи mount --bind присоединяются /dev, /proc, /etc/passwd, /etc/group, /home, /tmp

Все переменные окружения и параметры запуска программы выгружаются в файл. Происходит chroot /distributions/experimental/root/ в эту систему, далее su username, после из файла восстанавливаются переменные окружения и запускается программа с ранее сохранёнными параметрами.

Не знаю насколько двоично совместимы libc из экспериментальной ветки и ядро из стабильной.

rezedent12    
★★★★★★
Windows / Firefox

Я, возможно, не понял в чём фишка, но у меня хостер в своё время делал виртуализацию на FreeBSD, кажется, Jail, и там было, по-моему почти то, что ты называешь слоями. Общесистемное ПО хранилось на своём физическом хранилище одно для всех клиентов физического сервера и НЕ ЗАНИМАЛО МЕСТО в дисковом пространстве пользователя. При этом VDS клиента воспринимала общие и свои файлы (два слоя) как часть одной ФС.

Потом, конечно, всё скатилось, новых VDS по этой технологии они не предоставляют, банальный KVM и (кажется) XEN.

Не то?

hobbit    
★★★★★
Android / Chrome
Ответ на: комментарий от hobbit

Это был один из вариантов серверной контейнеризации. А тут больше вопрос в том, чтобы сделать десктопный вариант. Нечто, как это реализовано в AppImage, OS X, Haiku.

JamesHolden    
★★★★★★
Последнее исправление: JamesHolden (всего исправлений: 1)

Linux / Chrome