dyne startup sequence
The startup sequence is the flow of scripts being called at system boot. In dyne the init(8) process is configured (see /etc/inittab) to call the script /etc/rc.S first (single user mode) and, once that is succesfully executed, the script /etc/rc.M (multi user mode).
1st step: rc.S - single user mode
The rc.S script operates only within the RamDisk (without the /usr being mounted) and it accomplishes to the task of autodetecting all attached storage devices and loading all needed drivers in order to access them.
By doing so, it writes down a list of devices found:
- /boot/volumes contains a list of all devices found, with flags indicating if they have a dock and/or a nest
- /boot/hdsyslist is created in case there are more harddisks holding a dock, for user selection purposes
At the very end of the detection and, eventually, after having prompted the user for selecting the dock to be used, the single user mode script exports environmental variables to point out where the UsrSystem has been found and which one to be mounted:
- DYNE_SYS_MEDIA is the support type, it can be hdisk or cdrom or usb
- DYNE_SYS_DEV is the device file of the system device in the /dev directory
- DYNE_SYS_MNT is the mountpoint where the system device has been mounted
Once the above environmental variables are set, the init process can proceed into multi user mode. TIP if the flag volatile=true is set as a kernel parameter, then you'll be dropped into an interactive shell at this point of the startup sequence, which can be useful for debugging purposes, to manually mount a system device, etc. for more information see VolatileMode?.
2nd step: rc.M - multi user mode
The rc.M script automatically mount the dynebol.sys that is found in the system device selected during the previous startup step. The dynebol.sys is nothing else than a squashfs read-only filesystem enclosed in a file: it is mounted loopback over the system directory /usr to complete the running system with all the user space tools needed.
After a succesful mount of the UsrSystem, the multi user mode proceeds with an advanced autodetection of all peripherals connected, which is handled by the init scripts included in /etc/init.d :
- rc.vga - detect VGA cards and setup acceleration
- rc.autofs - start automounter services
- rc.language - setup default language
- rc.modules - autodetected and load kernel modules
- rc.firewire - setup firewire controllers
- rc.pcmcia - setup pcmcia controllers
- rc.printer - setup printer services
- rc.sound - setup sound devices
- rc.xbox - special setup for xbox game consoles
Once this is all done it is the turn for the graphical mode startup to run, so rc.X is called.
if the flag ascii=true is set as a kernel parameter, you'll be left into a text console prompt, with full access to all the user tools mounted, simply the graphical X desktop won't be started up. For more information see AsciiMode?.