On Oct 28, 2017, at 10:09 PM, Eric Smith via cctech
<cctech at classiccmp.org> wrote:
IBM invented computer emulation and introduced it with System/360 in 1964.
They defined it as using special-purpose hardware and/or microcode on a
computer to simulate a different computer.
That's certainly a successful early commercial implementation of emulation, done using
a particular implementation approach. At least for some of the emulator features -- I
believe you're talking about the 1401 emulator. IBM didn't use that all the time;
the emulator feature in the 360 model 44, to emlulate the missing instructions, uses
standard 360 code.
It's not clear if that IBM product amounts to inventing emulation. It seems likely
there are earlier ones, possibly not with that particular choice of implementation
techniques.
Anything you run on your x86 (or ARM, MIPS, SPARC,
Alpha, etc) does not
meet that definition, and is a simulator, since those processors have only
general-purpose hardware and microcode.
Lots of people have other definitions of "emulator" which they've just
pulled out of their a**, but since the System/360 architects invented it, I
see no good reason to prefer anyone else's definition.
"emulation" is just a standard English word. I don't see a good reason to
limit its application here to a specific intepretation given to it in a particular IBM
product. It's not as if IBM's terminology is necessarily the predominant one in
IT (consider "data set"). And in particular, as was pointed out before,
"emulator" has a quite specific (and different) meaning in the 1980s through
2000 or so in microprocessor development hardware.
paul