embedded

Virtualization for Embedded Systems Series: Type-2 Hypervisors Deep Dive

In the previous post in this series, we dove deep into container technology and looked at how to implement some functionality into containers applicable to embedded devices. In this post, we will look at type-2 hypervisors and dive deep into practical ways to use them for embedded systems. This post will be light on content as I am quite busy currently, but wanted to wrap up this series. I will try to circle back and dive deeper into this topic…

Read More

Virtualization for Embedded Systems Series: Containers Deep Dive

In the previous post, I looked at several real-world use cases for containers and hypervisors. This post will be a deep dive into containers and a how-to on using them. Note: all the code, Dockerfiles, etc. are archived in a git repo at GitHub. Container History Origins A little history is needed before we jump into building and deploying containers. Docker, which is likely still the largest container technology provider by a longshot, was originally released in 2013. In just…

Read More

Virtualization for Embedded Systems Series: Applications in the Real World

In the last post, we looked at several different types of virtualization technologies. We wrapped up by narrowing our focus on the types of virtualization down to just two primary categories – hypervisors and containers. In this post I’ll dig in to some real world applications of these types of virtualization, and we’ll look at how they can be used to solve real problems. Containerization Simplified Management One of the low hanging fruits of container virtualization is the ability to…

Read More

Multicore Processor Modes of Operation

Multicore processors were first introduced in the early 2000’s, and were pervasive in common computing platforms by the 2010’s. The industry started with dual core chips, and then quad core, and now we are up to 48 cores! When the hardware industry brought multicore chips to fruition, the software community had to invent new ways to utilize those additional cores. I’d like to use this post to discuss a few of the common multicore software utilization schemes or modes and…

Read More

Virtualization for Embedded Systems Series: Types of Virtualization

Virtualization in the context of computing comes in many flavors. Typically, virtualization is referring to hypervised environments (more on that in a bit), but can also mean containerization or other technologies. This post explores several of these flavors and how they work. If you didn’t catch the intro to this series, you can read a little about the motivation for these posts in the previous post. Types of Virtualization Technology When considering the delineations between different types of virtualization technology,…

Read More

Virtualization for Embedded Systems Series: Introduction

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…

Read More