Upgrade to Pro — share decks privately, control downloads, hide ads and more …

The Current State of C++ Unikernels

B3860e5f7d69df921650d2263ea047fd?s=47 Ian Eyberg
September 14, 2016

The Current State of C++ Unikernels

In this slide deck we look at the state of C++ unikernels and compare/contrast some of there differences.

B3860e5f7d69df921650d2263ea047fd?s=128

Ian Eyberg

September 14, 2016
Tweet

Transcript

  1. The Current State of C++ Unikernels

  2. whirlwind tour of unikernels

  3. I looked up ‘standard’ in the dictionary. There are eleven

    different definitions. - Dave Winer
  4. cross-compile existing applications down into small light- weight secure virtual

    machines
  5. but why?

  6. 10k VMs 10 VMs Massive Consolidation

  7. 10ms Boot

  8. single process

  9. no fork

  10. None
  11. fork shared memory semaphores shared libraries multiple processes signals IPC

  12. None
  13. None
  14. L E S S

  15. no context switching

  16. single address space

  17. unsafe code tax for multiple address space systems is 30-40%

  18. no virtual memory

  19. coupled with SR-IOV

  20. no dynamic linking

  21. None
  22. None
  23. 1-10 Bugs/1000 LOC

  24. > 100 Processes > 10,000 Files

  25. 300-400M LOC

  26. token ring wireless usb cdrom floppy disk

  27. None
  28. None
  29. Shit VCs Say "I don’t think server sales are growing."

  30. 400 Million New Servers Needed by 2020

  31. v1

  32. v2

  33. v3

  34. unikernel spectrum "posix" language specific domain specific osv rump kernel

    mirage clickos
  35. whose using unikernels?

  36. None
  37. None
  38. None
  39. None
  40. None
  41. None
  42. isn’t this an old idea? ✓ single process ✓ single

    address space
  43. NFV

  44. CLICKOS

  45. Boot Time

  46. ping delay

  47. RumpKernel

  48. None
  49. None
  50. debugging kernel drivers

  51. Portable Operating System Interface

  52. Unmodified drivers from netbsd

  53. None
  54. OSv

  55. .so

  56. 406k Requests/Second

  57. large memory pages - 2Mb gdb perf kvm their own

    build tool - capstan no spin locks
  58. None
  59. booted 110,000 instances on a 48 core host, before memory

    was exhausted Alfred
  60. None
  61. pure play

  62. c++ runtime running directly on x86

  63. C++ 11/14 clang v3.8+

  64. c++11 features used delegates user defined literals

  65. hello world is 1/3 the size of JVM hello world

    even with hypervisor
  66. network from scratch

  67. create node++

  68. os.a irq manager pic manager pit-timer device drivers

  69. overbooking 75k VMs on One Host

  70. newlib

  71. Stats Profiling Memory map

  72. None
  73. few tweaks

  74. include OS rump kernel OSv clickOS “Posix” X ✓ ✓

    X Size 2Mb 16Mb 29MB 6MB Multiple Languages X ✓ ✓ X
  75. http://rumpkernel.org/ http://www.includeos.org/ http://osv.io/ https://deferpanic.com https://github.com/deferpanic/virgo http://www.meetup.com/San-Francisco-Unikernels/