For any other information or inquiries please contact us.
Virtualization is the ability to run multiple Execution Environments on a single hardware platform. An execution environment can be an Operating system (OS) and its applications, a Real-time operating system (RTOS) or a stand-alone application. In the virtualization field, an Execution Environment is called a Virtual Machine or "VM".
Bill of Material is greatly reduced through the use of a single hardware component as virtualization enables the elimination of redundant devices.
Development and validation costs are also greatly reduced, because it allows the re-use of validated existing software and hardware IP.
Paravirtualization allows multiple OSs to run simultaneously on a single CPU. To be supported by the virtualization system, an OS must be adapated slightly.
Essentially what had been privileged or kernel mode calls to hardware in the native code, in a paravirtualized OS become API calls to the hypervisor.
A hypervisor, or Virtual Machine Monitor (VMM) is a key piece of virtualization software, that allows designers to run multiple Operating Systems on a single physical CPU. The VMM guarantees complete isolation between hosted Virtual Machines (VMs).
TRANGO creates multiple virtual CPUs, or Virtual Processor Units (VPUs) from a single underlying hardware element. Each VPU offers an extremely processor-like interface to hosted software.
TRANGO has been designed from the ground up with security in mind. TRANGO's security relies on existing and proven Hardware mechanisms leveraging these mechanisms to create a highly secure and scalable platform.
TRANGO's hypervisor is the only software allowed to operate in CPU kernel mode. This way access to privileged instructions is under hypervisor control. TRANGO creates what we refer to as "virtual kernel mode" for paravirtualized software such as OS and RTOS which still have multiple priority levels that can be used to manage their applications.
The hypervisor controls the partitioning of hardware resources such as memory and peripherals. Memory partitioning is done through hypervisor control of the MMU. TRANGO dynamically ensures that memory or peripherals are accessed by OS, RTOS or applications that have been explicitly allowed access. This security policy guarantees that OS, RTOS and applications have their own address space or secure shared memory/peripheral, and that cross contamination between domains is controlled.
TRANGO can run multiple virtual machines on a single CPU. As a result, each application can be running in its own isolated virtual machine independent of other applications, which guarantees its secure execution.
TRANGO's hypervisor is small, and written in assembly language. In a secure processing environment it is important to keep the code size, and hence the "attack surface" as small as possible. TRANGO's hypervisor footprint of 20KB is ideal. As an assembly coded product it is also much more difficult for hackers to decipher than C-coded products.
TRANGO's hypervisor is a binary kernel that provides a virtual machine (VM) interface to each execution environment. As a consequence, every VM can host applications that hold a different license, with our binary kernal as the dividing line between both different code bases, and different license terms.
In this way it is possible to run a proprietary OS in parallel with Linux with no GPL entanglements. The TRANGO hypervisor's license isolation allows maximum use of GPL code with a minimum of risk.
In embedded markets, real-time capabilities are key. This fact makes paravirtualization the most relevant approach as this approach reduces system overhead considerably. However, even with paravirtualization there is considerable work to be done in keeping the footprint as small as possible, and system latencies as low as possible. Our focus on real-time deterministic performance has led us to create the thinest, lightest hypervisor in the market, coded in assembly language for the smallest footprint, and providing run-time overhead of only 2%.