next up previous
Next: Solution outline Up: doc_jaiio Previous: Introduction

Motivation and problem description

As was stated in the introduction, microkernel-based operating systems have many interesting features. However, there are some inherent difficulties that must be addressed in their construction. Our experiment consisted in the design of a minimal, architecture-neutral microkernel and it's implementation for the x86 processor. We also implemented a few device drivers and operating system servers that run on top of the microkernel, and a subset of the C library. Using the library, programs can use an API similar to the familiar unix API, with some restrictions due to the simple nature of the servers that were implemented.

Our $\mu$-kernel design goals can be summarized as follows:

The microkernel should present a simple yet effective abstraction of the processor to the operating system. The services offered by the microkernel should be clearly defined and easy to understand.
In order to obtain effective portability, a suitable interface that encapsulates the architecture-dependent sections of the kernel code has to be defined.
Kernel services should be provided in a policy-independent way, whenever this is possible. The design of the operating system should not be over-restricted by the underlying microkernel architecture.
The design of the microkernel should allow the efficient implementation of the most common operating system functions, considering the inherent constraints that the microkernel architecture imposes to the system.
The microkernel must provide the security primitives to allow the implementation of a secure environment.


next up previous
Next: Solution outline Up: doc_jaiio Previous: Introduction
2002-09-17