Original title:
Rozšíření kontajnerizovaných prostředí pro nenativní architektury
Translated title:
Extending containerized environments to non-native architectures
Authors:
Kříčka, Dalibor ; Kozák, David (referee) ; Malík, Viktor (advisor) Document type: Master’s theses
Year:
2026
Language:
eng Publisher:
Vysoké učení technické v Brně. Fakulta informačních technologií Abstract:
[eng][cze]
Tato diplomová práce představuje návrh a implementaci rozšíření pro open-source kontejnerizační nástroj s názvem Containers Toolbx, jehož vývoj zaštiťuje společnost Red Hat, Inc. Účelem tohoto rozšíření je zavedení podpory pro běh kontejnerů založených na architekturách procesoru odlišných od architektury hostitelského systému. Implementace je založena na funkci linuxového jádra pro zachycení spouštění nenativních binárních souborů, nazývané Miscellaneous Binary Format (binfmt_misc), a na emulátoru Quick Emulator (QEMU) v uživatelském režimu (user-mode), jenž slouží jako interpret binárních souborů napříč architekturami. Navržené řešení rozšiřuje příkazy pro vytváření a spouštění kontejnerů nástrojem Toolbx o parametr --arch. Tento přístup zachovává jednoduchost a intuitivní rozhraní, jež jsou pro Toolbx klíčové. Řešení bylo ověřeno pomocí rozšířené sady testů, která pokryla scénáře na úrovni jednotkových i systémových testů a rovněž byla vyhodnocena výkonnostní režie, kterou emulace přirozeně přináší. Hlavním přínosem je rozšíření open-source projektu o funkci požadovanou uživateli z komunity Toolbx. To umožní vývojářům sestavovat, testovat a ladit software pro různé cílové architektury bez nutnosti dedikovaného hardwaru, a to přímo pomocí jejich stávajícího pracovního postupu v nástroji Toolbx.
This thesis presents the design and implementation of an extension for the open-source containerization tool called Containers Toolbx, maintained by Red Hat, Inc. The purpose of this extension is to introduce support for running containers based on CPU architectures different from the architecture of the host system. The implementation relies on the Linux kernel feature for intercepting non-native binary execution, called Miscellaneous Binary Format (binfmt_misc), and on a user-mode Quick Emulator (QEMU) as a cross-architecture binary interpreter. The proposed solution extends the Toolbx CLI's container creation and running commands with the --arch flag. This approach preserves the simplicity and intuitive interface that are key to Toolbx. The solution was validated through an extended test suite that covered both unit and system-level scenarios, and the performance overhead naturally introduced by emulation was evaluated. The primary contribution is extending the open-source project with a feature requested by users in the Toolbx community. This enables developers to build, test, and debug software for various target architectures without dedicated hardware, directly from their existing Toolbx workflow.
Keywords:
binfmt_misc; Emulace v uživatelském režimu; Kontejner pro nenativní architektury; Kontejnerizace; Miscellaneous Binary Format; QEMU v uživatelském režimu; Toolbx; binfmt_misc; Containerization; Cross-architecture container; Miscellaneous Binary Format; Toolbx; User-mode emulation; User-mode QEMU
Institution: Brno University of Technology
(web)
Document availability information: Fulltext is available in the Brno University of Technology Digital Library. Original record: http://hdl.handle.net/11012/260429