Multics Simulator
multicians.org
multicians.org
If you'd prefer not to have to view the PDF, the images are reproduced here: https://imgur.com/a/x3fy4nO
https://www.1000bit.it/js/web/viewer.html?file=%2Fad%2Fbro%2...
An exercise in frustration due entirely to our field sticking one name on two very different technologies.
A simulator (more often called an emulator but one battle at a time) is a piece of software that takes compiled binaries and runs them by implementing every opcode in software. A "Multics simulator" (really, an emulator for the DPS8 hardware running a Multics disk image) is, therefore, a pure software emulation of a mainframe computer, not relying on any special hardware features of the host.
A virtual machine is one of two things:
- A piece of software like the JVM, executing bytecode in a manner similar to (but, hopefully, less complicated than) a machine emulator of the type I outlined above.
- A hypervisor, software that leverages special hardware features of the host system to run a guest on the hardware in a privilege level that allows, for example, multiple operating systems to run on the same machine at the same time.
The fact VM can also mean "virtual memory" is also Very Mirthmaking and doesn't make me Violently Mumble not one little bit.
It should be noted that not all of the hardware is strictly "emulated" (or simulated, if you prefer that term) in the traditional sense of interpreting each hardware instruction. The DPS in the name means "distributed processing system", and this is not merely a marketing term.
The DPS series, like many other mainframes, have multiple independent systems working together. For example, IO is handled by a FNP (frontend network processor) which was a (physically) separate minicomputer, with its own CPU, OS, etc. There were various FNP models (16-bit and 18-bit systems) produced. The DPS8M software implements the FNP at a high level, rather than running its original software (though there is both an FNP software simulator and a FPGA FNP project underway).
We did have some internal debate on if the system is a "simulator" or an "emulator", but really, it can be both, depending on how pedantic you want to be.
The biggest reason for the name being what it is, however, is that since the beginning, the software was called the "DPS8M Simulator", and even if emulator might be (arguably) a better name, it's not worth changing it at this point.
Disclosure: I'm one of the developers.
Edit: There are also some optimizations in place (https://dps8m.gitlab.io/dps8m-r3.0.1-archive/R3.0.1/global/S...) that blur the lines between emulator, simulator, and virtual machine.
> The biggest reason for the name being what it is, however, is that since the beginning, the software was called the "DPS8M Simulator", and even if emulator might be (arguably) a better name, it's not worth changing it at this point.
Honestly, "simulator" vs "emulator" is just a matter of what I'm used to now, as opposed to anything I find needlessly confusing: It seems like everyone else talks about this kind of software in terms of it being emulators and emulation, and reserves the word simulation for things like circuit simulators. Kind of an interesting linguistic quirk to observe, but it does make your use of the word simulator in this context a bit unusual.
This SO answer has a great take on the difference between simulation and emulation. I'd say a Virtual Machine emulates hardware:
https://stackoverflow.com/questions/1584617/simulator-or-emu...
I know the last Multics site shutdown in 2000, DND in Halifax, with 5 CPUs..