The concept of virtualization and virtualized hardware has long been a part of computing. Even dating back to the early days of computing[1], virtualizing components of the system proved beneficial.

In today’s technology driven world, virtualization plays a giant role in our day-to-day life. Services like Amazon AWS and DigitalOcean are ubiquitous as service providers to all sorts of companies. These provide the backbone to our daily browsing and Internet usage habits. Entire ecosystems have been built around this concept as well. Take Kubernetes for example[2]. Kubernetes is a suite of software designed from the ground up to support deploying, managing, balancing, monitoring and more for distributed containers across dissimilar architectures and platforms. Similarly, VMWare’s vCenter Orchestrator[3] performs similar functions for fully hypervised guest OSes or Virtual Machine (VMs). Typically we use virtualization to make the best use of hardware resources. This has been particularly beneficial in the realm of web services and cloud computing since the advent of powerful multicore processors backed by massive swathes of RAM. Now that multicore processors are no longer only in the data center, and they have become sufficiently small and efficient enough to be used in embedded systems, is virtualization the next step for embedded devices? Some may say we’re already there (looking at you Android Runtime[4]). I say that virtualization is only going to become more prevalent in embedded systems as we consolidate more functionality into smaller footprints.

I’m starting this series on Virtualization for Embedded Systems to share my knowledge and explore the state of the art for embedded device virtualization. I’ll be taking a look at how various virtualization mechanisms work, which architectures work well for virtualization, software platforms that make virtualization easy and attainable, and the benefits of going virtualized.

I hope to cover these aspects in three or so articles, so stay tuned!

References

[1] Wikipedia contributors. (2019, September 23). CP/CMS. In Wikipedia, The Free Encyclopedia. Retrieved 16:34, October 31, 2019, from https://en.wikipedia.org/w/index.php?title=CP/CMS&oldid=917270626

[2] Kubernetes.io (2019, October 31). Homepage. Retrieved 18:55, October 31, 2019, from https://kubernetes.io/

[3] blog.vmware.com (2014, June 27). VMware vSphere Blog. Retrieved 19:02, October 31, 2019, from https://blogs.vmware.com/vsphere/2014/06/getting-started-vmware-vcenter-orchestrator-building-many-virtual-machines.html

[4] Wikipedia contributors. (2019, October 2). Android Runtime. In Wikipedia, The Free Encyclopedia. Retrieved 19:59, October 31, 2019, from https://en.wikipedia.org/w/index.php?title=Android_Runtime&oldid=919289272