Набросок концепции системы:
Структура системного (home) каталога:
- /boot [каталог]
- initrd.gz
- vmlinuz
- /packages [каталог]
- (Здесь все автоподключаемые PFS, в т.ч. базовые)
- /squashfs [каталог]
- (Здесь все автоподключаемые SFS, по умолчанию пусто)
- /lego.cfg
- /userfs.[2|3|4|s]fs
- (Здесь могут быть и другие файлы, например swap).
Системный (home) каталог системы - тот, в котором находится конфиг. файл (lego.conf).
По умолчанию скрипт init должен искать "lego.conf" (до первого найденного) во всех разделах, в корне и в каталогах первого уровня.
Параметр загрузки config=* требует искать файл с конкретным именем (и, при желании, с полным путем, таким образом система может быть расположена в каталоге с любым уровнем вложенности).
Параметры загрузки системы могут быть как в конфиг. файле (lego.conf), так и переданы обычным способом через загрузчик (параметры из загрузчика имеют приоритет).
Все .pfs-файлы из каталога "packages" при загрузке подключатся в алфавитном порядке. Название каталога "packages" может быть изменено параметром в конфиг. файле, при этом может быть указано несколько каталогов.
Все .sfs-файлы из каталога "squashfs" при загрузке подключатся в слои ниже .pfs. Название каталога так же может быть изменено параметром в конфиг. файле.
userfs.[2|3|4|s]fs - "сохраненка". Штатными средствами системы может быть создан только один файл с конкретным названием.
Также хотелось бы попробовать реализовать возможность использовать вместо файла каталог (только на *nix-разделах), как альтернативу отсутствующей Full-установке.