Build a Container from Scratch with Namespaces

Container technology is built on three Linux kernel features: Namespaces, Cgroups, and Unionfs. They provide logical resource isolation, physical resource limits, and container filesystems, respectively. Among these, Namespaces are the most critical. They implement isolation — the most essential aspect of virtualization. Even without Cgroups and with an alternative to Unionfs, you can still achieve much of what a container does, as long as you have Namespaces. So in this article, we’ll try to build a simple container using Namespaces....

October 13, 2025 · 11 min · 2322 words · Wokron

Linux Users and Users in Containers

The era of multi-user operating systems is long over. People today generally don’t share computing resources by having multiple users log into the same OS — we have better virtualization technology for that. But users still serve a purpose, the most important being permission isolation. There’s a lot to say on this topic, but we’ll focus on just the most critical points. Containers introduce additional quirks around users, which we’ll also discuss....

October 12, 2025 · 7 min · 1483 words · Wokron

Building TensorFlow from Source: Gotchas

A while back I found a small bug in TensorFlow. Now that I had some free time, I decided to submit a PR. The bug was fixed quickly, but when I tried to build TensorFlow locally, I ran into quite a few gotchas. Here are my notes. 1. So Many Versions, So Confusing Before we start building, let’s go over the relevant Nvidia GPU dependencies. Nvidia has various GPU architectures. To distinguish between them, Nvidia uses Compute Capability....

January 20, 2025 · 6 min · 1191 words · Wokron