Brown Simulator v2
The Brown Simulator is a high-level machine simulator intended for
operating system prototyping/instruction. It provides support for
context switching, programmed and DMA I/O, virtual memory, and
multiprocessor support (untested). It has a flexible API for adding
new device types (included are a disk, terminal, and half-written
framebuffer). Lastly, while simulation of virtual memory could be
acheived through user-level instruction emulation, the Brown Simulator
utilizes the VM capabilies of the host OS to catch invalid memory
accesses, allowing for native execution of user code while still
providing an almost complete sandbox for user programs.
The Brown Simulator is currently released under the GNU Public
License. Future versions may be released under the LGPL.
The latest incarnation of the Brown Simulator was written in the Spring
of 1998 by
and Mike Castelle
for use in CS169. Don't be fooled,
though. Jason wrote most of it.
So far we only support 32-bit versions of Solaris running on SPARC. Some effort has been put into
an Irix (MIPS) port, and Linux (x86, PowerPC) ports are in the works.
Getting the Brown Simulator
This page was thrown together in an hour; more will appear here soon.