Embedded Computing Design October 2011 : Page 16Software | Embedded Linux, tools These types of virtualization offer differ-ent performance characteristics, require different setup and maintenance overhead, introduce unique levels of complexity into the runtime environment, and address different problems. While the industry is currently focused on pushing fully virtualized hypervisors as the one-size-fits-all solution to mul-ticore optimization, the reality is that embedded developers need a range of options that can be tailored to spe-cific application needs. Developers will require some combination of one or more of these virtualization technologies to deliver products that fit within hardware constraints and meet design perfor-mance characteristics. In short, the trick is to match the application with the right OS services to meet the overall system requirements, which can include perfor-mance, reliability, and security. MontaVista provides three methods of virtualization based on nonproprietary, open-source Linux technology and supported across multiple processor architectures. Because it is a single run-time, there is one compiler and one set of tools that can be used for any use case or combination of use cases. Figure 1 shows an overall picture of this approach. These three methods are: ❯ KVM Hypervisor (full virtualization) ❯ Linux Containers (OS resource virtualization) ❯ MontaVista Bare Metal Engine (OS resource virtualization and SoC hardware segmentation) [Figure 1 | One compiler and one set of tools can be used for any use case or combination of use cases with MontaVista’s three methods of virtualization.] Microserver use case The idea behind microservers is to utilize smaller, more energy-efficient proces-sors to lower the physical and energy consumption footprint of a class of Web-centric IT applications. For certain workloads, several low-power processors can be more efficient than fewer, more powerful processors. Cavium Octeon processors and those from other semi-conductor suppliers are well-suited to meet the density and power efficiency requirements underlying the microserver Application Application Hypervisor -KVM OS 1 OS 2 Hardware KVM – Hypervisor Full/Para-Virtualization Software Overhead C1 C2 C3 C4 Linux with Containers Hardware Linux Containers (OS Resource Virtualization) Linux with Containers SOC 0, 1 SOC2 SOC3 Bare Metal Engine Hardware Segmentation Performance Figure 1 | One compiler and one set of tools can be used for any use case or combination of use cases with MontaVista’s three methods of virtualization. concept on the basis of the power efficiency of the cores themselves. These SoCs also include dedicated hardware to handle the front-end security and encryption/decryption processing that Web-based applications require. From a software perspective, MontaVista Linux Containers and Bare Metal Engine technology help complete the picture. Containers are used to provide OS-level virtualization, allowing very efficient vir-tualization of the workload requirements. For example, Containers can be used to host thousands of independent websites, each securely isolated from each other. Containers allow the precise control of runtime resources allocated to each con-tainer, so each website can be limited to the performance levels the customer has purchased. Or, more importantly, a rogue website can be stopped from over consuming resources using the same mechanisms, thus thwarting a denial-of-service type of attack. Bare Metal Engine provides the runtime environment for the security and encryp-tion/decryption operations each of these hosted websites requires. For example, a 32-core SoC can utilize most of the cores for application processing with a few dedicated to packet processing, all controlled by one Linux instance. 16 | October 2011 Embedded Computing Design Linux offers a simple solution It is a widely held misconception that a combination of Linux and either a Real-Time Operating System (RTOS) or simple runtime environment must be uti-lized to fully realize the high performance available with multicore processors. Fueling this misconception is the thought that Linux itself is incapable of meeting the requirements because it is too big, too slow, and not real-time. This fallacy also drives the requirement that hyper-visors and/or virtualization must mediate and isolate the different runtime environ-ments and facilitate intercommunication among them. Often it is the RTOS vendors themselves who perpetuate this erroneous belief. In the end, these misconceptions about Linux drive added complexity and costs into the development process. Complexity increases due to multiple runtime and development environments (one each for Linux, the RTOS, and possibly the hypervisor). Costs increase because of royalties for the proprietary RTOS and hypervisor, not to mention the added costs created by the development complexity itself, with more developers needed for a longer period of time. The approach to use Linux everywhere and fix it where it might not meet some www.embedded-computing.com System Publication List |


