|
|
|
|
|
by bluepizza
1583 days ago
|
|
Because they are a silly idea. Why would you spin up a full kernel to run a single application on top of a hypervisor that is balancing resources? Operating systems already solve this problem relatively well, without the overhead, via processes and containers. |
|
You're misunderstanding the levels of abstraction probably because the word "kernel" within "unikernel" is throwing you off. The idea is to use a partial kernel (only the minimum services one needs). The so-called "kernel" is a library of code where you compile the minimum bits into the single-process image.
>Operating systems already solve this problem relatively well, without the overhead, via processes
A full operating system like Linux is expending extra overhead to schedule/prioritize/monitor processes (plural) -- because Linux is designed to be more general purpose and open-ended than a specialized unikernel. In contrast, a unikernel with only 1 singular process (say a specialized db engine) doesn't need to expend extra cpu on processe(s) scheduling.
All that said, it doesn't seem like unikernels have enough advantages to attract widespread adoption like containers.