The first goal of the project is to provide a useful and challenging backdrop to introduce undergraduates to research, systems programming, development on large projects and open source collaboration. By developing a modern, multithreaded, no-legacy system from the ground up, and documenting the process, we hope to provide useful materials not just for those who participate, but to all who are interested in systems development.
The second major goal is to demonstrate the viability of the Exokernel (particularly as compare to virtual machines) and the D systems language. The core concept is that the kernel (the traditional notion of the OS) only provides secure resource multiplexing. All other OS responsibilities, including providing useful abstractions of the system, are carried out in libraries (LibOSes). One advantage of this design is that it allows the system to maintain API-level compatibility with applications and support many different OSes applications, side by side, while delivering the supposed security and isolation advantages of a Virtual Machines, without the performance overhead.
The third goal is to provide a platform that enables rapid exploration of new systems concepts. LibOS components can easily be substituted on a per-process basis, allowing for a stable test environment as a backdrop for crazy experimentation. Major themes we would like to explore are: markets for resource allocation, many-core computing, adaptive, resource-aware language libraries, and dynamic run-time binary optimization.
Adaptive algorithms can also be used to fill-in unknown values in for other algorithms. Frequently modern systems use simple heuristics to estimate unknown vales. For example, web proxy caches would prefer to keep items that take longer to retrieve over those that are nearby and easy to get.