Implemented abstractions are called library operating systems; they may request specific memory addresses, disk blocks, etc.
This low-level hardware access allows the programmer to implement custom abstractions, and omit unnecessary ones, most commonly to improve a program's performance.
These models include file systems for disk storage, virtual address spaces for memory, schedulers for task management, and sockets for network communication.
The exokernel concept is a compromise: let the kernel allocate the basic physical resources of the machine (e.g. disk blocks, memory pages, and processor time) to multiple application programs, and let each program decide what to do with these resources.
In addition to these, the exokernel team created the Cheetah web server, which uses the kernel directly.