Gavin R. Brewer
24.08.2001
Introduction:
The world’s leading Operating Systems use Monolithic architectures at their heart. Microkernel-based architectures such as Mach and Amoeba have yet to enter the mainstream consumer and industrial markets.
Microkernel architectures are superior in both their scalability and modularity. One notable example is Carnegie-Mellon University’s Mach project. Originally, this was sponsored by DARPA as part of its Strategic Computing Initiative (Tanenbaum 1992).
Eric will be a C++ derivative of Mach. Its streamlined architecture will provide a stable basis for systems interoperability and expansion. The requirements for this basic interoperability are set out in the POSIX specification, although the API calls will be significantly easier to read and understand.
Sitting alongside the Eric kernel will be an abstract state machine devoted entirely to providing graphics services to user-space programs. The console API calls will reflect those used in SPHIGS (Foley et al, 1996), OpenGL, and SDL.
This console will provide a simple Hardware Abstraction Layer, which provides hardware independence for graphics and multimedia developers. In addition to the graphics primitives outlined above, will be API calls to generic input and sound devices.
In the user-space will exist emulation packages for various operating systems, including UNIX System V, Microsoft Windows, and MacOS-X.
Main features of Eric:
Glossary:
DARPA: Defence Advanced Research Projects Agency.
ERFC: Eric Request For Comments.
HAL: Hardware Abstraction Layer.
Monolithic: A large, unstructured kernel
Microkernel: A small, modular kernel
SDL: Simple
DirectMedia Layer
System models:
Architectural Overview:
Functional requirements definition:
Non-functional requirements:
System Evolution:
We will pioneer an Organic method for developing Eric.
There will be no specific development lifecycle assigned to our product, but we do keep broadly in line with the Boehm’s Spiral model, and the classic Waterfall paradigm.
Regular feedback and ERFC documents are critical to the development of Eric, since these comments form the source of new ideas and trends in our research. Individuals across the globe should feel free to contribute their ideas to the ERFC forum.
Additonal Functional Details:
· The following libraries will use Dynamic Linking:
o Console
o TCP/IP Suite
· We will base all Graphics calls on SPHIGS and OpenGL. (see Foley et. al)
· All OS Emulation will be performed in User Space, (like Mach).
Notation: