next up previous contents index
Next: Scheduling Up: The Topaz Operating System Previous: The OS Interface

Running Ultrix Applications on Taos

      In addition to implementing the OS interface, Taos emulates an approximation to a subset of the Ultrix 1.1 kernel-call interface. The emulation is at the level of kernel-call traps, so existing Ultrix a.out files can be run without being recompiled or relinked. This appendix describes the omissions and (known) inaccuracies in the emulation.

The reasons for the omissions can be classified as fundamental or expedient. The fundamental omissions are those deemed infeasible to implement given the underlying structure of Topaz and Taos on which the Ultrix emulation rests. An example is the file /dev/kmem. The expedient omissions are those deemed unimportant compared to other projects competing for the developers' time. An example is sockets.

The reasons for the inaccuracies can be classified as bugs or features. The bugs are the usual problems of incomplete specification and imperfect implementation. There are no known examples. The features stem from the same causes as the fundamental omissions: conflict with underlying structure. An example is the substitution of user names and the user database (maintained using the Interim Name Service) for user identifiers and /etc/passwd.

During the design of the Taos Ultrix emulator, we attempted to justify each omission and variance by appealing either to the existence of alternate facilities in the Topaz environment or to the intended usage (i.e., supporting workstations and servers in an R&D environment). Experience so far has been positive.

Taos uses several techniques to minimize the inconvenience of features it does not fully implement. Some kernel calls raise the signal SIGSYS, some return an error, and some are no-ops, as specified in the following subsections.



 
next up previous contents index
Next: Scheduling Up: The Topaz Operating System Previous: The OS Interface
Paul McJones
8/28/1997