Mimiker: MIPS Micro-Kernel
An experiment with implementation of very simple operating system for Malta board.
To build Mimiker you will need a custom MIPS toolchain we use. You can download
a binary debian package
It installs into
/opt, so you'll need to add
Otherwise, if you prefer to build the toolchain on your own, download crosstool-ng which we use for configuring the toolchain. You can get it from here. Then:
cd toolchain/mips/ ct-ng build
By default, this will build and install the
mipsel-mimiker-elf toolchain to
~/local. Update your
$PATH so that it provides
i.e. unless you've changed the install location you will need to append
~/local/mipsel-mimiker-elf/bin to your
With toolchain in place, you are ready to compile Mimiker. Run
in project root. This will result with a
mimiker.elf file containing the
As you presumably do not own a MIPS Malta board, you will need a simulator to
test the kernel. We currently support OVPsim (incl. Imperas proprietary
variant) and QEMU. If you're using OVPsim, make sure your
$IMPERAS_HOME is set
We provide a python script which simplifies loading the kernel image to simulator. In project root dir, run:
This will start the kernel using OVPsim if available, or QEMU otherwise.
Some useful flags to the
-h- Prints usage.
-d- Starts simulation under a debugger.
-D DEBUGGER- Selects debugger to use.
-S SIMULATOR- Manually selects the simulator to use.
-t- Bind simulator UART to current stdio.
Any other argument is passed to the kernel as a kernel command-line argument. Some useful kernel arguments:
init=PROGRAM- Specifies the userspace program for PID 1. Browse
./userfor currently available programs.
If you want to run tests please read this document.
- MIPS® Architecture For Programmers Volume II-A: The MIPS32® Instruction Set
- MIPS® Architecture For Programmers Volume III: The MIPS32® and microMIPS32™ Privileged Resource Architecture
- MIPS32® 24KE™ Processor Core Family Software User’s Manual
- MIPS32® 24KEf™ Processor Core Datasheet
- Programming the MIPS32® 24KE™ Core Family
- MIPS® YAMON™ User’s Manual
- MIPS® YAMON™ Reference Manual
- MIPS ABI Project