This is where I put things I’ve written up — usually because I needed them myself, or thought they might be useful again later, to myself or anyone else.
Most of it will be technical. Infra, systems, containers, that sort of thing. Sometimes it’s just figuring out how something works underneath the layers, or checking if the docs actually match reality.
Some posts are rough. Some are more complete. A few might even be wrong, but I’ll update them when I find out.
No fluff. No SEO. Just posts.
Getting this to work (I am using Ubuntu for this) was really very simple. You will need to have QEMU installed before beginning.
1 2 sudo apt update sudo apt install qemu qemu-system-x86 To download, build, and run Xv6, do this:
1 2 3 git clone https://github.com/mit-pdos/xv6-public.git cd xv6-public make qemu Next, you will probably have to remove all the occurrences of -Werror in the repo for it to compile. If you are using an old enough complier it may work as-is. But since Xv6 is frozen in time, a historically accurate rewrite of 1970s Unix for educational use, and modern compilers expect different (more modern) coding practices, this flag will probably need to be removed before you can make Xv6.
...
🧪 Project: Write a Minimal Init System (PID 1) A minimal init system is a great way to understand Unix-like process management, signal handling, and what happens when a Linux system boots. In this project, you’ll write your own tiny init process and run it as PID 1.
🧠 What Is an Init System? The init system is the first user-space process launched by the Linux kernel. It always has PID 1 and is responsible for:
...
Booting a Linux MicroVM in Firecracker (and Why You Should Care)
Once upon a time, virtual machines were heavy, slow, and bloated. Then came containers — fast and light, but they shared the host kernel. Firecracker slices through that compromise. It’s a lightweight virtual machine monitor (VMM) designed for launching thousands of minimal, secure microVMs with near-instant startup.
This tutorial walks through a minimal Firecracker setup to boot a Linux VM. No Docker, no Kubernetes, no YAML — just you, a kernel, and a handful of syscalls.
...
🐳 A Minimal Container in Go — ELI5 This Go program creates a tiny container, kind of like Docker, but from scratch using Linux syscalls. No Docker or container engine involved!
🧠 What It Does Runs itself twice — once as a parent, once as a child The parent sets up Linux namespaces for isolation The child changes its environment to behave like a container Finally, it runs a shell (/bin/sh) inside that container 🧩 Step-by-Step Breakdown The Golang program we discuss here consists of this header, plus three functions:
...
🐧 How to Build Your Own Container From Scratch 🧠 Title: “Building a Container Runtime with Nothing But Syscalls”
🔧 Skills: clone(), namespaces, cgroups, pivot_root, filesystem isolation
🎯 Signals: OS fluency, kernel-space understanding, comfort with system calls
To actually build a container runtime from scratch using only syscalls, you’re building something like a very minimal runc clone — no Docker, no Kubernetes, just Linux primitives.
This project is used to learn and/or demonstrate understanding of how containers work under the hood. Here’s a practical, step-by-step breakdown of how to do it, mostly in Go (Go is easier than C for modern devs and has good syscall wrappers):
...
It might seem hard to believe, but there was once a time when computers were exciting. Not because of what they could get us, but just because of what they were.
Way back in the days of glowing vacuum tubes, of punch cards and terminals, the first computer enthusiasts, the OG nerds, the hackers (before that word became twisted and cynical), weren’t just using systems — they were communing with them. Dreaming in machine code. Waking up with answers the manuals didn’t hold. Understanding every layer. Not because they had to, but because they needed to.
...
This is my first post!
This site is coming soon…
1 2 def greet(name): return f"Hello, {name}!"