28.08.2015 Views

The Design and Implementation of the Anykernel and Rump Kernels

1F3KDce

1F3KDce

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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

73<br />

runtime (s)<br />

2<br />

1.8<br />

1.6<br />

1.4<br />

1.2<br />

1<br />

0.8<br />

0.6<br />

0.4<br />

0.2<br />

0<br />

none hv base base+hv<br />

Figure 3.1: Performance <strong>of</strong> position independent code (PIC). A regular<br />

kernel is compiled as non-PIC code. This compilation mode is effectively <strong>the</strong> same<br />

as “none” in <strong>the</strong> graph. If <strong>the</strong> hypervisor <strong>and</strong> rump kernel base use PIC code, <strong>the</strong><br />

execution time increases as is expected. In o<strong>the</strong>r words, rump kernels allow to make<br />

a decision on <strong>the</strong> trade<strong>of</strong>f between execution speed <strong>and</strong> memory use.<br />

to create <strong>and</strong> disb<strong>and</strong> 300k threads in a rump kernel. As can be deduced from<br />

<strong>the</strong> combinations, shared <strong>and</strong> static libraries can be mixed in a single rump kernel<br />

instance so as to fur<strong>the</strong>r optimize <strong>the</strong> behavior with <strong>the</strong> memory/CPU trade<strong>of</strong>f.<br />

3.2 Running <strong>the</strong> Kernel in an Hosted Environment<br />

S<strong>of</strong>tware always runs on top <strong>of</strong> an entity which provides <strong>the</strong> interfaces necessary for<br />

<strong>the</strong> s<strong>of</strong>tware to run. A typical operating system kernel runs on top <strong>of</strong> hardware <strong>and</strong><br />

uses <strong>the</strong> hardware’s “interfaces” to fulfill its needs. When running on top a hardware<br />

emulator <strong>the</strong> emulator provides <strong>the</strong> same hardware interfaces. In a paravirtualized<br />

setup <strong>the</strong> hypervisor provides <strong>the</strong> necessary interfaces. In a usermode OS setup, <strong>the</strong><br />

application environment <strong>of</strong> <strong>the</strong> hosting OS makes up <strong>the</strong> hypervisor. In this section<br />

we discuss hosting a rump kernel in a process on a POSIX host.

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

Saved successfully!

Ooh no, something went wrong!