← projects

# GoBox

solo · mar 2026
Go, Linux namespaces, cgroups v2, OverlayFS, CRIU

A container runtime written from scratch in Go, as an extra project for my OS class.

## what i built

## what was hard

/proc. I mounted /proc without a mount namespace and overwrote the host's /proc. A dumb mistake: I was running on two hours of sleep.

CRIU. Checkpoint/restore needed five separate fixes, ending with building CRIU from source.

## what i learned

How much of "a container" is plain Linux: the /proc/self/exe re-exec trick, veth pairs, OCI digests.

## what happened

# this site is a shell: open it here