- Lots of different hardware and peripherals, some legacy (i.e. floppies)
- The filesystem, on top of whatever could conceivably be beneath it
- An institutional administrator and multiple users who need protection from each other, all going about their business in shells simultaneously
- Intelligent resource-sharing between lots of different processes
Unikernels rip all that out and say:
- There is only one kind of "hardware" in the universe: the supported hypervisor. No need for drivers for anything else.
- There is exactly one user with OS-level access and he can be trusted completely. (This is many servers already: the only OS-level user is the sysadmin, all non-root accounts ever do us sudo to a root shell.)
- This VM runs exactly one process (the actual application) and it can have direct access to hardware and memory. So no (or drastically reduced) need for memory protection, process scheduling, system calls, etc.
It's likely that i.e. a relational database engine with direct access to SSD firmware can be made faster than one which must go through a generic filesystem abstraction layer.
Disadvantages:
- Largely uncharted waters
- Linux is likely to be better at intelligently scheduling resources than a hypervisor, at least for the forseeable future.