Linux Net Labs #2 - Multi-Client Forking Echo Server

Recap In Day 1, we built the simplest possible TCP server in C: a blocking echo server that handled one client at a time. That worked fine for basic tests, but it had a major limitation — a second client had to wait until the first one disconnected. Today, we fix that by introducing fork(). The Idea: fork() per Client Unix gives us a neat primitive: fork(). It clones the current process into a child, which can run independently of the parent. ...

September 16, 2025 · 6 min

Linux Net Labs #1 - Blocking Echo Server (Baseline)

Start from a single-thread blocking TCP echo server. Why it matters, how it works, pitfalls (EINTR, SO_REUSEADDR), and what’s next: forked/threaded → select → epoll.

September 15, 2025 · 11 min

mtsh — Empty Shell — Minimal Teaching Shell

mtsh (pronounced like em tee shell) is a tiny, educational Unix-like shell written in C. It’s designed to be simple enough to understand line-by-line, while still being a functional interactive shell you can extend over time. It starts as a bare-bones REPL that can run external commands, and is designed to grow feature-by-feature as you learn. Every line of code is intended to be readable, hackable, and easily extended — making mtsh a hands-on guide to understanding how real shells work under the hood. ...

August 14, 2025 · 3 min

Build a Peer-to-Peer Mesh VPN with WireGuard and Linux

A practical walkthrough of building a lightweight peer-to-peer mesh VPN using WireGuard, with a focus on clarity, routing, MTU, and the kind of debugging you only get from raw packets and real packets.

August 7, 2025 · 4 min

The Cloud Is the New OS

Back in the 1990s and early 2000s, the operating system was the computer. If you wanted to run a program, manage users, allocate memory, connect to a network, or read a file, you did it through the OS. Microsoft understood this. They built an empire by controlling the layer that everything else relied on. But today, most developers have no idea what OS their app is running on. And they don’t need to. ...

August 7, 2025 · 3 min