Do Unikernels even have real value?
Do Unikernels even have real value?
Posted Aug 3, 2017 14:59 UTC (Thu) by perbu (guest, #14372)In reply to: Do Unikernels even have real value? by alonz
Parent article: IncludeOS: a unikernel for C++ applications
The reason unikernels need to run in ring 0 is only because of legacy. At some point I expect IncludeOS to start in ring 0, set up page tables and hardware and then chain-load a second includeos unikernel that is running in ring 3. As they are single process the need to restrict access to things like virtual network adaptors is not needed.
But even if we're running in ring 0 trying to compromise a virtual machine with an unknown memory layout and no system calls is .,. challenging. And contrary to what you're indicating there is nothing magical about running in ring 0. Code doesn't automatically get insecure by escalating its privileges. If your application is running on ring 3 on a Linux server that application has a lot more control over the vm than a unikernel has. If I compromise your linux application I can execute the shell, write files, execute processes, call home and do all sort of crazy stuff. If I compromise a Unikernel I can ... well, there isn't really much you can do as everything that isn't explicitly used by the application gets left out by the linker.
Even if there is functionality to say, connect home, how would you call that function? Trying to guess 64 bit addresses?
