Information Technology Reference
In-Depth Information
Binary translation is a form of emulation where a binary software application
(not operating systems) is translated from one instruction set to another. In this case
one ends up with a new piece of software that can run on a different system with
a different instruction sets. Software applications are rarely self contained and typ-
ically rely on one or more other pieces of software (software libraries etc). In this
case not only does the software application need to be translated but also its depen-
dencies may need translating too (if they do not already exist on the new system at
the appropriate version). If the operating system of the new target system is different
too, then the binary file format that the software instructions are contained in will
also need to be translated. For example, Windows software executable binary files
have a different format to that of executable binary files on a Linux system.
Virtual Machines (VMs) take a slightly different approach to running software
on a variety of different computer systems. They define a hardware independent
instruction set (Bytecode) which is compiled (often dynamically) to the instruction
set of the host system. The software that does the compilation is called a Virtual
Machine (VM), The VM must be re-written for, or ported to, the host system. On
top of these VMs usually sits a unique programming language (unique to that VM)
which when compiled is compiled to the VMs bytecode. This bytecode can then be
executed with the VM, i.e. it is dynamically compiled to the hardware instruction
set of the host system.
One problem with VMs is that they usually do not emulate hardware systems
other than the CPU. Instead they provide a set of functions/method (software
libraries) in the programming language unique to that VM that interface and expose
the functionality of the hardware systems (graphics, disc I/O etc) to applications
written in the VMs unique programming language. These software libraries are then
implemented via some other programming language (usually C or C++) and com-
piled for the host system. This mean that whenever one needs to run a VM and
its software libraries on a new system (to run programs written in the VMs unique
programming language) one has to re-implement the VM and libraries or port the
existing one to the new system. This is potentially problematic in that the behaviour
of the VM and the associated software libraries needs to be reproduced accurately
on the new system; if it is not reproduced accurately, then it may lead to the failure
of applications to run on the new VM or for them to behave in an undesirable way.
Examples of VMs and porting problems will be given later.
7.9.4 Emulation and Digital Preservation
Emulation has difficulties but also a number of advantages, especially related to dig-
ital objects which are difficult to describe in detail, for example Word files. A piece
of Representation Information for a Word file is likely to be the WINWORD.EXE
programme. The Representation Information for WINWORD.EXE could well be
an emulator; indeed it may be the only practical way of using the Word executable
digital object. Emulation therefore has an important role to play, certainly for some
types of digital objects.
Search WWH ::




Custom Search