Important Terms

  • Benchmarks

In computer science, a benchmark refers to the act of running a computer program, a set of programs, or other operations to assess the relative performance of an object, such as hardware or software. . Benchmarks are used to compare the performance of different subsystems across various chip/system architectures

  • Overhead

Overhead in cloud computing refers to any combination of excess or indirect computation time, memory, bandwidth, or other resources that are required to perform a specific task within a cloud computing environment1 . It is a measure of the additional resources consumed beyond what is strictly necessary to complete a task or process.

  • UserSpace Kernel Monitoring

Userspace kernel monitoring refers to the process of monitoring the interaction between the kernel and user-space processes. This can be done using various tools and techniques, including kernel modules, system calls, and userspace tools. Some of the ways to monitor userspace kernel interactions are: Kernel modules: Kernel modules are pieces of code that can be loaded into the kernel to extend its functionality. They can be used to monitor process creation, resource usage, and other kernel events . System calls: System calls are the interface between user-space processes and the kernel. By monitoring system calls, it is possible to track the resources used by a process and detect any abnormal behavior Userspace tools: Userspace tools are programs that run in user-space and interact with the kernel through system calls. They can be used to monitor system health, including temperatures, voltages, and fan speed Overall, userspace kernel monitoring is an important technique for maintaining system health and detecting any issues that may arise. It can be used to monitor resource usage, detect abnormal behavior, and ensure that the system is running smoothly.

  • POSIX

POSIX stands for Portable Operating System Interface, which is a family of standards specified by the IEEE Computer Society for maintaining compatibility between operating systems1 . POSIX defines both the system and user-level application programming interfaces (APIs), along with command line shells and utility interfaces, for software compatibility (portability) with variants of Unix and other operating systems

  • NanoVMs

NanoVMs is a company that specializes in creating a production-ready unikernel platform1 . A unikernel is a small, secure, and lightweight virtual machine that is designed to run a single application . NanoVMs aims to provide a cloud infrastructure platform that is optimized for today’s generation of cloud infrastructure . Their platform offers both public and private environments for running applications

Resources to explore

Let’s dive deep

Three types of libraries:

  1. Core: internal kernel -> Unikraft source code

  2. External libraries: Libraries dependencies for your apps. For example: for running Nginx, Redis → They need threading, we can use the remote library for threading, and similarly, we need a library for networking -> TCP/IP stuff.

  3. Platform: For monitoring, and for providing runtime for the apps. For the architecture → Target the specific architecture whether it is intel x86, ARM/

All these components are put together to form a unikernel.

What is Unikernel?

A single, specialized kernel in which all the above components are bundled together. We get an image that can run target apps.

To get started

Krafkit: package manager

Step 1: The installation process for Kraftkit-

Performance issues with Linux-> solved by Unikernel?