The Mach 3.0 multi-server system decomposes the functionality of the operating system between a micro-kernel, a set of system servers running in user-mode and an emulation library executing in the address space of applications. The interfaces provided by the system servers are object-oriented and both the servers and the emulation library are written in an object-oriented language.
In this paper we present how the interfaces between the components are specified and implemented to guarantee consistency and early detection of errors, yet maintaining the flexibility to extend and configure the system by adding new or modified servers without affecting existing pieces.