Investigating the Viability and Potential of eBPF Virtual Machines for Embedded Systems
Romano, Christopher (2024)
Romano, Christopher
2024
All rights reserved. This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2024052415491
https://urn.fi/URN:NBN:fi:amk-2024052415491
Tiivistelmä
Embedded systems are crucial to the functioning of modern society, powering anything from automobiles to coffee machines. Similarly, virtual machines power the world’s cloud infrastructure, enabling flexibility, security, reliability, and efficiency. The resource overhead required by virtual machines has so far prevented their implementation on embedded devices. eBPF is a lightweight virtual machine technology used for the dynamic loading of programs into the Linux kernel at runtime. This project investigates the feasibility of integrating an eBPF virtual machine into embedded systems to enable more flexible device behavior modification and allowing for the loading of programs by end-users, all without the need to recompile device firmware. The architecture and operational feasibility of the eBPF virtual machine were explored in this project. The software implementation of the virtual machine works as expected, and a runtime library provides external functions callable by the virtual machine. Benchmarks indicate that while eBPF virtual machines impose some overhead, this could be managed. This project concludes that there are no hard barriers to the implementation of eBPF virtual machines on embedded devices, and that their potential should be explored further. Recommendations regarding future work are given; it is suggested that the runtime library be expanded, and that just-in-time compilation be implemented. The latter is especially crucial to exploring the viability of eBPF virtual machines for applications with strict timing deadlines.