This paper reports on an ongoing project to develop a general understanding of the problems encountered when building emulators for various operating systems at the user-level on top of a Mach 3.0 micro-kernel, and to propose a common framework to construct emulations for a wide range of target systems and environments. It presents an overview and discussion of the major techniques and experiments that characterize the design of the proposed system. Some of the relevant aspects include the combination of several independent servers to create a complete system, generic service interfaces relying on the emulation library as an interface translator, the use of object-oriented technology to define standard interfaces and to simplify the implementation of common facilities, moving portions of the system state and processing from the servers into a smart emulation library, and a few general-purpose facilities that simplify the generation of a complete system. A number of practical observations and experiences are also presented, in the context of the development of a prototype for the emulation of UNIX 4.3 BSD.
[1]
Steve R. Kleiman,et al.
Vnodes: An Architecture for Multiple File System Types in Sun UNIX
,
1986,
USENIX Summer.
[2]
Alessandro Forin,et al.
UNIX as an Application Program
,
1990,
USENIX Summer.
[3]
John K. Ousterhout,et al.
Prefix Tables: A Simple Mechanism for Locating Files in a Distributed System
,
1985,
ICDCS.
[4]
Larry L. Peterson,et al.
The x-kernel: a platform for accessing internet resources
,
1990,
Computer.
[5]
Richard F. Rashid,et al.
DOS as a Mach 3.0 Application
,
1991,
USENIX MACH Symposium.
[6]
P. Guedes,et al.
Object-oriented interfaces in the Mach 3.0 multi-server system
,
1991,
Proceedings 1991 International Workshop on Object Orientation in Operating Systems.
[7]
Perry S. Plexico,et al.
Data abstraction and object-oriented programming in C++
,
1990
.