Featured
Writing your first compiler
Posted on:January 18, 2026 at 01:30 PMBuild your first compiler with minimal, high-level, modern code. With only a few files of Go and C code, we can set up a workflow that dynamically fetches everything needed, including the LLVM library itself, and builds a portable compiler. This is a modern stack, it's reproducible, and you do not need to read dozens of pages to get started.
Writing an operating system kernel from scratch
Posted on:September 13, 2025 at 09:30 AMExploring a minimal implementation of a time-sharing kernel on RISC-V, implemented in Zig, on top of OpenSBI.
Making my first embedded Linux system
Posted on:June 15, 2024 at 11:00 AMEnd-to-end documentation of a journey from no PCB experience to fabricating my own Linux-ready system that can boot the latest mainline kernel. This article is the recommended reading for someone building their first embedded Linux board. F1C100s SoC is used for this sample board.
Making USB devices - end to end guide to your first gadget
Posted on:June 1, 2024 at 09:00 AMIntroduction to implementing USB devices. Minimal overview of hardware and software with an example with STM32 microcontroller. Also contains an index to very detailed guides for more information.
Recent Posts
Writing your first compiler
Posted on:January 18, 2026 at 01:30 PMBuild your first compiler with minimal, high-level, modern code. With only a few files of Go and C code, we can set up a workflow that dynamically fetches everything needed, including the LLVM library itself, and builds a portable compiler. This is a modern stack, it's reproducible, and you do not need to read dozens of pages to get started.
How to use Linux vsock for fast VM communication
Posted on:November 27, 2025 at 08:30 AMDiscover how to bypass the network stack for Host-to-VM communication using Linux Virtual Sockets (AF_VSOCK). This article details how to use these sockets to build a high-performance gRPC service in C++ that communicates directly over the hypervisor bus, avoiding TCP/IP overhead entirely.
How to reverse engineer USB HID on Linux
Posted on:November 8, 2025 at 07:30 AMDiscover how Linux exposes raw USB device data, even without a driver. This article details how to use /dev/hidraw and the HID report descriptor to reverse-engineer and read real-time data from a UPS.
How KVM and QEMU run VMs in Linux
Posted on:November 2, 2025 at 08:30 AMLearn the distinct roles of QEMU and KVM in Linux virtualization. This article explains how they complement each other to run virtual machines at near-native speed.