Ну так объясните
Попробую. Правда популяризатор из меня.....
Init Richy до строки 92 мало отличается от init Puppy и PR.
Стр. 9 -33 функция check_status, выдаёт "готово" или "ошибка"
Стр. 35 - загрузка шрифта
Далее до строки 69 задаются переменные
Стр. 71 - 73 монтируются внутренние ФС
Стр. 80 - 90 секция tuxonice
Дальше моё "художество". Сначала определяем $PDEV и $PDIR если не заданы dev и dir в /proc/cmdline, иначе говоря в строке загрузки menu.lst, при этом dev может быть указан и как sd.. и как uuid.
В строке 134 - копирование DISTRO_SPECS в /etc/initvars.
После этого разбираемся с $PCOPY, если устройство "removable" && PCOPY="yes"
Дальше совсем просто, ищем по имени и сразу монтируем базу, затем файл или каталог сохранения, затем kernel (по uname -r) и отмечаем его наличие переменной ZLAYER=':/kernel=ro'.
Аналогично, только циклом, происходит монтирование модулей из modules и их запись в $UMNTRO
Стр. 236 -241 записываем переменные в /etc/initvars
Стр. 245 - главная строка монтирования aufs
После этого модули перемонтируются в /pup_new/... и монтируется раздел /home, если таковой указан.
В завершение отмонтируются внутренние ФС (/proc и /sys) и exec switch_root /pup_new /sbin/init - переходим внутрь созданной aufs и запускаем init.
Вот и всё