BootingSequence

Revision 2 as of 2007-04-08 09:04:29

Clear message

Booting

Quickly brain dumping thoughts about the boot sequence for breezy+1...

initramfs

Responsible for getting us into user space; this will load essential modules and create /dev. It will queue the user-space plug events until we can deal with them.

Once this finishes, we're in the real filesystem and have a useful /dev.

S:S01

The absolute first things we need to get running are those things it's assumed that any sensible unix has all the way though.

  • Move /dev from the initramfs into place
  • Mount /proc and /sys
  • Make sure basic networking (lo, AF_UNIX, etc.) are available

S:S02

Now we finish off the hardware detection; it's silly to have any further points in the boot sequence that can't depend on reliable hardware plugging. We bring up udevd and play any queued events into userspace.

This will mean anything in /etc/udev can't rely on /usr being around, but that's just sane anyway!

From this point on, all hardware events happen straight away. The old "hotplug/coldplug" scripts are gone, replaced by finding and queueing the events in initramfs and running them here.

We'll need to make sure depmod is up to date by this point; this should only really happen if there's been changes.

S:S03-S:S05

Bring up the console, set the user keymap and console. We do this here so anything following that needs the user to do something will have a usable input; otherwise they might not be able to type the answer!

S:S10-S:S30

Get the filesystem up and running. Things that would go here are things like the RAID management, hdparm, check the filesystems, lvm, evms, etc.

S:S30+

Anything else that's left that's mandatory before rc2 starts .. things like readahead, setting the hardware clock, cleaning up debris from last boot, etc.

2:S01-S09

Get things up that are required to go graphical; dbus, and anything else really.

2:S10

Start gdm.

2:S15+

Start any other user services, none of these should be important.

What's missing

Nowhere to start networking? That's going to be network-manager and should be entirely driven by hotplug events! Anything that needs a network, things like ntpdate etc. will become if-up.d events -- same for mounting nfs filesystems.