Nemesis represents an attempt to design an operating system to support multimedia applications which process continuous media. The consideration of quality of service provision and application crosstalk led to a design in which applications execute their code directly rather than via shared servers. Shared servers are used only for security or concurrency control.
Such an organisation gives rise to a number of problems with complexity which are solved by the use of typing, transparency and modularity in the definition of interfaces and the use of closures to provide comprehensible, safe and extensive sharing of code and data. Application programmers can be protected from this paradigm shift; API's need not change except when new facilities are required, the porting of the C library is a case in point.
The development of a new operating system is not a small task. The work here has been developed over at least four years with the help of a large number of people. We are indebted to all who worked in the Pegasus project.