Skip to content

5.0.1: Standards: vDevice Architecture Overview

Ulrond edited this page Nov 21, 2024 · 2 revisions

Architecture Overview

The vDevice enables flexible and efficient interaction with diverse hardware platforms. It acts as an abstraction layer, decoupling the software from the underlying hardware specifics. This approach offers several key advantages:

  • Hardware Agnostic Software: By interacting with a standardized HAL API, the software remains independent of the specific hardware implementation. This allows us to develop and deploy software across different platforms without modification.
  • Modular and Adaptable: The use of vComponents provides a high degree of modularity. Each vComponent represents a specific hardware function, allowing for easy customization and adaptation to new or evolving hardware.
  • Dynamic Platform Mimicking: The vDevice can dynamically configure the vComponents at boot time to match the target platform's characteristics. This enables seamless switching between different platform configurations without code changes.
  • Enhanced Testability: The vDevice facilitates runtime testing control. Testing suites can interact with the vDevice (or individual vComponents) through a REST API to modify system behaviour and simulate various scenarios.

The diagram illustrates the key components and interactions within the vDevice architecture:

block-beta
    block: modules
        columns 2
        vhal("Vendor Hal Interface(API)")
        vsi("Vendor System Interface - (VSI)")
        vc("vComponents")
        sl("vSystem Libraries")
        osl("Open Source Libraries & utils "):2
        ub("Ubuntu+Binder"):2
    end
  style vhal fill:#87CEFA,stroke:#1E90FF,stroke-width:4px;
    style vsi fill:#87CEFA,stroke:#1E90FF,stroke-width:4px;
    style sl fill:#FFA07A,stroke:#FA8072,stroke-width:4px;
    style ub fill:#FFA07A,stroke:#FA8072,stroke-width:4px;
    style vc fill:#87CEFA,stroke:#1E90FF,stroke-width:4px;
    style osl fill:#FFA07A,stroke:#FA8072,stroke-width:4px;
Loading
  • Vendor HAL Interface (API): This standardized interface defines how the software interacts with the underlying hardware.
  • Virtualized Components (vComponents): These modular components represent various hardware functions within the HAL implementation.
  • Vendor System Interface (VSI): A collection of vendor-provided libraries and tools used by the system (e.g., OpenGL, Bluetooth drivers).
  • vSystem Libraries: These libraries organize and package the VSI components into functional groups for easier use.
  • Open Source Libraries & utils: Common open-source libraries and utilities used within the system.
  • Ubuntu+Binder: The underlying operating system and inter-process communication mechanism.
Clone this wiki locally