Michael Howard’s research while affiliated with Portland State University and other places

What is this page?


This page lists works of an author who doesn't have a ResearchGate profile or hasn't added the works to their profile yet. It is automatically generated from public (personal) data to further our legitimate goal of comprehensive and accurate scientific recordkeeping. If you are this author and want this page removed, please let us know.

Publications (5)


ESP32: QEMU Emulation Within a Docker Container
  • Conference Paper

November 2023

·

67 Reads

·

1 Citation

Michael Howard

·

R. Bruce Irvin

The ESP32 is a popular microcontroller from Espressif that can be used in many embedded applications. Robotic joints, smart car chargers, beer vat agitators and automated bread mixers are a few examples where this system-on-a-chip excels. It is cheap to buy and has a number of vendors providing low-cost development board kits that come with the microcontroller and many external connection points with peripherals. There is a large software ecosystem for the ESP32. Espressif maintains an SDK containing many C-language sample projects providing a starting point for a huge variety of software services and I/O needs. Third party projects provide additional sample code as well as support for other programming languages. For example, MicroPython is a mature project with sample code and officially supported by Espressif. The SDK provides tools to not just build an application but also merge a flash image, flash to the microcontroller and monitor the output. Is it possible to build the ESP32 load and emulate on another host OS? This paper qualitatively explores the QEMU emulator and its ability to emulate the ethernet interface for the guest OS. Additionally, we look into the concept of containerizing the entire emulator and ESP32 load package such that a microcontroller flash image can successfully run with a one-step deployment of a Docker container.


Fig. 2: The ESP32 block diagram showing the dual Xtensa cores with a wide variety of I/O controllers built in to the chip.
Fig. 3: The ESP32 flash image layout including bootloader, partition table and application.
Fig. 6: Screenshot of host sending a "/hello" request with the corresponding "Hello World!" response. Stdout of the QEMU process is also displayed showing the internal handling of the message.
Fig. 7: Screenshot of host sending a "/hello" request with the corresponding "Hello World!" response. Stdout of the Docker container is also displayed showing the QEMU internal handling of the message.
Fig. 8: The virtual network configuration created by the user mode network stack options.

+1

ESP32: QEMU Emulation within a Docker Container
  • Preprint
  • File available

March 2023

·

592 Reads

The ESP32 is a popular microcontroller from Espressif that can be used in many embedded applications. Robotic joints, smart car chargers, beer vat agitators and automated bread mixers are a few examples where this system-on-a-chip excels. It is cheap to buy and has a number of vendors providing low-cost development board kits that come with the microcontroller and many external connection points with peripherals. There is a large software ecosystem for the ESP32. Espressif maintains an SDK containing many C-language sample projects providing a starting point for a huge variety of software services and I/O needs. Third party projects provide additional sample code as well as support for other programming languages. For example, MicroPython is a mature project with sample code and officially supported by Espressif. The SDK provides tools to not just build an application but also merge a flash image, flash to the microcontroller and monitor the output. Is it possible to build the ESP32 load and emulate on another host OS? This paper explores the QEMU emulator and its ability to emulate the ethernet interface for the guest OS. Additionally, we look into the concept of containerizing the entire emulator and ESP32 load package such that a microcontroller flash image can successfully run with a one-step deployment of a Docker container.

Download

Cloud Computing -- Everything As A Service

May 2022

·

48 Reads

Compute infrastructure hosted by a cloud provider allows an application to scale without limit. The application developer no longer needs to worry about the up-front investment in a server farm provisioned for a worst-case load scenario. However, managing cloud deployments requires a sophisticated framework that can autoscale the infrastructure and guarantee the up-time of running container images. This paper surveys existing research addressing the management and orchestration of cloud deployments as well as the modelling framework to abstract away the low-level details of the host infrastructure. We investigate blockchain distributed ledgers, quantum computing and Internet of Things application stacks to show how they can utilize cloud deployments.


Fig. 1: Source YAML to feed the template.
Fig. 2: Resulting YAML.
Fig. 3: Files in a chart bundle.
Fig. 4: Directory structure of a repository.
Helm -- What It Can Do and Where Is It Going?

May 2022

·

138 Reads

Deploying an application into a Kubernetes cluster requires sending a manifest file to the cluster's control plane interface. This action is typically performed through a kubectl client which is configured and authorized to communicate with the control plane's Uniform Resource Locator (URL). An application typically requires many Kubernetes resources such as pods, deployments, secrets, service and volumes. Configuring each of these through manifest files requires complex scripting, especially when there are numerous resources needed. A solution to the complex management tasks is Helm. Helm provides both a tool and underlying framework that packages the necessary manifest files. These packages are deployed through a single step install command which abstracts all the underlying control plane interaction from the user. Similar to application installs through Debian's package manager dpkg, packages are shared through local and remote repositories and allow the user to easily install, update, delete or handle concurrent versions.


Fig. 1: High-level workflow for Terraform covering write, plan and apply stages.
Fig. 2: Terraform actions go through a provider module to translate into API calls specific to that provider.
Fig. 4: CDK and other pathways to define configuration, input to Terraform and provision infrastructure through multiple providers. Configuration input may be through CDK, CRDS, HCL or JSON.
Fig. 5: Structural Elements of a TOSCA Service Template and its Relations.
Terraform -- Automating Infrastructure as a Service

May 2022

·

3,962 Reads

·

2 Citations

Developing a software service requires a strict software development life cycle and process. This process demands controlling all application code through source control management as well as a rigorous versioning and branching strategy. However, the platform and infrastructure also benefit from this rigor. Software services must be deployed to a target run time environment and provisioning that environment through manual user actions is tedious and error-prone. Provisioning manually also becomes prohibitive as the number of resources grow and spread globally over multiple regions. The answer is to apply the same rigor to provisioning the infrastructure as applied to developing the application software. Terraform provides a platform allowing infrastructure resources to be defined in code. This code not only allows the automation of the infrastructure provisioning but also allows for a strict development and review life cycle, same as the application software.

Citations (1)


... QEMU is an open-source machine emulator [28] that serves to emulate hardware that we can run our kernel on (see Fig. 2). It provides options for many different types of architectures which means we can emulate running our kernel on various devices. ...

Reference:

Data-Oriented Operating System for Big Data and Cloud
ESP32: QEMU Emulation Within a Docker Container
  • Citing Conference Paper
  • November 2023