Запуск Richy:
Стадия 0:
Зависит только от загрузчика, дистрибутив здесь ни при чём.
Загрузка ядра и рамдиска. Производится загрузчиком с любого носителя или по сети (pxelinux).
Стадия 1 (скрипт init):
Поиск модулей Richy или другого дистрибутива и создание aufs с дальнейшим switch_root
Подробнее, но не до конца,
здесьexec switch_root /pup_new /sbin/init
В настоящее время загрузка Richy по сети удалена из-за невостребованности, но во времена Puppy Jeans-130 такая загрузка была продемонстрирована на местной линуксовке.
Стадия 2 (busybox init):
init <- inittab -> udev -> run-parts -a start -> getty -> autologin -> profile -> xinit <- .xinitrc
init (busybox) последовательно выполняет /etc/inittab
- /bin/mount -o remount,rw / - даём доступ к корню на запись
- /bin/mount -a - монтирует всё, записанное в fstab, а это: /proc, /sys, /dev.
- /sbin/udevd --daemon - запуск udev
- /sbin/udevadm trigger - определение устройств, загрузка модулей ядра
- /bin/run-parts -a start /etc/init.d - (не обязательный пункт) запуск служб скриптами из init.d или так - /bin/ls -1 /etc/init.d | while read S; do /etc/init.d/$S start; done
- tty1::respawn:/sbin/getty -n -l /bin/autologin 38400 tty1 - запуск первой консоли с автологином
- tty2::respawn:/sbin/getty 38400 tty2
tty3::respawn:/sbin/getty 38400 tty3 - (не обязательно) запуск второй и третьей консоли
При запуске консоли исполняется /etc/profile, задаются переменные окружения и производится запуск иксов.
Для исключения ошибки повторного запуска иксов создаётся файл-метка /tmp/bootcnt.txt
xinit - запускает иксы и исполняет ~/.xinitrc, в котором прописан запуск DE.
Всё.