Topic
Everything filed under Systems Programming, newest first.
RSS · JSON · All topics
Building a 64-Bit OS — Chapter 3: Interrupt Descriptor Tables (The magic behind a working keyboard)
Building a 64-Bit OS — Chapter 3: Interrupt Descriptor Tables (The magic behind a working keyboard) Interrupts Interrupts are easily one of my favorite topics.
11 min · 2,612 words
Blinking a Blue Pill LED with Rust, from scratch
A from-scratch Blue Pill walkthrough in Rust without a HAL: wiring and flashing, the reset vector, volatile GPIO writes, delay loops, and the assumptions a working blink can hide.
22 min · 5,155 words
Packing Binary Is Fun, Actually
Pranav Desai’s hands-on tour of binary packing: why packing bits can be fun, the techniques that matter, and practical patterns for packing denser structures without losing your mind.
22 min · 5,056 words
Why Buran Had Four Computers, Not Three — and What a Lean Proof Adds
**Date:** September 24, 2026 · **Author:** Dmitrii Zatona - Buran’s flight computer was four identical Biser-4 machines running the same programs synchronously. A comparison scheme blocked a failed one, and the design had to survive any two failures (Section 1). - Four is what two failures cost if a failed channel is found by comparing outputs alone. It is not the 3f + 1 of Byzantine agreement, which is a different problem (Sections 2 and 3).
33 min · 7,503 words
Platform-independent SIMD in Go
Go 1.26 and 1.27 include experimental APIs for Single Instruction Multiple Data SIMD operations. SIMD is a native feature of many modern CPUs that allows software to perform uniform operations across vectors of data very quickly, such as adding 8 pairs of float64 values in a single instruction. It can significantly speed up many computationally-intensive tasks, ranging from cryptography to data processing to AI. In fact, Go’s Green Tea garbage collector/blog/greenteagc even makes use of SIMD to accelerate scanning memory for live objects.
15 min · 3,399 words
Topcoat is pushing the boundary of server applications with Rust
Two monthshttps://tokio.rs/blog/2026-07-22-announcing-topcoat ago, we Julienhttps://github.com/pikaju and Ihttps://github.com/carllerche announced Topcoathttps://github.com/tokio-rs/topcoat, a batteries-included full-stack Rust framework. It includes views, components, mailers, an ORM Toastyhttps://github.com/tokio-rs/toasty, and more. Topcoat aims to make building web apps with Rust as productive as any other language. We have been hard at work shipping features, so it is a good time to talk about what is new.
9 min · 1,958 words
Bugpocalypse, or reporting bugs in an AI age
QEMU maintainers on bug reporting in the AI age: flood of AI-generated reports, what still helps triage, and how to file bugs that maintainers can actually use.
6 min · 1,492 words
Syncing Rust GCC backend or how to test Murphy's law
Thanks! This blog post is about the Rust GCC backend (not to be confused with gccrs which is a Rust front-end for the GCC compiler), how we synchronize its repository with Rust's and how everything went so wrong that it took us 2 months to be able to finally make it.
7 min · 1,507 words
Understanding NvPCRs in systemd v262
systemd answers TPM PCR scarcity with additional PCR-like registers allocated in the TPM’s NV memory, with an anchoring design that was reworked in v262.
29 min · 6,748 words
Microsoft killed FoxPro in 2007. Anyway, here's FoxPro revived
FoxDev Studio rebuilds Visual FoxPro as a modern 64-bit runtime and IDE in Rust/WebAssembly: open old projects in place, keep .dbf data, bridge 32-bit libraries, and add FoxScript lambdas and HTTP routes.
3 min · 645 words
Textbook review: Is Parallel Programming Hard, And, If So, What Can You Do About It?
Andrew Helwer reviews McKenney’s parallel programming textbook: what it covers well, where it frustrates, and who should actually read it.
7 min · 1,715 words
A practitioner walkthrough of type punning pitfalls: why a pointer cast that works at -O0 can silently break at -O2, and how C versus C++ rules diverge in treacherous ways.
3 min · 585 words
Steve Klabnik digs into what programming languages mean by “arguments,” how calling conventions and type systems shape the word, and why debates about language design often talk past each other when the underlying models differ.
12 min · 2,769 words
A custom virtual machine for the Stars! 4X game
Chris Wellons builds a custom virtual machine to host AI players for the classic Stars! 4X game, covering bytecode design, performance, and interfacing with the original binary.
5 min · 1,116 words
A detailed practitioner review of the V programming language covering syntax, tooling, performance claims, and where the language felt productive versus still rough around the edges.
31 min · 7,113 words
Bartosz Fenski’s continuous benchmark suite for multi-device CoW filesystems (btrfs, ZFS, bcachefs) measures snapshot aging, compression, rebuild, ENOSPC, and other workloads classic single-disk fio tests miss.
14 min · 3,195 words
Comparing reflection capabilities of C++, Zig and C3
A side-by-side look at compile-time reflection in upcoming C++, Zig, and C3—how each language inspects types, enumerators, and struct members without runtime cost.
7 min · 1,568 words
Keva: Running Coding Agents On-Device on Unrooted Android
Simon Lin's technical paper on Keva—an on-device Android AI coding agent running Claude Code/Codex-style loops—covering architecture, failure modes, and systems lessons without rooting the phone.
33 min · 7,580 words
Release notes for jemalloc 5.4.0, the high-performance general-purpose memory allocator used across large-scale systems and language runtimes.
3 min · 762 words
The Golden Spike, and Resurrecting the Vale(n) Programming Language
Evan Ovadia describes patching rustc so Valen can call Rust generics, implement Rust traits from Valen closures, and borrow-check across the boundary—true Rust interop beyond the C ABI.
17 min · 3,809 words