Linux as a universal boot loader for new operating systems


Author / Producer

Date

2022-05

Publication Type

Master Thesis

ETH Bibliography

yes

Citations

Altmetric

Data

Abstract

Booting a non-Linux operating system on ARM-based systems is difficult. The booting infrastructure developed targeting solely Linux, Linux in turn evolved to be bootable on a wide range of such systems. As a result, it is simple to boot Linux, but difficult to boot a non-Linux OS on an ARM-based system. In this thesis, we use Linux as a boot loader to boot a target, non-Linux kernel. The idea is to leave the boot and initialization process to Linux, then take over the initialized system. We focus on making booting simpler for new research kernels in development. To make the development of a new kernel simpler, we let Linux continue its execution after boot in order to support the new kernel. In this thesis, we show the feasibility of such a boot loader and describe a concrete implementation. This boot loader implementation is able to boot a simple kernel. The boot process never turns a CPU off, thus leaving it in an initialized state. A virtual address space with an identity map is created for the booted kernel. The boot environment can be modified to suit specific use cases. We show that it is possible to use virtio to let the booted kernel use a device through Linux, by letting it use a virtio console in that way. The device type specific implementation of virtio is decoupled from the specific physical device, so by implementing it once, all physical devices of that type can be used. The boot loader itself profits from the hardware and software support of Linux as well, enabling it to use devices, file systems and networking out of the box.

Publication status

published

External links

Editor

Contributors

Examiner: Schwyn, Daniel
Examiner : Roscoe, Timothy

Book title

Journal / series

Volume

Pages / Article No.

Publisher

ETH Zurich

Event

Edition / version

Methods

Software

Geographic location

Date collected

Date created

Subject

Organisational unit

03757 - Roscoe, Timothy / Roscoe, Timothy check_circle

Notes

Funding

Related publications and datasets