Skip to content
MichaelMondy edited this page Apr 18, 2013 · 7 revisions

Multics Emulator

This is an emulator for the hardware that ran the Multics operating system.

Multics was a very influential early operating system. The OS is probably of more historical interest than the hardware it ran on. However, since Multics ran only on the hardware that was designed for it, most efforts at providing a running version of Multics have focused on emulating that hardware.

For information about Multics, please see the Wikipedia Entry and the excellent web site.

Discussions related to Multics occur on the Multicians mailing list at yahoo and the alt.os.multics Usenet newsgroup

Open Source

This is free software distributed under the ICU License. This project makes use of software, documentation, and virtual tapes provided under a variety of "free" licenses. Once the emulator is usable, this project will probably be offered as a contribution to the SIMH Computer History Simulation Project.


This is pre-alpha. The emulator does not yet run Multics. It does, however, execute the first two million instructions of a standard Multics boot tape.

There is support for an emulated tape drive and an operator's console as well as other emulated hardware. All access to the tape drive and operator's console is via an emulated IOM I/O Multiplexer. There is no significant support for disk drives yet. The emulator can read an on-disk image of a historical boot tape and partially process it. At this time the emulator seems to correctly process just over two million instructions before failing. The emulator fails after hitting an (intentional) segmentation violation and invoking fault handling code that wants to inspect APU history registers for which the emulator currently has no support.

While the emulator still has a long way to go, I believe some of the significant early hurdles have been cleared and that there are few or no remaining issues that seem unsolvable. However, significant effort remains including handling history registers, instruction restart, and devices such as disks, network, and terminals.


All the usual features of an emulator are included - single stepping, break points, display and editing of registers and memory, etc. Break points work in both absolute (non segmented) addressing mode and in appending (segmented) addressing mode. Several Multics-specific display formats are available for memory dumps.

The most unusual feature is support for debugging at the level of the Multics source code. The emulator can track routine names and PL/1 source lines. In addition, the Multics execution stack and even some PL/1 automatic (stack local) variables can be displayed.

Screen Shots

Please see the "screen shots" of a sample run.

Pages of Interest