3 ms·
Sometimes the terms emulator and simulator are used to distinguish between two different types of software. An emulator emulates the hardware (CPU, network int
by adrianmonk 8y ago
Sometimes the terms emulator and simulator are used to distinguish between two different types of software.
An emulator emulates the hardware (CPU, network interface, disk, graphics, etc.) and the real operating system runs mostly or entirely unmodified atop this.
A simulator reproduces the APIs that an application expects without running the actual operating system code, through some combination of a port or a reimplementation.
However, I think it's fair to use the word simulation here too. It is a simulation from the user's point of view.
In fact, another way to categorize all this is at which level the mimicry happens: hardware, API, or user.
- white-flame 8y agoOr, it could be defined as the opposite: An emulation presents a replica of something else's outward observable behavior. A simulation runs a specific internal model, which generates some gestalt behavioral results. An emulator might simply mimic surface-level behavior directly, or use an internal simulation in order to generate it from first principles. There really isn't a hard and fast agreed-upon definition of these terms in software, but these seem in tune with their non-computing definitions.
- kyberias 8y agoI think your definitions are spot on. To add a little: sometimes emulation can be achieved by simulation.