You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
./build builds a Linux Kernel bzImage (inside a build container, it's just easier for dependencies)
and userland demo images such as: (You can use any Docker Container image as User Land, see image2initrd,
as long as it has an /init).
hello: a minimal "hello, world" /init static binary runnable in a FROM scratch demo container
busybox-init: a busybox-based container with bash as init and working networking
./run-qemu busybox-init starts this Kernel in a virtual machine
using the busybox container image plus our own init
as initrd. You can quit it using poweroff -f. Also see networking.
./run-qemu-syslinux hello | busybox-init builds a disk image with SYSLINUS bootloader, and starts virtual machine.
(Whereas run-qemu uses qemu* -kernel -initrd.)
The /tmp/bzImage-busybox-init.img disk image can be written to a USB key (e.g. using dd, or, easier, GNOME Disks), and will boot on bare metal.
./run-dev-container will run an interactive dev container to explore [tux@kernel-dev ~].
Its root password is empty, so you can e.g. sudo dnf install -y .., but it's (intentionally) ephemeral - script it! ;)
./test.tcl automatically tests everything that's described above; run it after making any changes (and extend it when adding new features).
docs/ has more background and details; including a Roadmap and TODOs.
Architecture (future, TBD) further describes what's what in this repo.