Check out the new USENIX Web site. [Next] [Up] [Previous]
Next: Evaluation Up: The Denali Isolation Kernel Previous: Supervisor Virtual Machine

Ilwaco Guest OS

Although the Denali virtual machine interface is functionally complete, it is not a convenient interface for developing applications. Accordingly, we have developed the Ilwaco guest operating system which presents customary high-level abstractions. Ilwaco is implemented as a library, in much the same fashion as a Exokernel libOS. Applications directly link against the OS; there is no hardware-enforced protection boundary.

Ilwaco contains the Alpine user-level TCP stack [12], a port of the FreeBSD 3.3 stack. We modified Alpine to utilize Denali's virtual interrupt and timer mechanisms, and linked the stack against a device driver for the Denali virtual Ethernet NIC.

Ilwaco contains a thread package that supports typical thread primitives, locks, and condition variables. If there are no runnable threads, the thread scheduler invokes the idle-with-timeout virtual instruction to yield the CPU. Ilwaco also contains a subset of libc, including basic console I/O, string routines, pseudo-random number generation, and memory management. Most of these routines were ported from OSKit libraries; some functions needed to be modified to interact with Denali's virtual hardware. For example, malloc reads the size of (virtual) physical memory from a virtual register.


[Next] [Up] [Previous]
Next: Evaluation Up: The Denali Isolation Kernel Previous: Supervisor Virtual Machine
Andrew Whitaker 2002-10-07