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.

186<br />

SLOC<br />

8000<br />

7000<br />

6000<br />

5000<br />

4000<br />

3000<br />

2000<br />

base<br />

threading <strong>and</strong> synchronization<br />

host sockets<br />

base<br />

misc emulation<br />

interrupts <strong>and</strong> clock<br />

synchronization<br />

vm<br />

remote system calls<br />

memory allocation<br />

file descriptors<br />

misc<br />

async i/o<br />

time<br />

device glue<br />

au<strong>the</strong>ntication<br />

kernel mib<br />

atomic ops<br />

syscall stubs<br />

vm<br />

glue<br />

tap interface<br />

shm interface<br />

sockets<br />

networking syscalls<br />

network buffers<br />

routing<br />

misc<br />

if framework<br />

raw networking<br />

arp<br />

ip<br />

ipv6<br />

ipv6 subroutines<br />

neighbour disco<br />

icmp<br />

tcp<br />

udp<br />

unix domain<br />

1000<br />

0<br />

user kern net<br />

SLOC<br />

8000<br />

7000<br />

6000<br />

5000<br />

4000<br />

3000<br />

2000<br />

virtual block device<br />

vm glue<br />

rump rootfs<br />

basic interfaces<br />

vfs caches<br />

namei<br />

fs syscalls<br />

buffer priorities<br />

vfs subr<br />

generic journalling<br />

generic file system code<br />

vnode pager<br />

vm vnode routines<br />

FAT<br />

tmpfs<br />

cd9660<br />

efs (r/o)<br />

glue<br />

wlan−at−usb autoconf glue<br />

rnd attachment<br />

raidframe attachment<br />

/dev/smb attachment<br />

cgd (cryptodisk) attachment<br />

scsi−at−umass autoconf glue<br />

rump usb host controller<br />

device autoconf<br />

802.11 crypto<br />

802.11 input/output<br />

802.11 ioctl<br />

802.11 misc<br />

scsi midlayer<br />

scsi disk<br />

usb<br />

umass<br />

rnd<br />

raidframe1<br />

raidframe2<br />

raidframe3<br />

raidframe4<br />

/dev/smb<br />

cgd (cryptodisk)<br />

1000<br />

0<br />

vfs<br />

dev<br />

implemented<br />

extracted<br />

Figure 4.1: Source Lines Of Code in rump kernel <strong>and</strong> selected drivers.<br />

<strong>The</strong> amount <strong>of</strong> code usable without modification is vastly greater than <strong>the</strong> amount<br />

<strong>of</strong> support code necessary. A majority <strong>of</strong> <strong>the</strong> drivers tested to work in rump kernels<br />

is not included in <strong>the</strong> figure due to <strong>the</strong> limited space available for presentation. <strong>The</strong><br />

size difference between rump kernel specific support code <strong>and</strong> drivers is evident.

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

Saved successfully!

Ooh no, something went wrong!