Paramecium is a simple and flexible (i.e. adaptable and extendable) operating system used to explore the tradeoffs between user processes and kernel boundaries. Services are provided by objects which are named in a per process name space. Each process may change its own name space, which boils down to installing new services, overriding or interposing existing services, etc. Through the use of code signing a user process may put objects into the kernel address space.
The research topic is to explore the various aspects of user/kernel boundaries in the context of the parallel programming system Orca. This includes the placement of traditional operating system services and parts of the application. Other aspects in which we are also interested are: service interpositions, performance monitoring, and user level network access combined with predicate network address filtering.
The project is akin to SPIN, Oberon, Exo, Spring, etc. but differs from these in the sense that it uses traditional techniques (i.e. uses objects as granularity for extensions combined with naming), and it uses a simple micro-kernel architecture with multiple protection domains without trying to virtualize hardware.
The current state of the project is that we have written a kernel running on a sun4m architecture (Sparc) and are currently writing down its design. We are also working on a simple orca run-time system which takes advantage of the extensibility provided by the kernel. As a spin-off we have written a SparcClassic (sun4m) Architecture Simulator which emulates the full hardware and prom and runs our kernel, Amoeba and SunOS. It is used for debugging and performance evaluations.
L. van Doorn and A.S. Tanenbaum. "FlexRTS: An extensible Orca run-time system", Third ASCI conference, May 1997.
L. van Doorn, P. Homburg, and A.S. Tanenbaum. "Paramecium: An extensible object-based kernel", In Proceedings of the 5th Hot Topics in Operating Systems (HotOS) Workshop, pages 86-89, Orcas Island, WA, May 1995.
P. Homburg, L. van Doorn, M. van Steen, A.S. Tanenbaum, and W. de Jonge, "An Object Model for Flexible Distributed Systems", In Proceedings 1st Annual ASCI Conference, pages 69-78, Heijen, The Netherlands, May 1995.
In this paper we describe a new model for constructing operating systems and applications in an integrated fashion. Compared to current approaches we provide high-level primitives for supporting distributed and parallel applications. We also provide the flexibility to configure both applications and kernels to only include the functionality that is actually used.
L. van Doorn, and A.S. Tanenbaum, "Using Active Messages to Support Shared Objects", In Proceedings of the Sixth European workshop ACM SIGOPS , pages 112-116, September 1994.
The Globe project.
A project whose goal is to design and implement a system that simplifies the construction of wide area distributed applications.
The ORCA Parallel Programming Language.
Orca is a language that is based on the shared object model and is used for (but not limited to) writing parallel applications on loosly coupled machines.
The Amoeba Distributed Operating System.
Amoeba is a micro-kernel based distributed operating system whose holy grail is transparency.