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

A Discussion on Environment Variables

By “environment variables,” I mean more than just shell variables. I’m referring to the variables that each process possesses and can access through system APIs. Of course, shells typically provide ways to manipulate environment variables, and we often manage them through a shell. But shell variables and environment variables are not exactly the same thing, and the two concepts can easily be confused. Let’s try to untangle them here. 1. Environment Variables From a program’s perspective, environment variables are simple....

November 2, 2024 · 4 min · 815 words · Wokron