> !rc (and the rest of the boot) is one of the first things implemented 
> uniquely by 9front.

I think there's a little bit of confusion about different stages of booting.

The 9boot program loads the kernel. The original Plan 9 9boot is driven
by configuration variables in a plan9.ini file. Cinap's rewritten 9boot
adds the capability of interactively changing configuration variables from
the console before loading the kernel. That's really useful, especially
when experimenting with new kernels or new hardware. But 9boot does not
contain a shell or a built-in file system, so it doesn't allow you to
type !rc and get an interactive shell.

Once the kernel is loaded, the first thing it does is to execute the
command /boot/boot from a small root filesystem which is built into the
kernel. The main job of /boot/boot is to attach to the real root filesystem
(on a local device or from a network server) and execute /$cputype/init to
start the system. Historically the usual case is for /boot/boot to
be a specialised program built from C source in /sys/src/9/boot. But it
has always been possible to configure a kernel with a shell script as
/boot/boot - see for example /sys/lib/sysconfig/ppc/boot for the PowerPC,
or /sys/src/9/bcm/bootwifi.rc for a Raspberry Pi accessing its root file
server via wifi.

So, using a shell script as /boot/boot is not unique to 9front. But
with 9front, it has become the default. This means there's always a
shell inside the kernel, along with a few commands, ready to use
interactively when !rc is invoked - after the kernel is loaded, but
before the final root filesystem is attached.

The kernel on the 9legacy install CD doesn't have a shell script as
/boot/boot with the ability to invoke !rc. Perhaps it should. But that
wouldn't have helped in this case. Yakku was stuck at the 'Boot from'
prompt within /9boot, unable to find a kernel to boot.


------------------------------------------
9fans: 9fans
Permalink: 
https://9fans.topicbox.com/groups/9fans/Tb5aaf646618a421a-M3a252d01292986d2f6699d46
Delivery options: https://9fans.topicbox.com/groups/9fans/subscription

Reply via email to