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 Keith Adams, Jason Lango, Dave Powell, and Mike Castelle for use in CS169. Don't be fooled, though. Jason wrote most of it.

Supported platforms

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.

Home Software
David Powell