Abstract
General purpose operating systems are widely in use for running many different applications on a big selection of hardware. Such an operating system must be quite complete in order to provide virtual memory, scheduling, services etc. for any application. They are designed with multitasking in mind, being able to run several tasks simultaneously, utilizing scheduling and time sharing. Any running application may at any time be interrupted if resources are requested by a different process. This will usually happen because of an interrupt or context switch from kernel to user mode, and can result in uneven performance. A unikernel operating system is a different approach. It is just a single binary with only a single application running in kernel mode without any additional bloat. A lot of the general purpose software is not needed when running a virtual machine. This makes a unikernel OS a fast and lightweight option to general purpose operating systems for virtual machines. The aim of this thesis is to compare the CPU and memory performance of a unikernel-based operating system and a general purpose operating system when running on bare metal and not on virtual machines. The goal is to avoid the operating system noise which is known to occur when using general purpose operating systems. In this case the comparison was done between the IncludeOS unikernel and Ubuntu Linux.