Unikernels are specialized virtual machines compiled from application code and only necessary operating system components. They provide benefits like reduced memory usage, faster load times, and a smaller attack surface compared to traditional virtual machines. Several unikernel implementations exist like MirageOS, Rumprun, and IncludeOS which are compiled from different languages and have varying boot times, image sizes, and hypervisor support. Unikernels are being applied to applications such as proxies, edge computing, and IoT gateways.