Dynamic Unikernel Launching for Low-Latency Resource Access

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

User space applications experience latency and inefficiency due to the need to transition between user space and kernel space to access system resources, which is unacceptable for high-performance computing and real-time applications, and existing unikernel solutions require system reboots and are complex to manage on modern computing systems with multiple resources.

Innovation Solution

The system allows for dynamic launching of unikernel binaries using system resources allocated by the OS kernel, enabling exclusive or non-exclusive execution modes, where unikernels can be launched without rebooting the system and managed flexibly, allowing for simultaneous execution of multiple unikernels with controlled resource allocation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If user space applications access system resources by making calls to the OS kernel, then system resource management is centralized and secure, but latency increases and processing efficiency decreases

Engineering Contradiction:
Improvesystem resource managementVSAvoidaccess latency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent segments the system into traditional kernel-space operations and unikernel executions. By isolating unikernels in dedicated execution environments with pre-allocated resources, the system separates time-critical operations from general system management, allowing unikernels to bypass kernel transitions and access resources directly without latency.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a unikernel as an intermediary layer between user space applications and system resources. This unikernel contains necessary kernel functionalities embedded within it, allowing applications to access resources through the unikernel's direct hardware access capabilities rather than through traditional kernel system calls, thereby eliminating context switch latency.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If traditional kernels include all necessary functionalities for system management, then system control is comprehensive, but processing overhead increases for applications that don't need all functionalities

Engineering Contradiction:
Improvesystem controlVSAvoidprocessing efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent extracts only the necessary kernel functionalities into dedicated unikernels. Each unikernel contains precisely the kernel code and drivers needed for its specific function (e.g., network processing, file I/O), removing unnecessary kernel code and dependencies. This extraction reduces the attack surface and memory footprint while improving processing efficiency for specialized workloads.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent applies local quality by creating function-specific unikernels with tailored resource allocations and capabilities. Each unikernel is optimized for its specific purpose with localized resource access permissions and embedded functionality, rather than relying on a monolithic kernel with universal but unnecessary capabilities for each workload.

Inventive Principle:
Principle #3Local quality

3Reliability

If unikernels are launched by rebooting the system, then resource allocation is exclusive and secure, but system availability decreases and management complexity increases

Engineering Contradiction:
Improveresource allocationVSAvoidsystem management
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The patent implements dynamic unikernel launching and management without system reboots. The kernel maintains a pool of resources that can be dynamically allocated to unikernels on-demand, allowing unikernels to be started, stopped, and restarted independently while the system remains operational. This dynamic resource management enables flexible deployment and updates without service interruption.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent creates a universal kernel framework that can manage multiple types of unikernels simultaneously. The kernel provides a standardized interface for launching and managing diverse unikernels (network, storage, application-specific) with different resource requirements, enabling a single system to handle multiple workloads with exclusive resource allocation for each unikernel type.

Inventive Principle:
Principle #6Universality (Multi-functionality)

4Productivity

If system resources are allocated exclusively to a single unikernel, then performance is maximized, but system versatility decreases

Engineering Contradiction:
Improveapplication performanceVSAvoidsystem flexibility
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent segments system resources into dedicated pools for different unikernel types. Each unikernel receives exclusive access to its allocated resource pool (CPU cores, memory, I/O devices), maximizing performance for that specific workload. Meanwhile, the kernel maintains separate resource pools that can be independently allocated to different unikernels, enabling the system to run multiple specialized workloads simultaneously with full resource dedication for each.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10983847B2Dynamically loadable unikernel binaries
Publication Date: 2021.04.20 RED HAT INC
  • US10983847B2 patent drawing
  • US10983847B2 patent drawing
  • US10983847B2 patent drawing

AI summary

A method of launching a unikernel comprises: identifying, by a kernel utilizing a set of system resources of a computing system, a unikernel to be launched in an exclusive mode; determining that the set of system resources of the computing system satisfies hardware requirements specified by configuration metadata of the unikernel; releasing, by the kernel, the set of system resources for use by the unikernel; launching the unikernel; and terminating the kernel.