4 ms·
I'm also trying to understand the use for Unikernels, because I find them very interesting from a technology perspective. To me, Unikernels might make sense whe
by codeflo 8y ago
I'm also trying to understand the use for Unikernels, because I find them very interesting from a technology perspective. To me, Unikernels might make sense when running a high-performance application on bare metal. There's probably quite a bit of performance to be gained by running your application in ring 0 directly on a physical machine.
But once you add a hypervisor and a scheduler, you've essentially reinvented the OS. I struggle to see the point: just compile static executables and run them on Linux, natively installed on physical hardware, like we did 30 years ago. Deployment is just as easy (i.e. copy a file), performance should be comparable (calling into the kernel should be comparable to calling into the hypervisor), and the tooling is way more mature.
- justicezyx 8y ago> But once you add a hypervisor and a scheduler What I imagine is a giant machine with thousands of cores, running a unikernel scheduler, for horizontal-scaling apps. That means hardware vendors can sell their produce directly to application developers, instead of being shoved behind scene by Cloud vendors. That might means reinventing OS, which can be argued for K8s as well, which is also reinventing similar OS concepts (process management == job management, threading == sharding, ipc == SOA, kernel scheduling == container scheduling). But the point is that it offers a produce that has technical superiority, and hardware vendors would have more expertise to build them, i.e., unikernel would have much more intimate relationship with baremetal than containers, where hardware vendors would naturally know better to optimize.
- perbu 8y agoUnikernels are processes but with decent isolation. Also the abstractions are on a lower lever. If you have a process with user space networking and user space disk IO you’re one step away from a unikernel.