RMoX logo

RMoX

A Scalable, Compositional Operating-System
for Commodity Platforms

   

Documentation

[ booting | success | sysconsole | graphics ]

Booting RMoX

Depending on how you built RMoX, or downloaded a copy, you should have one (or both) of the following:

  • a multiboot image named rmox; or
  • a hard-disk image named hdimage.rmox

The multiboot image can be booted on real hardware, through the use of an appropriate bootloader. For our own testing purposes, we boot RMoX off the network, which saves repeated updates to a boot-loader. The following describe various ways of getting RMoX booted.

Booting RMoX in QEMU:

This is probably the easiest way to play around with RMoX. You'll need to have the QEMU emulator installed, along with vgabios and Bochs (the BIOS). On a Debian Linux installation, the following command (as root), will usually do the job:


bash:~/# apt-get install qemu

With the hard-disk image hdimage.rmox to hand, execute the following:


bash:~/$ qemu -boot c -hda /path/to/hdimage.rmox -serial stdio

Booting from the network on real hardware:

If you want to try out RMoX on real hardware without having to install the image, you can boot it off the network. How this is achieved will depend on your particular setup. We typically use Etherboot, in combination with a DHCP or BOOTP server, and TFTP server on the network. However, using a system's native PXE network boot mechanisms should work just as well, provided the approriate server exists.

To use Etherboot, you'll need a suitable image for your particular network hardware. The on-line rom-o-matic can be used to generate this. Once you have the Etherboot binary image, install it into your existing bootloader (GRUB or GRUB 2 recommended, but rom-o-matic will be able to generate a format compatible with most bootloaders). See below for how to put Etherboot into your existing GRUB configuration (booting the Etherboot ROM rather than RMoX).

To actually boot the RMoX image off the network, the rmox file will need to be available over TFTP (or similar). On our development systems that provide the DHCP and TFTP services, this involves having a symbolic link "/tftpboot/rmox", which points at the build-time generated "rmox" file.

Booting locally on real hardware:

If you want to use a bootloader such as GRUB or GRUB 2 on your existing Linux system to boot RMoX, copy the rmox image to somewhere the bootloader can see it (typically "/boot/"), and add an entry along the following lines:


title RMoX
kernel /boot/rmox

Then re-run "grub-install" (or whatever command your system uses to update GRUB). When the system is rebooted, select "RMoX" from the boot menu.

Successful boot

RMoX 1.5.0 in QEMU After a successful boot, you will be left at the default virtual terminal, which displays log messages generated by the system. This should look something like the screen on the right (click for a full-size image).

There are six virtual-terminals provided by default. The first displays log message, and the fifth and sixth provide system consoles (into which commands can be entered to interact with the system). If so configured, the other three virtual terminals will have running demo programs on them, otherwise they will be blank. The function-keys F1 to F6 are used to switch between virtual terminals.

System console

RMoX 1.5.0 in QEMU Once RMoX has booted, press F6 to switch a virtual terminal running the system console. This should look something like the screenshot shown in the right (exact version numbers will probably differ):

Because RMoX does not yet have support for dynamic program loading (though this is well in progress), the various utilties and applications are hard-coded. However, there will be no difference to the user as these do become dynamically loaded entities (who still types the same thing at the prompt).

A few of the useful commands are:

dctl options Device control utility, run without options to show usage information.
gfxdpy fb.drv Start the graphics windowing system using the specified framebuffer device.
help Show the on-line help, including a list of available built-in commands.
ll path List directory contents, long style.
ls path List directory contents.
memstat Display memory usage information.
sctl options Service control utility, run without options to show usage information.
uptime Show system uptime.
version Display RMoX version.

Graphics support

RMoX 1.5.0 graphics in QEMU For the purposes of experimenting with process-oriented graphical environments, we've put some basic graphics support into RMoX.

to be completed

occam-pi

Valid XHTML 1.0!

Valid CSS!

Last modified: 2008-11-11 04:11:02.000000000 +0000 by Fred Barnes
Copyright © 2003-2008 Fred Barnes, University of Kent