Advanced Operating Systems
Advanced Systems Teaching (ASysT) LabThe ASysT lab is organised around 64-bit computers (``U4600'') based on a 100 MHz MIPS R4700 processor. The U4600 was developed by Kevin Elphinstone (former UNSW PhD student) and Dave Johnson. It is especially designed to allow experimentation with operating systems code. Presently, these machines run the L4 microkernel.
Technical details:The nodes are based on a locally designed and manufactured ATX form factor motherboard. The motherboard features:-
The nodes are hosted on UNIX computers, presently PC's running Solaris. These contain a development environment which allows you to compile code, link it with the L4 microkernel, and download it to the U4600 via ethernet. The hosts also interface to the serial port on the U4600 for console I/O.
How to use:Make sure that ~cs9242/bin is in your PATH, and that the environment ARCH is set to pc.i86.linux. The former is normally achieved by using the newclass command, the latter is set up automatically by the default shell initialisation files. Also make sure that you are using GNU make (this is also ensured by the default initialisation files).
Use the Makefiles supplied with the examples (like the one in ~cs9242/public_html/src/hello_world/). Typing
Note: make must be done locally on the host machine connected to your U4600, or the boot image will end up in the wrong boot directory.
You also need to run a terminal emulator on the host to be able to talk to the U4600. Use the command
Turn on the U4600, you should get another greeting message and a
If you do not get the prompt, some program is actually executing on the U4600. Press the INTERRUPT button (the smaller of the two buttons on the box) for about 1/2 second, and you should get a ``KDBG>'' prompt. Type
If you type
Note that you are running an operating system, which is not expected to terminate. To stop execution, hit the INTERRRUPT key (reset button) on the U4600. This will get you into the L4 kernel debugger, which is unlikely to be of much help for you (but if you want to try, it is documented in Appendix C of the L4 Reference Manual). However, you can then type
Alternatively you can hit Control-D when in the kernel debugger. This will exit the debugger and resume the execution of the interrupted code.
A failed assertion (assert(0)) has the same effect as hitting the interrupt key. Alternatively, you can send a BREAK from the terminal emulator (Misc->Break).
If you INTERRUPT the U4600 but it doesn't get into the kernel debugger, you may have found a bug in our L4 microkernel. Please report it to us.
Last modified: 27 Jul 2005.