Information Technology Reference
In-Depth Information
encoded object. Later we will discuss the issues and benefits of emulation as a
long-term preservation strategy.
It is not intended here to give a detailed description of how emulators work
or how to write an emulator. But some simplified technical details of emulation
and computer systems (mostly terminology) must be described, as it then allows
the description and comparison of current emulator software solutions and their
features, particularly with reference to their suitability to long-term preservation.
7.9.2 A Simple Model of a Modern Computer System
Central Processing Unit (CPU) decodes and executes the instructions of the
Software APIs and Applications. Typically this involves executing numeric, logi-
cal and control instructions (an instruction set) which take data from memory and
outputs the result back to memory. The control instructions may also be executed by
I/O devices, i.e. the CPU just forwards the instructions and data to the appropriate
I/O device and puts the results back into memory or storage.
Memory simply stores instructions and data in a logical sequential map so they
can be accessed by the CPU and I/O devices. Memory can be non-volatile (content is
kept when power is switched off) or volatile (content is lost when power is switched
off).
The Bus connects everything together thus providing the communication
between the different components of the system (CPU, Memory, I/O devices).
Typically within the computer the Bus resides on the motherboard (which holds the
CPU, Memory and I/O interfaces) and is controlled by the CPU and other control
logic.
Basic Input/Output System (BIOS) is the first code run by a computer when it is
powered on. It is stored in Read Only Memory (ROM) memory which is persistent
when the power is switched off. It initialises the peripheral hardware attached to the
system (such as the hard disk and graphics card) and then boots (runs) the operating
system which then takes control of the system and peripherals.
The (Input/Output) I/O takes the form of several interfaces that allow peripheral
hardware attached to the system (such as the hard disk and graphics card, printer
etc). Common I/O interfaces are Universal Serial Bus (USB), Parallel, Serial,
Graphical and Network interfaces.
The system software consists of the Operating System, API Driver Interface,
Hardware Drivers, Software APIs and Applications. They are all built for a specific
instruction set. This mean that they will run only on a system with a particular CPU
type that executes that particular instruction set. By “built” we mean that source code
for the software (usually text files with statements that relate to a specific program-
ming language such as C or C++) are converted (compiled) to binary application
files that contain data and instructions that are read sequentially by the hardware
(loaded into and read from memory) and executed by the CPU and peripheral
hardware.