01-09-2014, 03:13 PM
EMBEDDED HYPERVISOR
What is a Hypervisor ?
A hypervisor is a piece of computer software, firmware or hardware that creates and runs virtual machines
An Embedded hypervisor
Embedded hypervisors are a thin layer of code that partitions hardware into virtual environments (referred to as “virtual boards”)
These virtual boards run in separate address spaces
A type 1 hypervisor that supports the requirements of embedded systems development
Designed into the embedded device from the outset
When embedded systems are considered, the hypervisor requirements include
Processor support
Real-time capability
Isolation
Low footprint
Support for multiple VMs
Support for secure encapsulation of subsystem components
Support for multiple operating systems on a single processor
Used to run a real time operating systems for low-level real-time functionality
At the same time runs a general purpose OS, like Linux or Windows, to support user applications
Objective is to upgrade an existing design without the added complexity to a processor, or to minimize the bill of materials. (BoM).
System security
Embedded hypervisor is able to provide secure encapsulation for any subsystem
Example: an encryption subsystem needs to be strongly shielded from attack to prevent leaking the information the encryption is supposed to protect.
Embedded hypervisor can encapsulate a subsystem in a VM, then enforce the required security policies for communication to and from that subsystem
System reliability
Encapsulation of a subsystem components into VM ensures that failure of any subsystem cannot impact other subsystems.
Encapsulation avoids faults from propagating from a subsystem in one VM to a subsystem in another VM
Allow a subsystem to be automatically shut down and restarted on fault detection
Particularly important for embedded device drivers
Also allows the encapsulation of operating systems that were not necessarily built to the reliability standards demanded of the new system design
IP protection
IP may need protection from theft or misuse when an embedded platform is being shipped for further development work
Embedded hypervisor makes it possible to restrict access by other system software components to a specific part of the system containing IP that needs to be protected
Features of embedded hypervisors include
Reduced exposure to attack by malicious hackers.
Required minimal number of drivers.
Storage of all virtual machine images on a single storage area network.
Ability to browse the internet and use emails independently of the operating system
Use of high-level operating system (OS) interfaces for writing and editing application programs.
High speed, low latency and minimal demand on system resources.
Seperation Kernel model
Very thin software layer with code size between 5K to 10K lines
Was first introduced as a means to achieve Multilevel Security policy employed in Military and Government systems
Main idea was to enforce an information security policy by classifying the security levels in a system as unclassified, confidential, top secret, etc
Information access rights to individuals and groups only within these security levels
No individual or group can access information classified above their respective clearance level.
Hybrid Hypervisor model
Takes the best out of both hypervisor model and separation kernel model
If virtual machines have to communicate with each other, then the easiest way is to share memory allocated to these virtual machines and some of the hypervisors
Industrial automation and control, medical devices, military Aeronautics and government are some embedded application segments that may have such use cases
The main challenges for a hypervisor
To show a virtual environment in a safe, transparent and efficient way.
Safe way: each software running inside a virtual machine should not be able to get out of its isolated environment affecting other virtual machines or the hypervisor
Transparency : required to give the software the illusion of having full control of the underlying platform
Efficiency : mandatory in order to get performances close to that of the real machine
Conclusion
Gaining wide acceptance for safety and mission critical embedded systems
New generation of hypervisors have a tight focus on the memory space and processor cycles
Allows the designer the maximum flexibility in the code development
Play an important role to enable secure and safe partitioning of resources.