Build your own shell
fork, exec, pipes and redirection. Build a POSIX command interpreter that runs real programs.
C · Rust · Go · Zig
namespaces, cgroups y chroot. Aísla un proceso a mano y entiende qué hace Docker cuando arranca una imagen.
Build it in your language
The tester treats your program as a black box: any language works. These are just the most convenient ones for this project.
Un contenedor no es una máquina virtual ni una tecnología nueva: es un proceso normal de Linux al que el kernel le ha mentido sobre lo que puede ver. Este reto te enseña a contar esas mentiras.
Vas a aislar un proceso a mano con namespaces, cambiarle la raíz del sistema de ficheros, limitarle CPU y memoria con cgroups y quitarle privilegios. Al final tendrás un run propio capaz de arrancar el sistema de ficheros de una imagen real.
8 stages across 4 phases. Every stage comes with its guide and its tests: you move on when they pass.
Lanza un hijo con namespaces propios de PID, UTS y mount.
rootfs extraído, pivot_root y montaje de /proc.
cgroups v2 para CPU y memoria, y comportamiento al alcanzarlos.
Namespace de red, user namespaces y reducción de capabilities.
run.fork, exec, pipes and redirection. Build a POSIX command interpreter that runs real programs.
C · Rust · Go · Zig
Build and train a neural network from first principles: forward pass, loss functions, and gradient descent optimization.
Python · TypeScript
Mark-and-sweep from scratch. Manage memory the way the runtimes you use daily do without you noticing.
C · C++ · Rust