Elmwood is an object-oriented, multiprocessor operating system
designed and implemented during a graduate seminar.
It consists of a minimal kernel and a collection of user-implemented services.
The kernel provides two major abstractions:
objects, which consist of code and data,
and processes, which represent asynchronous activity.
Objects, like programs, are passive.
To operate on an abstraction or to request a service,
processes invoke an entry procedure
defined by the corresponding object.
Objects implement their own protection and synchronization policies
using minimal kernel mechanisms.
We describe the Elmwood kernel interface,
an implementation on the BBN Butterfly parallel processor,
and our experiences in developing a multiprocessor operating system
under rigid time constraints.
These experiences illustrate several general lessons
reguarding kernel design trade-offs for implementation expedience.