doc: update "What is ACRN" introduction

Refresh and update the "What is ACRN" document to reflect the latest changes.
Most notably, the scenario definitions have changed.

Signed-off-by: Geoffroy Van Cutsem <geoffroy.vancutsem@intel.com>
This commit is contained in:
Geoffroy Van Cutsem 2020-06-10 12:32:07 +02:00 committed by deb-intel
parent 19f629a2fa
commit 5f28b90dad
16 changed files with 87 additions and 109 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 113 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 163 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 95 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 106 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 75 KiB

After

Width:  |  Height:  |  Size: 175 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

After

Width:  |  Height:  |  Size: 163 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

View File

@ -65,10 +65,10 @@ VM. The service VM can access hardware resources directly by running
native drivers and it provides device sharing services to the user VMs native drivers and it provides device sharing services to the user VMs
through the Device Model. Currently, the service VM is based on Linux, through the Device Model. Currently, the service VM is based on Linux,
but it can also use other operating systems as long as the ACRN Device but it can also use other operating systems as long as the ACRN Device
Model is ported into it. A user VM can be Clear Linux*, Android*, Model is ported into it. A user VM can be Clear Linux*, Ubuntu*, Android*,
Windows* or VxWorks*. There is one special user VM, called a Windows* or VxWorks*. There is one special user VM, called a
post-launched Real-Time VM (RTVM), designed to run a hard real-time OS, post-launched Real-Time VM (RTVM), designed to run a hard real-time OS,
such as VxWorks*, or Xenomai*. Because of its real-time capability, RTVM such as Zephyr*, VxWorks*, or Xenomai*. Because of its real-time capability, RTVM
can be used for soft programmable logic controller (PLC), inter-process can be used for soft programmable logic controller (PLC), inter-process
communication (IPC), or Robotics applications. communication (IPC), or Robotics applications.
@ -94,7 +94,7 @@ for building Automotive Software Defined Cockpit (SDC) and In-Vehicle
Experience (IVE) solutions. Experience (IVE) solutions.
.. figure:: images/ACRN-V2-SDC-scenario.png .. figure:: images/ACRN-V2-SDC-scenario.png
:width: 400px :width: 600px
:align: center :align: center
:name: V2-SDC-scenario :name: V2-SDC-scenario
@ -103,10 +103,10 @@ Experience (IVE) solutions.
As a reference implementation, ACRN provides the basis for embedded As a reference implementation, ACRN provides the basis for embedded
hypervisor vendors to build solutions with a reference I/O mediation hypervisor vendors to build solutions with a reference I/O mediation
solution. In this scenario, an automotive SDC system consists of the solution. In this scenario, an automotive SDC system consists of the
Instrument Cluster (IC) system in VM1, the In-Vehicle Infotainment (IVI) Instrument Cluster (IC) system running in the Service VM and the In-Vehicle
system in VM2, and one or more Rear Seat Entertainment (RSE) systems in Infotainment (IVI) system is running the post-launched User VM. Additionally,
VM3. Each system is running as an isolated Virtual Machine (VM) for one could modify the SDC scenario to add more post-launched User VMs that can
overall system safety considerations. host Rear Seat Entertainment (RSE) systems (not shown on the picture).
An **Instrument Cluster (IC)** system is used to show the driver operational An **Instrument Cluster (IC)** system is used to show the driver operational
information about the vehicle, such as: information about the vehicle, such as:
@ -140,15 +140,8 @@ reference stack to run their own VMs, together with IC, IVI, and RSE
VMs. The Service VM runs in the background and the User VMs run as VMs. The Service VM runs in the background and the User VMs run as
Post-Launched VMs. Post-Launched VMs.
.. figure:: images/ACRN-V2-SDC-Usage-Architecture-Overview.png
:width: 700px
:align: center
:name: V2-SDC-usage-arch
ACRN SDC usage architecture overview
A block diagram of ACRN's SDC usage scenario is shown in A block diagram of ACRN's SDC usage scenario is shown in
:numref:`V2-SDC-usage-arch` above. :numref:`V2-SDC-scenario` above.
- The ACRN hypervisor sits right on top of the bootloader for fast booting - The ACRN hypervisor sits right on top of the bootloader for fast booting
capabilities. capabilities.
@ -156,24 +149,24 @@ A block diagram of ACRN's SDC usage scenario is shown in
non-safety-critical domains are able to coexist on one platform. non-safety-critical domains are able to coexist on one platform.
- Rich I/O mediators allows sharing of various I/O devices across VMs, - Rich I/O mediators allows sharing of various I/O devices across VMs,
delivering a comprehensive user experience. delivering a comprehensive user experience.
- Multiple operating systems are supported by one SoC through efficient virtualization. - Multiple operating systems are supported by one SoC through efficient
virtualization.
Industrial Workload Consolidation Industrial Workload Consolidation
================================= =================================
.. figure:: images/ACRN-V2-industrial-scenario.png .. figure:: images/ACRN-V2-industrial-scenario.png
:width: 400px :width: 600px
:align: center :align: center
:name: V2-industrial-scenario :name: V2-industrial-scenario
ACRN Industrial Workload Consolidation scenario ACRN Industrial Workload Consolidation scenario
Supporting Workload consolidation for industrial applications is even Supporting Workload consolidation for industrial applications is even
more challenging. The ACRN hypervisor needs to run both safety-critical more challenging. The ACRN hypervisor needs to run different workloads with no
and non-safety workloads with no interference, increase security interference, increase security functions that safeguard the system, run hard
functions that safeguard the system, run hard real-time sensitive real-time sensitive workloads together with general computing workloads, and
workloads together with general computing workloads, and conduct data conduct data analytics for timely actions and predictive maintenance.
analytics for timely actions and predictive maintenance.
Virtualization is especially important in industrial environments Virtualization is especially important in industrial environments
because of device and application longevity. Virtualization enables because of device and application longevity. Virtualization enables
@ -181,37 +174,34 @@ factories to modernize their control system hardware by using VMs to run
older control systems and operating systems far beyond their intended older control systems and operating systems far beyond their intended
retirement dates. retirement dates.
As shown in :numref:`V2-industry-usage-arch`, the Safety VM has As shown in :numref:`V2-industrial-scenario`, the Service VM can start a number
functional safety applications running inside it to monitor the overall of post-launched User VMs and can provide device sharing capabilities to these.
system health status. This Safety VM is partitioned from other VMs and In total, up to 7 post-launched User VMs can be started:
is pre-launched before the Service VM. Service VM provides devices
sharing capability across user VMs and can launch additional user VMs.
In this usage example, VM2 provides Human Machine Interface (HMI)
capability, and VM3 is optimized to support industrial workload
real-time OS needs, such as VxWorks* or RT-Linux*.
.. figure:: images/ACRN-V2-Industrial-Usage-Architecture-Overview.png - 5 regular User VMs,
:width: 700px - One `Kata Containers <https://katacontainers.io>`_ User VM (see
:align: center :ref:`run-kata-containers` for more details), and
:name: V2-industry-usage-arch - One Real-Time VM (RTVM).
ACRN Industrial Usage Architecture Overview In this example, one post-launched User VM provides Human Machine Interface
(HMI) capability, another provides Artificial Intelligence (AI) capability, some
compute function is run the Kata Container and the RTVM runs the soft
Programmable Logic Controller (PLC) that requires hard real-time
characteristics.
:numref:`V2-industry-usage-arch` shows ACRN's block diagram for an :numref:`V2-industrial-scenario` shows ACRN's block diagram for an
Industrial usage scenario: Industrial usage scenario:
- ACRN boots from the SoC platform, and supports firmware such as the - ACRN boots from the SoC platform, and supports firmware such as the
UEFI BIOS. UEFI BIOS.
- The ACRN hypervisor can create four VMs to run four different OSes: - The ACRN hypervisor can create VMs that run different OSes:
- A safety VM such as Zephyr*, - a Service VM such as Ubuntu*,
- a service VM such as Clear Linux*, - a Human Machine Interface (HMI) application OS such as Windows*,
- a Human Machine Interface (HMI) application OS such as Windows*, and - an Artifical Intelligence (AI) application on Linux*,
- a real-time control OS such as VxWorks or RT-Linux*. - a Kata Container application, and
- a real-time control OS such as Zephyr*, VxWorks* or RT-Linux*.
- The Safety VM (VM0) is launched by ACRN before any other VM. The
functional safety code inside VM0 checks the overall system health
status.
- The Service VM, provides device sharing functionalities, such as - The Service VM, provides device sharing functionalities, such as
disk and network mediation, to other virtual machines. disk and network mediation, to other virtual machines.
It can also run an orchestration agent allowing User VM orchestration It can also run an orchestration agent allowing User VM orchestration
@ -227,8 +217,7 @@ Best Known Configurations
The ACRN Github codebase defines five best known configurations (BKC) The ACRN Github codebase defines five best known configurations (BKC)
targeting SDC and Industry usage scenarios. Developers can start with targeting SDC and Industry usage scenarios. Developers can start with
one of these pre-defined configurations and customize it to their own one of these pre-defined configurations and customize it to their own
application scenario needs. (These configurations assume there is at application scenario needs.
most one Safety VM and it is pre-launched.)
.. list-table:: Scenario-based Best Known Configurations .. list-table:: Scenario-based Best Known Configurations
:header-rows: 1 :header-rows: 1
@ -240,33 +229,26 @@ most one Safety VM and it is pre-launched.)
- VM2 - VM2
- VM3 - VM3
* - Software Defined Cockpit 1 * - Software Defined Cockpit
- SDC - SDC
- Service VM - Service VM
- Post-launched VM (Android) - Post-launched VM
- -
- -
* - Software Defined Cockpit 2 * - Industry Usage Config
- SDC
- Service VM
- Post-launched VM (Android)
- Post-launched VM (Android)
- Post-launched VM (Android)
* - Industry Usage Config 1
- Industry - Industry
- Service VM - Service VM
- Post-launched VM (HMI) - Up to 5 Post-launched VMs
- Post-launched VM (Hard RTVM) - One Kata Containers VM
- Post-launched VM (Soft RTVM) - Post-launched RTVM (Soft or Hard realtime)
* - Industry Usage Config 2 * - Hybrid Usage Config
- Industry - Hybrid
- Pre-launched VM (Safety VM) - Pre-launched VM (Safety VM)
- Service VM - Service VM
- Post-launched VM (HMI) - Post-launched VM
- Post-launched VM (Hard/Soft RTVM) -
* - Logical Partition * - Logical Partition
- Logical Partition - Logical Partition
@ -275,73 +257,61 @@ most one Safety VM and it is pre-launched.)
- -
- -
Here are block diagrams for each of these five scenarios. Here are block diagrams for each of these four scenarios.
SDC scenario with two VMs SDC scenario
========================= ============
In this SDC scenario, an Instrument Cluster (IC) system runs with the In this SDC scenario, an Instrument Cluster (IC) system runs with the
Service VM and an In-Vehicle Infotainment (IVI) system runs in a user Service VM and an In-Vehicle Infotainment (IVI) system runs in a user
VM. VM.
.. figure:: images/SDC-2VM.png .. figure:: images/ACRN-V2-SDC-scenario.png
:width: 600px :width: 600px
:align: center :align: center
:name: SDC-2VM :name: ACRN-SDC
SDC scenario with two VMs SDC scenario with two VMs
SDC scenario with four VMs Industry scenario
========================== =================
In this SDC scenario, an Instrument Cluster (IC) system runs with the
Service VM. An In-Vehicle Infotainment (IVI) is User VM1 and two Rear
Seat Entertainment (RSE) systems run in User VM2 and User VM3.
.. figure:: images/SDC-4VM.png
:width: 600px
:align: center
:name: SDC-4VM
SDC scenario with four VMs
Industry scenario without a safety VM
======================================
In this Industry scenario, the Service VM provides device sharing capability for In this Industry scenario, the Service VM provides device sharing capability for
a Windows-based HMI User VM. The other two post-launched User VMs a Windows-based HMI User VM. One post-launched User VM can run a Kata Container
support either hard or soft Real-time OS applications. application. Another User VM supports either hard or soft Real-time OS
applications. Up to five additional post-launched User VMs support functions
such as Human Machine Interface (HMI), Artificial Intelligence (AI), Computer
Vision, etc.
.. figure:: images/Industry-wo-safetyVM.png .. figure:: images/ACRN-Industry.png
:width: 600px :width: 600px
:align: center :align: center
:name: Industry-wo-safety :name: Industry
Industry scenario without a safety VM Industry scenario
Industry scenario with a safety VM Hybrid scenario
================================== ===============
In this Industry scenario, a Pre-launched VM is included as a Safety VM. In this Hybrid scenario, a pre-launched Safety/RTVM is started by the
The Service VM provides device sharing capability for the HMI User VM. The hypervisor. The Service VM runs a post-launched User VM that runs non-safety or
remaining User VM can support either a hard or soft Real-time OS non-real-time tasks.
application.
.. figure:: images/Industry-w-safetyVM.png .. figure:: images/ACRN-Hybrid.png
:width: 600px :width: 600px
:align: center :align: center
:name: Industry-w-safety :name: ACRN-Hybrid
Industry scenario with a safety VM Hybrid scenario
Logical Partitioning scenario Logical Partition scenario
============================= ==========================
This scenario is a simplified VM configuration for VM logical This scenario is a simplified VM configuration for VM logical
partitioning: one is the Safety VM and the other is a Linux-based User partitioning: one is the Safety VM and the other is a Linux-based User
VM. VM.
.. figure:: images/Logical-partition.png .. figure:: images/ACRN-Logical-Partition.png
:width: 600px :width: 600px
:align: center :align: center
:name: logical-partition :name: logical-partition
@ -481,20 +451,28 @@ ACRN hypervisor is a Type 1 hypervisor, running directly on bare-metal
hardware. It implements a hybrid VMM architecture, using a privileged hardware. It implements a hybrid VMM architecture, using a privileged
service VM, running the Service VM that manages the I/O devices and service VM, running the Service VM that manages the I/O devices and
provides I/O mediation. Multiple User VMs are supported, with each of provides I/O mediation. Multiple User VMs are supported, with each of
them running Linux\* or Android\* OS as the User VM . them running different OSs.
Running systems in separate VMs provides isolation between other VMs and Running systems in separate VMs provides isolation between other VMs and
their applications, reducing potential attack surfaces and minimizing their applications, reducing potential attack surfaces and minimizing
safety interference. However, running the systems in separate VMs may safety interference. However, running the systems in separate VMs may
introduce additional latency for applications. introduce additional latency for applications.
:numref:`ACRN-architecture` shows the ACRN hypervisor architecture, with :numref:`V2-hl-arch` shows the ACRN hypervisor architecture, with
the automotive example IC VM and service VM together. The Service VM all types of Virtual Machines (VMs) represented:
owns most of the devices including the platform devices, and
provides I/O mediation. Some of the PCIe devices may be passed through - Pre-launched User VM (Safety/RTVM)
to the User OSes via the VM configuration. The Service VM runs the IC - Pre-launched Service VM
applications and hypervisor-specific applications together, such as the - Post-launched User VM
ACRN device model, and ACRN VM manager. - Kata Container VM (post-launched)
- Real-Time VM (RTVM)
The Service VM owns most of the devices including the platform devices, and
provides I/O mediation. The notable exceptions are the devices assigned to the
pre-launched User VM. Some of the PCIe devices may be passed through
to the post-launched User OSes via the VM configuration. The Service VM runs
hypervisor-specific applications together, such as the ACRN device model, and
ACRN VM manager.
ACRN hypervisor also runs the ACRN VM manager to collect running ACRN hypervisor also runs the ACRN VM manager to collect running
information of the User OS, and controls the User VM such as starting, information of the User OS, and controls the User VM such as starting,