Introduction
The aim of the emulation project of the KB is to develop a new preservation strategy based on emulation. Our goal is to build an emulator that is durable and able to replace the Reference Workstation (RWS, a modern computer environment using MS Windows 2000 that is used as a reference for what the emulator should be capable of. See figure 1). As a consequence, all kinds of digital material, like multimedia programs, databases and PDF documents will remain accessible in the long term.
The emulation project is carried out by both the KB and the Nationaal Archief of the Netherlands. It started in April 2005 and will end in July 2007.
|
| Figure 1 replacing the Reference Workstation (RWS) with emulation |
Design
To develop an emulator for digital preservation, two main requirements have to be met: the emulator must be durable and flexible. Durability is essential for keeping the emulator sustainable for the long term. Flexibility is desired to ensure several different computer environments can be emulated with a minimum amount of effort. Based on a unique design that is defined by the KB in cooperation with emulation-expert Jeff Rothenberg, a Modular Emulator will be developed. Figure 2 shows the basic elements of this design.
![]() |
| Figure 2: design of modular emulation and supporting elements |
- Modular emulator
- Universal Virtual Machine (UVM)
- Controller
- Module library
- Emulator specification document (ESD)
Modular emulator
The emulator is the core element of the design. The task of the emulator is to virtually recreate the hardware of the upper (emulated) platform in such a way that original software can run on it as it used to do on real hardware. Because of the versatility of hardware, system software and applications, the emulator needs to be flexible in its recreation of a particular environment. This can be achieved by designing the emulator in a modular structure. Each module emulates a specific hardware component, like processor, memory, keyboard, etc. The recreation of a platform can then be realized by combining all necessary modules. Changing the emulated platform can simply be done by changing the configuration of the modules. As technology moves forward, new modules can be created based on their analogy with actual hardware components
Universal Virtual Machine (UVM)
By introducing an intermediate layer (UVM) between the current platform and the emulator, dependency on the underlying system is avoided. This offers more stability and less maintenance of the emulator as changes in the computer platform underneath the UVM does not have any (or has little) effect on the execution of the emulator.
Controller, module library and ESD
The controller interconnects all the elements in the model. It configures and controls the emulation process. The Emulator Specification Document (ESD) describes which modules are required to emulate the desired platform. Based on a particular ESD the controller selects the required modules from the module library and configures them.
During this emulation project the focus will be on the development of a modular emulator. The other elements defined by the design will be considered as well, but are secondary to the goal of developing an emulator.
Development
The development of the modular emulator is lead by software company Tessella Support Services plc. Development takes place at the Nationaal Archief of the Netherlands. Although the focus is on building a full 32-bit emulator which is capable of running modern versions of MS Windows, the result will probably be a 16-bit emulator capable of executing MS DOS and earlier versions of MS Windows (3.x). Furthermore, support will be available for (virtual) floppy disks, hard disks, input devices like keyboard and mouse, and a screen as output device. Moreover, the emulator can be configured easily to additional user requirements.
Java has been chosen as programming language. The main reason is its possibility to run Java code on a large variety of computer platforms using the Java Virtual Machine (JVM) without the need to recompile the source code. Recompilation is a risk factor since program code is adapted to a specific underlying computer platform. Although today’s compilers are very advanced, it still can result in different functionality of the same emulator compiled for different platforms. By avoiding this step the emulator will be more stable and portable. Using the JVM instead provides similar results to the use of a UVM as discussed above.
In July 2007 Dioscuri, the first modular emulator for digital preservation, has been made available for free and open source. A special project page enables you to download and experience Dioscuri yourself:
Dioscuri website – modular emulator for digital preservation.
Background information
Between October 2004 and March 2005, preliminary research was carried out to establish whether emulation is suitable for long-term preservation. The current state of technology was analysed and existing solutions were tested. In parallel, work has been done on modeling a new design for emulation in the context of digital preservation.
At the start of the emulation project more extensive emulations and virtualisation experiments were conducted. Different kinds of digital objects, like PDF documents, MS Access databases and multimedia applications were tested and compared with both the RWS environment and emulated or virtualised environments. The results of these experiments lead to a better understanding of emulation and its capabilities. The final report of the preliminary research and documentation on experiments can be found at ‘documents and references’.
Planning
The project has been completed and was active from April 2005 until July 2007. Currently, development of Dioscuri is continued as part of the European project Planets..
Documentation and references
More information about this project? Click here.
Contact
For more information, questions or suggestions, please contact: Jeffrey van der Hoeven.
