Umps World

From Virtualsquare
Jump to: navigation, search



MPS and µMPS are general-purpose computer system simulators based on MIPS R3000 processor.

Together with the main processor, RAM, ROM, disks, tapes, printer and terminal interfaces are carefully emulated and fully configurable; non-volatile memory units may be retained between simulations.

µMPS is an evolution of the original MPS project, to add support to physical memory addressing, ethernet interfaces, and to provide a slicker user interface.

Both feature a full-fledged graphic user interface running under X Window, complete sources, documentation, and experimental projects on operating system development. They have been successfully ported on several platforms.

For any question, feel free to contact the developers.

μMPS World's Projects

TINA, Kaya and AMIKaya are projects on experimental kernel development which use MPS and µMPS.

Both project specifications were taken from those for HOCA operating system.

Kaya has a similar layout, but requires an additional phase, where virtual memory and I/O management are implemented.

Getting Help

Before contacting μMPS developers, please have a read to the Frequently Asked Questions.

If you cannot get out of your problem, contact the μMPS Staff.

Further Developments

MPS and especially µMPS µMPS will be used as development tools of in several courses for the next years. Here is a set of possible exercises:

  • Support layer for TINA, which will provide the system with some device drivers, virtual memory and protection from user processes misbehavior.
  • Microkernel O.S.: instead of having several system calls, only two are defined (send and receive): the kernel itself may be designed to translate each hardware signal (interrupt or trap) into a message to a specific management thread.
  • Shell, file system and specialized drivers (the fourth phase in TINA and Kaya development). A FAT-based file system with primitives to create and delete files, and read/write their fixed-size blocks sequentially, using elevator algorithm or other ones to minimize seeks. Interactive shell. Spooling facilities for building either a print spooler or a spool for batch executions.

We think that MPS and µMPS features make them suitable for many lab projects, from computer architecture and assembly language programming, to operating systems development, resource management schemes, and real-time algorithms testing.

A network interface card device, based on VDE project, has been added to µMPS: this allows to build a network of µMPS machines.

New and more specialized projects about operating systems will then be possible; these new features will broad the range of experimental projects to inter-machine communication, parallel and distributed computing issues.


The original developer of MPS and µMPS would like to thank:

  • Ozalp Babaoglu, which brought here at Bologna the original CHIP and HOCA projects from Cornell University;
  • Renzo Davoli for the original MPS project idea, counseling and guidance;
  • Michael Goldweber for his efforts on employing MPS in undergraduate CS courses, and for the original µMPS project idea;
  • Enrico Cataldi, Antonio Gridà Cucco, Dario Laera and other graduate and undergraduate students which provided support to debugging and µMPS porting on different platforms;
  • James T. Larus for SPIM and to Nachos development team for their projects, which gave so many good ideas to us;
  • Michael Riepe for its freeware ELF manipulation library
  • T.C. Zhao and Mark Overmars, for their wonderful freeware X FORMS library, and the volunteers who had taken up the development;
  • the 1000+ students which served as testers for our simulator, finding the bugs, and giving good suggestions.
Personal tools