A primer on the anykernel concept and how they lead to unikernels. Uses the NetBSD rump kernel project as the application and demo.
This version presented at the February 2018 Philadelphia Linux Users Group North meeting.
Boost PC performance: How more available memory can improve productivity
Introduction to anykernels using rump kernels
1. Introduction to anykernels using rump kernels
Charlie Li
Wahgwan Industry Limited
PLUG North
13 February 2018
Charlie Li Wahgwan Industry Limited Introduction to anykernels using rump kernels PLUG North 13 February 2018 1 / 9
2. Current landscape
Charlie Li Wahgwan Industry Limited Introduction to anykernels using rump kernels PLUG North 13 February 2018 2 / 9
3. Current landscape
chroot, VMs, containers, etc
Charlie Li Wahgwan Industry Limited Introduction to anykernels using rump kernels PLUG North 13 February 2018 2 / 9
4. Current landscape
chroot, VMs, containers, etc
Maybe throw in Kubernetes or something
Charlie Li Wahgwan Industry Limited Introduction to anykernels using rump kernels PLUG North 13 February 2018 2 / 9
5. Current landscape
chroot, VMs, containers, etc
Maybe throw in Kubernetes or something
AWS!!!!!!!!!!!
Charlie Li Wahgwan Industry Limited Introduction to anykernels using rump kernels PLUG North 13 February 2018 2 / 9
6. Pitfalls.
Charlie Li Wahgwan Industry Limited Introduction to anykernels using rump kernels PLUG North 13 February 2018 3 / 9
7. History of the rump kernel
Charlie Li Wahgwan Industry Limited Introduction to anykernels using rump kernels PLUG North 13 February 2018 4 / 9
8. History of the rump kernel
Tool for facilitating safer driver development
Could do without duplicated program execution support, root
filesystem image, virtual memory subsystem, scheduling
Charlie Li Wahgwan Industry Limited Introduction to anykernels using rump kernels PLUG North 13 February 2018 4 / 9
9. History of the rump kernel
Tool for facilitating safer driver development
Could do without duplicated program execution support, root
filesystem image, virtual memory subsystem, scheduling
Definition of ”rump”
Charlie Li Wahgwan Industry Limited Introduction to anykernels using rump kernels PLUG North 13 February 2018 4 / 9
10. History of the rump kernel
Tool for facilitating safer driver development
Could do without duplicated program execution support, root
filesystem image, virtual memory subsystem, scheduling
Definition of ”rump”
Anykernel: kernel codebase which allows drivers to run in any
configuration
Rump kernel: drivers from anykernel as library components
Charlie Li Wahgwan Industry Limited Introduction to anykernels using rump kernels PLUG North 13 February 2018 4 / 9
11. Charlie Li Wahgwan Industry Limited Introduction to anykernels using rump kernels PLUG North 13 February 2018 5 / 9
12. The Rumprun unikernel
Charlie Li Wahgwan Industry Limited Introduction to anykernels using rump kernels PLUG North 13 February 2018 6 / 9
14. The Rumprun unikernel
Accidental!
Rump kernel on top of low-level bootstrap and scheduling layer
Run a single application per instance
Application baked in with selected rump kernel libraries
Charlie Li Wahgwan Industry Limited Introduction to anykernels using rump kernels PLUG North 13 February 2018 6 / 9
15. The catch?
The balance of simplicity and robustness, at work
Charlie Li Wahgwan Industry Limited Introduction to anykernels using rump kernels PLUG North 13 February 2018 7 / 9
16. The catch?
The balance of simplicity and robustness, at work
Unmodified drivers, unmodified libc, unmodified applications
Charlie Li Wahgwan Industry Limited Introduction to anykernels using rump kernels PLUG North 13 February 2018 7 / 9
17. The catch?
The balance of simplicity and robustness, at work
Unmodified drivers, unmodified libc, unmodified applications
No virtual memory support
No SMP
Some low-level functions defined but not implemented
Charlie Li Wahgwan Industry Limited Introduction to anykernels using rump kernels PLUG North 13 February 2018 7 / 9
18. The catch?
The balance of simplicity and robustness, at work
Unmodified drivers, unmodified libc, unmodified applications
No virtual memory support
No SMP
Some low-level functions defined but not implemented
Everything cross-compiled: no pre-built packages
Charlie Li Wahgwan Industry Limited Introduction to anykernels using rump kernels PLUG North 13 February 2018 7 / 9
19. Stack
There are more but these are the most important ones
buildrump.sh
src-netbsd
rumpctrl
rumprun
Charlie Li Wahgwan Industry Limited Introduction to anykernels using rump kernels PLUG North 13 February 2018 8 / 9
20. Demo time!
Charlie Li Wahgwan Industry Limited Introduction to anykernels using rump kernels PLUG North 13 February 2018 9 / 9