A unikernel is a type of computer program that is statically linked with the operating system code on which it depends.
Therefore, a library OS can provide improved performance by allowing direct access to hardware without having to transition between user mode and kernel mode (on a traditional kernel this transition consists of a single TRAP instruction[2] and is not the same as a context switch[3]).
Since hardware is rapidly changing this creates the burden of regularly rewriting drivers to remain up to date.
[7] Due to the nature of their construction, it is possible to perform whole-system optimisation across device drivers and application logic, thus improving on the specialisation.
[8][9][10] For example, off-the-shelf applications such as nginx, SQLite, and Redis running over a unikernel have shown a 1.7x-2.7x performance improvement.