Screenshot of the `paging-calculator` CLI utility

CLI Utility to Calculate Indices for Page Tables

I just want to drop a short notice that I created a small CLI utility that I think is helpful. paging-calculator helps you to calculate the indices for a given virtual address that are used for the physical address lookup at different page table levels. Paging is a mechanism that operating systems use for memory management. Check it out on crates.io or GitHub. You can install it with cargo install paging-calculator. It works Read more…

Configure acpid From BusyBox in a Custom initrd

I have a setup with a Linux Kernel and a custom initrd, hence, no full Linux distribution. The initrd is meant to be as minimal as it can be. As a consequence, even basic things such as power-off on power-button pressed must be configured manually. There is no init system available – instead, I have to provide the init system. The initrd contains utilities from busybox. In this blog post, I show you Read more…

acpid - Terminal Screenshot
Code Snippet: Part of the QEMU Debugcon Driver written in Assembly

The Probably Simplest x86 Driver Written in Assembly – Printing to QEMU’s debugcon-Device

This is an educational resource I wish I had when I started digging into low-level and operating systems during my early time of my studies at the university. However, dear past me, I got your back! Do you want to see a minimal way to communicate with (virtual) hardware and all of that written in pure assembly? Here you go. But at first, a few background information. How do we communicate with hardware? Read more…