Problem statement
Once a kernel is built, a developer/janitor may want to boot the kernel for various reasons, such as performing simple boot test or running tests and workloads from user space or simply playing around in a shell. However, an easy to use and a descriptive tool to perform those tasks doesn't exist to our knowledge.
We talked to kernel developers and were told to have a look at the following resources:
- tools/testing/ktest/ktest.pl
- http://ltsi.linuxfoundation.org/ltsi-test-project
- http://fuegotest.org/wiki/FrontPage
- https://elinux.org/Testing
- https://en.wikipedia.org/wiki/User-mode_Linux
- https://media.ccc.de/v/1416-rapido-quick-kernel-testing-from-source
- https://media.ccc.de/v/1416-rapido-quick-kernel-testing-from-source
- https://gitlab.com/mcgrof/kvm-boot
The approach
We plan to address this issue in the upcoming Hackweek. Our idea is to leverage LinuxKit as a driver to boot a given kernel image in different environments (qemu, Hyper-V, VMware and public clouds). As linuxkit is container-based, it is trivial to boot the kernel with various rootfs-images of all kinds of distributions. Note that it's easy to create custom rootfs images.
The tool we seek to implement should wrap everything up into something useful for developers and CI systems to use from the command line as well as from configuration files. The benefits of using a container-based infrastructure include:
Reproducibility: We bundle kernel images with the desired rootfs together and store them for a given amount of time. Re-running and re-creating those becomes trivial and easy.
Declarative approach: All steps to create the desired image are baked into configuration files. The benefits are again reproducibility and documentation.
Flexibility: In theory, we can bundle any kernel image with any rootfs and add as many files, binaries and directories on top as we please. Supporting different kinds of environments, including public clouds, makes the tool attractive for a broader audience.
Looking for hackers with the skills:
This project is part of:
Hack Week 16
Activity
Comments
Similar Projects
Testing and adding GNU/Linux distributions on Uyuni by juliogonzalezgil
Join the Gitter channel! [https://gitter.im/uy...
Linux Security and Practice by r1chard-lyu
Description
This project focuses on discove...
Explore simple and distro indipendent declarative Linux starting on Tumbleweed or Arch Linux by janvhs
Description
Inspired by [mkosi](https://g...
Contributing to Linux Kernel security by pperego
Description
A couple of weeks ago, I foun...
toptop - a top clone written in Go by dshah
Description
toptop
is a clone of Linux's ...
Kill DMA and DMA32 memory zones by ptesarik
Description
Provide a better allocator fo...
Improve UML page fault handler by ptesarik
Description
Improve UML handling of segment...
Hacking on sched_ext by flonnegren
Description
Sched_ext upstream has some i...
Create a DRM driver for VGA video cards by tdz
Yes, those [VGA video cards](https://en.wikiped...
FizzBuzz OS by mssola
Project Description
FizzBuzz OS (or just ...
Hack on isotest-ng - a rust port of isotovideo (os-autoinst aka testrunner of openQA) by szarate
Description
Some time ago, I managed to c...
Make more sense of openQA test results using AI by livdywan
Description
AI has the potential to help wi...
Yearly Quality Engineering Ask me Anything - AMA for not-engineering by szarate
Goal
Get a closer look at how developers wo...
Automated Test Report reviewer by oscar-barrios
Description
In SUMA/Uyuni team we spend a...
Testing and adding GNU/Linux distributions on Uyuni by juliogonzalezgil
Join the Gitter channel! [https://gitter.im/uy...
Technical talks at universities by agamez
Description
This project aims to empower ...
Enable the containerized Uyuni server to run on different host OS by j_renner
Description
The Uyuni server is provided ...
Improve Development Environment on Uyuni by mbussolotto
Description
Currently create a dev environm...
ADS-B receiver with MicroOS by epaolantonio
I would like to put one of my spare Raspberry P...
ClusterOps - Easily install and manage your personal kubernetes cluster by andreabenini
Description
ClusterOps is a Kubernetes ...