> I have a question. After GRUB does its job, where does the control
> go to in the kernel? i.e. where do I start reading the kernel sources
> (gnumach and hurd), considering the sequence in which the booting process
> takes place till the shell executes.
GRUB loads /boot/gnumach and pass execution onto it, along with
information on where to find the servers.boot file. (which is why you
have to tell GRUB these two things to boot the Hurd).
GNUMach reads servers.boot (usually at /boot/servers.boot) for information
on what hurd servers to start (as well as other things to set)
servers.boot has a line for invoking ext2fs.static, which contains the
ext2fs hurd server as well as a group of other misc. servers needed for
the system to function.
Somewhere along the line, I suppose init would start, and it parses
traditional UNIX startup files, bringing the system up to the user.
In single user mode, /bin/bash is invoked instead.