Skip to content

Turbo Virtual Machine ​

What you'll learn

  • How Turbo's lightweight virtualization works
  • Key features of the Turbo VM engine
  • Application layering and conflict resolution

Overview ​

Turbo's innovative virtualization technology takes a unique approach to running applications. Unlike traditional solutions that require a complete copy of the host operating system, Turbo:

  • Emulates only the essential features needed to run applications
  • Maintains native-level performance characteristics
  • Requires no changes to system infrastructure

The Turbo VM Engine ​

At the heart of Turbo's application virtualization technology is the Turbo Virtual Machine (VM) engine. This lightweight system:

  • Occupies only a few megabytes of storage
  • Introduces minimal performance overhead
  • Implements core operating system APIs:
    • File system
    • Registry
    • Process management
    • Threading subsystems

The VM engine operates entirely in user-mode space, enabling applications to run without:

  • Driver installations
  • Administrative privileges
  • System modifications

How It Works ​

Virtualized applications interact with virtualized components rather than directly with the host operating system:

  • Virtual file system
  • Virtual registry
  • Isolated process environment

All requests are handled within this contained environment, though they can be:

  • Redirected to different locations
  • Configured to override default behavior
  • Modified based on specific needs

Forward Compatibility ​

Turbo virtualization ensures applications remain compatible as operating systems evolve:

  • Translation Layer:

    • Handles OS version differences
    • Provides consistent runtime environment
    • Maintains application stability
  • Continuous Updates:

    • Testing against Windows Insider Track builds
    • Regular VM updates published to Turbo.net
    • Optional testing by publishers before release
  • Managed Updates:

    • Validation with each Windows Semi-Annual Channel
    • Automatic VM updates via Turbo.net cloud
    • Administrator control over update deployment

Application Layering ​

The Turbo VM engine enables running multiple virtualized applications through sophisticated layering:

  • Modular Design:

    • Stack multiple application components
    • Reuse common elements across projects
    • Optimize resource usage
  • Layer Management:

    • Each image creates a distinct layer
    • Layers can be combined flexibly
    • Resources are shared efficiently

Note: The terms "layer" and "image" are used interchangeably, as each layer is created from an image.

Common Scenarios ​

Component Integration ​

Handling Layer Conflicts ​

While layers typically define unique resources, conflicts can occur. Resolution follows these rules:

  1. Isolation Mode Conflicts:

    • First layer's settings take precedence
    • Order of layers determines final configuration
  2. Example Scenario: When combining git and nodejs images with conflicting settings for c:\git:

    bash
    # Results in full isolation for c:\git
    > turbo run git,nodejs
    
    # Results in merge isolation for c:\git
    > turbo run nodejs,git