Project ACRN™ Logo
1.6.1
Project ACRN v: 1.6.1
Document Versions
latest
1.6
1.5
1.4
1.3
1.2
1.1
1.0
projectacrn.org links
Project Home
Wiki
  • Documentation Home
  • What is ACRN
    • Introduction to Project ACRN
    • ACRN Open Source Roadmap 2020
    • ACRN High-Level Architecture
    • Usage Scenarios
      • Automotive Application Scenarios
      • Industrial Workload Consolidation
    • Best Known Configurations
      • SDC scenario with two VMs
      • SDC scenario with four VMs
      • Industry scenario without a safety VM
      • Industry scenario with a safety VM
      • Logical Partitioning scenario
    • Licensing
    • ACRN Device Model, Service VM, and User VM
    • Boot Sequence
      • De-privilege boot mode
      • Direct boot mode
    • ACRN Hypervisor Architecture
    • ACRN Device Model Architecture
    • Device pass through
      • Hardware support for device passthrough
      • Hypervisor support for device passthrough
    • ACRN I/O mediator
    • Virtio framework architecture
  • Getting Started
    • Supported Hardware
      • Minimum System Requirements for Installing ACRN
      • Minimum Requirements for Processor
      • Known Limitations
      • Verified Platforms According to ACRN Usage
      • Verified Hardware Specifications Detail
    • Build ACRN from Source
      • Introduction
      • Install build tools and dependencies
      • Get the ACRN hypervisor source code
      • Build with the ACRN scenario
      • Build the hypervisor configuration
        • Modify the hypervisor configuration
      • Build the hypervisor, device model, and tools
    • Getting Started Guide for ACRN Industry Scenario
      • Verified version
      • Prerequisites
        • Hardware Setup
      • Set up the ACRN Hypervisor for industry scenario
        • Use the pre-installed industry ACRN hypervisor
        • Use the ACRN industry out-of-the-box image
      • Install and launch the Preempt-RT VM
      • RT Performance Test
        • Cyclictest introduction
        • Pre-Configurations
        • Run cyclictest
      • Launch additional User VMs
        • Prepare the launch scripts
        • Launch Windows VM
        • Launch other standard VMs
      • Troubleshooting
        • Use serial port on KBL NUC
        • EFI image doesn’t exist
        • Enabling the network on RTVM
        • Passthrough a hard disk to the RTVM
    • Getting Started Guide for ACRN hybrid mode
      • Prerequisites
      • Update Ubuntu GRUB
      • Hybrid Scenario Startup Checking
    • Getting Started Guide for ACRN logical partition mode
      • Validated Versions
      • Prerequisites
      • Update kernel image and modules of pre-launched VM
      • Update ACRN hypervisor image
      • Update Ubuntu GRUB to boot hypervisor and load kernel image
      • Logical partition scenario startup checking
  • Advanced Guides
    • Configuration and Tools
      • ACRN Configuration Tool
        • Introduction
        • ACRN configuration XMLs
        • Configuration tool workflow
        • Use the ACRN configuration app
      • Configuration Symbol Reference
        • Introduction
        • Supported Options
      • ACRN Kernel Parameters
        • Generic kernel parameters
        • Intel GVT-g (AcrnGT) Parameters
      • ACRN Shell Commands
        • Command examples
      • Device Model Parameters
      • ACRN-Crashlog
        • Introduction
        • Building
        • Installing
        • Enabling/Disabling
        • Usage
        • Source Code
      • acrnprobe
        • Description
        • Usage
        • Architecture
        • Source files
        • Configuration files
      • acrnprobe Configuration
        • Description
        • Layout
        • Properties of group members
        • Crash tree in acrnprobe
        • Sections
      • usercrash
        • Description
        • Design
        • Usage
        • Source Code
      • acrnlog
        • Description
        • Usage
        • Build and Install
      • acrntrace
        • Description
        • Usage
        • Build and Install
      • acrnctl and acrnd
        • Description
        • acrnd
        • Build and Install
    • Service VM Tutorials
      • Run Ubuntu as the Service VM
        • Install Ubuntu (natively)
        • Install ACRN
        • Install the Service VM kernel
        • Prepare the User VM
        • Start the User VM
        • Enable network sharing
        • Enable the USB keyboard and mouse
      • Run Debian as the Service VM
        • Prerequisites
        • Validated Versions
        • Install ACRN on the Debian VM
    • User VM Tutorials
      • Build a User VM from the Clear Linux OS
        • Build User VM image from Clear Linux OS
        • Start the User VM
      • Launch Windows as the Guest VM on ACRN
        • Verified version
        • Hardware setup
        • ACRN Service VM Setup
        • Setup for Using Windows as the Guest VM
        • ACRN Windows verified feature list
        • Known Limitations
        • Explanation for acrn-dm popular command lines
        • Secure boot enabling
        • Activate Windows 10
      • Run Ubuntu as the User VM
        • Prerequisites
        • Build the Ubuntu KVM Image
        • Launch the Ubuntu Image as the User VM
        • Enable the Ubuntu Console instead of the User Interface
      • Run Debian as the User VM
        • Prerequisites
        • Build the Debian KVM Image
        • Launch the Debian Image as the User VM
        • Enable the ttyS0 Console on the Debian VM
      • Run Xenomai as the User VM OS (Real-Time VM)
        • Build the Xenomai kernel
        • Launch the RTVM
        • Install the Xenomai libraries and tools
      • Run Celadon as the User VM
        • Prerequisites
        • Build Celadon from source
        • Steps for Using Celadon as the User VM
      • Run VxWorks as the User VM
        • Steps for Using VxWorks as User VM
      • Run Zephyr as the User VM
        • Introduction to Zephyr
        • Steps for Using Zephyr as User VM
      • Run two AGL images as User VMs
        • Hardware Setup
        • Software Setup
    • Enable ACRN Features
      • Enable QoS based on runC Containers
        • What is QoS
        • What is runC container
        • ACRN-DM QoS architecture
        • ACRN-QoS CPU utilization example
        • How to use ACRN-DM QoS
      • Enable OVS in ACRN
        • What is OVS
        • Why OVS
        • How to enable OVS in ACRN
        • How to use OVS bridge
        • Example for VLAN network based on OVS in ACRN
      • Enable SGX Virtualization
        • High Level ACRN SGX Virtualization Design
        • Enable SGX support for Guest
        • SGX Capability Exposure
        • Enclave System Function Handling
        • Other VMExit Control
        • Future Development
      • Enable vUART Configurations
        • Introduction
        • Console enable list
        • How to configure a console port
        • How to configure a communication port
        • Communication vUART enable list
        • Launch script
        • Test the communication port
        • vUART design
        • COM port configurations for Post-Launched VMs
      • Enable RDT Configuration
        • RDT detection and resource capabilities
        • Tuning RDT resources in HV debug shell
        • Configure RDT for VM using VM Configuration
      • Enable SBL on the UP2 Board
        • Prerequisites
        • Build SBL
        • Flash SBL on the UP2
        • Build ACRN for UP2
        • Download and install flash tool
        • Service VM and LaaG Installation
        • Boot to Service VM
        • Launch User VM
      • Enable Secure Boot in Windows
        • Generate Platform Key (PK)
        • Download KEK and DB from Microsoft
        • Compile OVMF with secure boot support
        • Use QEMU to inject secure boot keys into OVMF
      • Enable S5 in ACRN
        • Introduction
        • S5 Architecture
        • Enable S5
        • How to test
      • Enable CPU Sharing in ACRN
        • Introduction
        • Scheduling Framework
        • CPU affinity
        • Thread object state
        • Scheduler
        • Example
      • Enable SR-IOV Virtualization
        • SR-IOV Architectural Overview
      • Enable GPU Passthrough on the Skylake NUC
        • Hardware platform
        • Software Configuration
        • Software Setup
      • Run Kata Containers on a Service VM
        • Prerequisites
        • Install Docker
        • Install Kata Containers
        • Configure Kata on ACRN
        • Run a Kata Container with ACRN
      • Trusty and Security Services Reference
        • Trusty Architecture
        • Trusty Services
        • Trusty in ACRN
      • Real-Time VM Application Design Guidelines
        • Run RTVM with dedicated resources/devices
        • RTVM with virtio PMD (Polling Mode Driver) for I/O sharing
        • RTVM with HV Emulated Device
        • DM emulated device (Except PMD)
      • Configure ACRN using OpenStack and libvirt
        • Introduction
        • Install ACRN
        • Set up and launch LXC/LXD
        • Set up ACRN prerequisites inside the container
        • Set up libvirt
        • Set up OpenStack
        • Final Steps
    • Debug
      • ACRN Debugging Tools
        • ACRN Console Command
        • An example
        • ACRN Log
        • ACRN Trace
      • ACRN Real-Time (RT) Performance Analysis
        • vmexit analysis for ACRN RT performance
        • Collecting Performance Monitoring Counters data
      • ACRN Real-Time VM Performance Tips
        • Background
        • Mandatory options for an RTVM
        • Avoid VM-exit latency
        • Isolating the impact of neighbor VMs
        • Miscellaneous
    • Additional Tutorials
      • Getting Started Guide for the UP2 Board
        • Hardware setup
        • Software setup
        • Running the hypervisor
      • Build ACRN in Docker
        • Install Docker
        • Get the Docker Image
        • Build ACRN from Source in Docker
        • Build the ACRN Service VM Kernel in Docker
        • Build the ACRN User VM PREEMPT_RT Kernel in Docker
        • Build the ACRN documentation
      • Install ACRN Out of the Box
        • Set up a Build Environment
        • Generate a Service VM image
        • Generate a User VM Preempt-RT image
      • Set Up a Static IP Address
        • ACRN Network Setup
        • Setting up the static IP address
        • Activate the new configuration
      • Increase the User VM Disk Size
        • Increase the virtual disk size
        • Resize the rootfs partition
        • Resize the filesystem
      • Sign Clear Linux Image Binaries
        • Prerequisites
        • Steps to sign the binaries of the Clear Linux image
      • Enable Secure Boot in the Clear Linux User VM
        • Prerequisites
        • Validated versions
        • Prepare keys (PK/KEK/DB)
        • Sign the Clear Linux image
        • Boot Clear Linux signed image
      • Use SDC Mode on the NUC
        • Validated Version
        • Software Setup
  • Developer Reference
    • Design Guides
      • ACRN Hypervisor: Modular Design
        • Overview
        • Principles
        • Architecture
        • References
      • High-Level Design Guides
        • Overview
        • Hypervisor
        • Device Model
        • Emulated Devices
        • Virtio Devices
        • Power Management
        • Tracing and Logging
        • Virtual Bootloader
        • Security
      • Software Design Guidelines
        • Error Detection and Error Handling
        • Module Level Configuration Design Guidelines
        • References
      • GVT-g Enabling and Porting Guide
        • Introduction
        • Purpose of this document
        • Overall Components
        • Core scenario interaction sequences
        • API details
      • Trusty TEE
        • Introduction
        • Trusty Architecture
        • Trusty specific Hypercalls
        • Trusty Boot flow
        • EPT Hierarchy
      • L1 Terminal Fault Mitigation
        • Overview
        • L1TF Problem in ACRN
        • L1TF Mitigation in ACRN
        • Mitigation Recommendations
        • Mitigation Status
      • VBS-K Framework Virtualization Overhead Analysis
        • Introduction
        • Architecture of VIRTIO-ECHO
        • Virtualization Overhead Analysis
        • Conclusion
    • Contribute Guides
      • Contribution Guidelines
        • Licensing
        • Developer Certification of Origin (DCO)
        • Prerequisites
        • Repository layout
        • Submitting Issues
        • Contribution Tools and Git Setup
        • Coding Style
        • Contribution Workflow
        • Commit Guidelines
      • Coding Guidelines
        • C Programming Language Coding Guidelines
        • Assembly Language Coding Guidelines
      • Documentation Guidelines
        • Headings
        • Content Highlighting
        • Lists
        • Multi-column lists
        • Tables
        • File names and Commands
        • Internal Cross-Reference Linking
        • Non-ASCII Characters
        • Code and Command Examples
        • Images
        • Tabs, spaces, and indenting
        • Drawings
        • Alternative Tabbed Content
        • Instruction Steps
        • First instruction step
        • Second instruction step
        • Documentation Generation
      • Drawings using graphviz
        • Simple directed graph
        • Adding edge labels
        • Tables
        • Finite-State Machine
      • ACRN documentation generation
        • Documentation overview
        • Set up the documentation working folders
        • Installing the documentation tools
        • Documentation presentation theme
        • Running the documentation processors
        • Publishing content
        • Document Versioning
        • Filtering expected warnings
    • API Documentation
      • API Documentation
        • Hypercall APIs
        • Device Model APIs
        • ACRN GVT-g APIs
  • Release Notes
    • ACRN v1.6.1 (May 2020)
      • Version 1.6.1 major features
        • What’s New in v1.6.1
        • Document updates
      • Fixed Issues Details
      • Known Issues
      • Change Log
    • ACRN v1.6 (Mar 2020)
      • Version 1.6 major features
        • What’s New in v1.6
        • Document updates
      • New Features Details
      • Fixed Issues Details
      • Known Issues
      • Change Log
    • ACRN v1.5 (Jan 2020)
      • Version 1.5 major features
        • What’s New in v1.5
        • Document updates
      • Fixed Issues Details
      • Known Issues
      • Change Log
    • ACRN v1.4 (Oct 2019)
      • Version 1.4 major features
        • What’s New in v1.4
        • Document updates
      • Security Vulnerabilities
      • New Features Details
      • Fixed Issues Details
      • Known Issues
      • Change Log
    • ACRN v1.3 (Sep 2019)
      • Version 1.3 major features
        • What’s New in v1.3
        • Document updates
      • New Features Details
      • Fixed Issues Details
      • Known Issues
      • Change Log
    • ACRN v1.2 (Aug 2019)
      • Version 1.2 major features
        • What’s New in v1.2
        • Document updates
      • New Features Details
      • Fixed Issues Details
      • Known Issues
      • Change Log
    • ACRN v1.1 (June 2019)
      • Version 1.1 major features
        • Hybrid Mode Introduced
        • Support for new guest Operating Systems
        • Document updates
      • New Features Details
      • Fixed Issues Details
      • Known Issues
      • Change Log
    • ACRN v1.0.2 (November 2019)
      • Change Log in v1.0.2 since v1.0.1
    • ACRN v1.0.1 (July 2019)
      • Change Log in version 1.0.1 since version 1.0
    • ACRN v1.0 (May 2019)
      • Version 1.0 major features
        • Hardware Support
        • APL UP2 board with SBL firmware
        • Enable post-launched RTVM support for real-time UOS in ACRN
        • Enable cache QOS with CAT
        • Enable QoS based on runC container
        • S5 support for RTVM
        • OVMF support initial patches merged in ACRN
        • Support ACPI power key mediator
        • VT-x, VT-d
        • PIC/IOAPIC/MSI/MSI-X/PCI/LAPIC
        • Ethernet
        • Mass Storage
        • USB (xDCI)
        • USB Mediator (xHCI)
        • Wi-Fi
        • IPU (MIPI CSI-2, HDMI-in)
        • Bluetooth
        • GVT-g for ACRN
        • GPU - Preemption
        • GPU - display surface sharing via Hyper DMA
        • Virtio standard is supported
        • Device pass-through support
        • GPIO virtualization
        • New ACRN tools
        • Document updates
      • New Features Details
      • Fixed Issues Details
      • Known Issues
      • Change Log
    • ACRN v0.8 (Apr 2019)
      • Version 0.8 new features
        • GPIO virtualization
        • Enable QoS based on runC container
        • S5 support for RTVM
        • Document updates
      • New Features Details
      • Fixed Issues Details
      • Known Issues
      • Change Log
    • ACRN v0.7 (Mar 2019)
      • Version 0.7 new features
        • Enable cache QOS with CAT
        • Support ACPI power key mediator
        • Document updates
      • New Features Details
      • Fixed Issues Details
      • Known Issues
      • Change Log
    • ACRN v0.6 (Feb 2019)
      • Version 0.6 new features
      • Fixed Issues
      • Known Issues
      • Change Log
    • ACRN v0.5 (Jan 2019)
      • Version 0.5 new features
      • Fixed Issues
      • Known Issues
      • Change Log
    • ACRN v0.4 (Dec 2018)
      • Version 0.4 new features
      • Fixed Issues
      • Known Issues
      • Change Log
    • ACRN v0.3 (Nov 2018)
      • Version 0.3 new features
      • Fixed Issues
      • Known Issues
      • Change Log
    • ACRN v0.2 (Sep 2018)
      • Version 0.2 new features
        • VT-x, VT-d
        • PIC/IOAPIC/MSI/MSI-X/PCI/LAPIC
        • Ethernet
        • Storage (eMMC)
        • USB (xDCI)
        • USB Mediator (xHCI and DRD)
        • CSME
        • WiFi
        • IPU (MIPI-CS2, HDMI-in)
        • Bluetooth
        • GPU - Preemption
        • GPU - display surface sharing via Hyper DMA
        • S3
      • Fixed Issues
      • Known Issues
      • Change Log
    • ACRN v0.1 (July 2018)
      • Version 0.1 new features
        • Hardware Support
        • GVT-g for ACRN
        • Virtio standard is supported
        • Device pass-through support
        • Hypervisor configuration
        • New ACRN tools
      • Known Issues
      • Change Log
  • Security Advisory
    • Addressed in ACRN v1.6.1
    • Addressed in ACRN v1.6
    • Addressed in ACRN v1.4
  • FAQ
    • What hardware does ACRN support?
    • Clear Linux* OS fails to boot on my NUC
    • How do I configure ACRN’s memory size?
    • How to modify the default display output for a User VM?
    • Why does ACRN need to know how much RAM the system has?
    • How to build ACRN on Fedora 29?
  • Glossary of Terms
Project ACRN™
  • Docs »
  • Developer Reference »
  • High-Level Design Guides »
  • Hypervisor high-level design

Hypervisor high-level design¶

  • Hypervisor Startup
  • VM Management
  • CPU Virtualization
  • Memory management
  • I/O Emulation
  • IOC Virtualization
  • Physical Interrupt
  • Timer
  • Virtual Interrupt
  • VT-d
  • Device Passthrough
  • Partition mode
  • Power Management
  • Console, Shell, and vUART
  • Hypercall / VHM upcall
  • Compile-time configuration
  • RDT support
  • Split-locked Access handling

© Copyright 2020, Project ACRN Last updated on Jun 09, 2020.