~/talk

Writing a Container Runtime in Go

Talkat Commit Your Code 2026 · 2026-09-02..09-04· [go, linux-and-operating-systems]
links:none on file
slides:none on file

Builds a minimal runtime in Go that uses Linux syscalls directly: clone flags for namespaces (PID, mount, UTS), chroot to swap the process root, explicit UID/GID mappings for rootless UID mapping, and cgroup file writes to enforce limits. Demonstrates a working re-exec pattern, a virtual ethernet pair with a parent/child pipe for coordination, and a successful 50-process limit that stops a fork bomb. Source code runs end-to-end and the demos prove the runtime actually isolates and restricts processes.

AI-written summary · about

  1. 0:00Introduction
  2. 1:19What is a container runtime
  3. 3:04Linux concepts for containers
  4. 4:31Changing root filesystem
  5. 7:47Namespaces for isolation
  6. 10:33Advanced namespace isolation
  7. 13:04Rootless containers
  8. 15:54Networking in runtimes
  9. 18:26Cgroups for limits
  10. 20:36Cgroup limits demo
  11. 21:39Resources and closing
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.