Давно в чертогах разума есть у меня идея принципиально нового дистра.
Зачем оно надо: для увеличения модульности системы так, чтобы стало проще и безопаснее, но при этом ничего не сломалось.
Суть: как кажется на первый взгляд, посылаем FHS лесом, кладём базовую систему отдельно, обновления отдельно, программы отдельно. Вместо точкопомойки в хомяке каждому приложению заводится отдельная директория в ~/.appdata.
Чтобы запустить приложение, монтируем в отдельную директорию с помощью unionfs базовую систему, обновления к ней, собственно программу, аппдату из хомяка и куски реального пользовательского хомяка, которые пользователь хочет отдать в распоряжение программе (тут надо сделать красивые cli и gui, чтобы в рантайме можно было добавлять/удалять доступ к пользовательским директориям). И запускаем приложение в чруте.
Структура файловой системы получится примерно такая:
/meta/
home/
user/
Pron/
Documents/
Downloads/
...
.appdata/
firefox/
.mozilla/
pidgin/
.purple/
base/
bin/
usr/
...
updates/
2013-10-10/
usr/
...
2013-11-15/
usr/
...
apps/
firefox/
root/
usr/
bin/firefox
...
icon.png
manifest
pidgin/
root/
usr/bin/pidgin
...
...
roots/
0000/ # mounted with base, updates, home and running system ui
usr/
home/
...
0001/ # mounted from base, updates, firefox root, /home/user/Downloads and /home/user/.private/firefox
usr/
bin/firefox
...
home/user/
Downloads/ (/meta/home/user/Downloads)
.mozilla/ (/meta/home/user/.appdata/firefox/.mozilla)
...
0002/ # mounted from base, updates, pidgin root and /home/user/.private/pidgin
usr/bin/pidgin
home/user/.purple
...
Плюсы:
- Приложения не срут друг другу и пользователю, не тырят файлы и т. д.
- Установка/удаление приложений или обновление/откат обновлений — простые операции с файловой системой
- Этот велосипед можно будет прикрутить к любому традиционному дистрибутиву (от дебиана до арча)
Минусы:
- Система становится более сложно устроена, большее несовпадение между логическим и физическим уровнями.
- Может пострадать производительность
- Система будет занимать больше места на диске (так как всё, что не входит в базовую систему, будет продублировано)
- Труднее обновлять систему и приложения (решается написанием враппера, использующего пакетный менеджер низлежащего дистрибутива)
К велосипедостроению приступлю ориентировочно после закрытия сессии.