Building a hypervisor, 2: Booting Linux
In this post, we'll make our hypervisor boot the Linux kernel into a basic userspace consisting of a dummy `init`, covering topics like long mode, paging, the Linux boot protocol, and various KVM APIs
Building a hypervisor, 2: Booting Linux In this post, we'll make our hypervisor boot the Linux kernel into a basic userspace consisting of a dummy init , covering topics like long mode, paging, the Linux boot protocol, and various KVM APIs This post will touch on a lot of topics briefly, but won't go super in-depth into all of them, mainly focusing on the blockers I faced personally as a novice systems programmer Linux Boot Protocol The Linux Boot Protocol describes setting up the environment for booting the kernel, involving loading the kernel image, passing kernel command line arguments & ot
related reading
- Intro - Putting the "You" in CPUcpu.land
- User Mode Linux HOWTO - The Linux Kernel documentationkernel.org
- Brave New Trusted Boot World0pointer.net
- Writing an OS in Rustos.phil-opp.com
- The little book about OS developmentlittleosbook.github.io
- How we got microVMs booting in under a seconddepot.dev
- The "Basics" | Putting the "You" in CPUcpu.land
- FirstKernelPatch - Linux Kernel Newbieskernelnewbies.org
- The Linux Kernel Module Programming Guidesysprog21.github.io
- Linux in a Pixel Shader - A RISC-V Emulator for VRChatblog.pimaker.at
- Initial ramdisken.wikipedia.org
- Kernel modules - The Linux Kernel documentationlinux-kernel-labs.github.io