28.08.2015 Views

The Design and Implementation of the Anykernel and Rump Kernels

1F3KDce

1F3KDce

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

253<br />

translation may be needed when passing requests from <strong>the</strong> clients to NetBSD-based<br />

rump kernels. However, since interface use is likely to be limited to a small subset,<br />

such as <strong>the</strong> VFS/vnode interfaces, translation is possible with a small amount <strong>of</strong><br />

work even if support is not readily provided under sys/compat.<br />

Multiserver microkernel systems may want to fur<strong>the</strong>r partition a rump kernel. We<br />

investigated this partitioning with <strong>the</strong> sockin facility. Instead <strong>of</strong> requiring a full<br />

TCP/IP stack in every rump kernel which accesses <strong>the</strong> network, <strong>the</strong> sockin facility<br />

enables a rump kernel to communicate its intentions to a remote server which does<br />

TCP/IP. In our case, <strong>the</strong> remote server was <strong>the</strong> host kernel.<br />

<strong>The</strong> lowest possible target for <strong>the</strong> rump kernel hypercall layer is firmware <strong>and</strong> hardware.<br />

This adaption would allow <strong>the</strong> use <strong>of</strong> anykernel drivers both in bootloaders<br />

<strong>and</strong> lightweight appliances. A typical firmware does not provide a thread scheduler,<br />

<strong>and</strong> this lack would ei<strong>the</strong>r m<strong>and</strong>ate limited driver support, i.e. running only drivers<br />

which do not create or rely on kernel threads, or <strong>the</strong> addition <strong>of</strong> a simple thread<br />

scheduler in <strong>the</strong> rump kernel hypervisor. If <strong>the</strong>re is no need to run multiple isolated<br />

rump kernels, virtual memory support is not necessary.<br />

An anykernel architecture can be seen as a gateway from current all-purpose operating<br />

systems to more specialized operating systems running on ASICs. <strong>Anykernel</strong>s<br />

enable <strong>the</strong> device manufacturer to provide a compact hypervisor <strong>and</strong> select only<br />

<strong>the</strong> critical drivers from <strong>the</strong> original OS for <strong>the</strong>ir purposes. <strong>The</strong> unique advantage<br />

is that drivers which have been used <strong>and</strong> proven in general-purpose systems, e.g.<br />

<strong>the</strong> TCP/IP stack, may be included without modification as st<strong>and</strong>alone drivers in<br />

embedded products.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!