The Pegasus project

Work on the Pegasus project finished in October 1995. For current information refer to the web pages for the follow-on project, Pegasus II. The text below was last updated in August 1995.

The Pegasus project (Esprit BRA 6865) is a collaborative research effort with the University of Twente (NL). The official title of the project is "Operating system support for distributed interactive multimedia", and the work is organised as four work packages:

Operating system work package

Pegasus is producing an entirely new operating system, whose design is geared to support of high-performance applications which require a consistent quality of service, such as those which use multimedia. This operating system, called Nemesis, is currently being implemented for DECstation (MIPS R3000-based) and DEC AXP-based workstations. Related systems are being developed for two different types of ARM-based machine.

Nemesis is a single-address-space system, with an extremely light-weight kernel ('Nemesis Trusted Supervisor Code', or NTSC), and strong emphasis on performing operating system functions in the user's domain (thus avoiding the need for expensive protection regime changes).

An outline of the thinking behind the structure of Nemesis is to be found in the Kernel report on the laboratory's ftp server. A copy of Eoin Hyden's Ph.D. thesis is also available from there; Eoin worked in the Pegasus project during the latter stages of his research here.

The project has developed an interface definition language called Middl, in which interfaces to the Nemesis operating system (as well as to other services that the project defines) are specified. The specification of Middl (also known as Pegasus paper 94-16) is also available from the laboratory's ftp server.

The interface specifications of a `recent' version of Nemesis are available, formatted, as `Nemesis Structure and Interfaces' (also known as Pegasus paper 94-17).

Return to index of work packages

File system work package

The Huygens file server and associated naming (and other) services are being developed within the Pegasus project by the Twente group. The Huygens File Server will have to cater both to the needs of multimedia applications --- high data rates with minimal jitter --- and those of distributed applications --- good consistency semantics, high reliability in the presence of failures.

The structure of the system incorporates ideas from many previous storage architectures, including log-structure file systems, RAID storage architectures, token-based synchronisation of access, etc.

Return to index of work packages

Communications support work package

The view of the project is that communications support for multimedia has to be based on ATM-style networks. The present work in communications support involves installing ATM networks (currently, the Cambridge University Fairisle local-area network switches with Olivetti Research YES host interfaces) and providing operating system support for them.

Ultimately, the project hopes to integrate the local-area ATM networks with some wide-area service; such a connection should offer a valuable test both of quality of service provision over a wide-area ATM network, and of the support services that have been implemented within the Nemesis system.

Return to index of work packages

Application work package

The purpose of the Application work package is to provide a demonstration test-bed that will let us show off the results of our work. All that we've done so far under this package has been experimental work under the Cambridge Micro-kernel system Wanda, and construction of application infrastructure.

The project proposal suggested a demonstrator called The Digital TV Director. Such an object would control cameras and microphones, and screen images and loudspeakers to enable seamless operation of a distributed computer-controlled multimedia conference. Underlying technologies would include audio location of speakers, computer control of camera pan and tilt, and of course networks and operating systems that offer the required quality of service to an application that knows what to make of all its input.

Return to index of work packages