Inside the environment

A small, disposable Linux machine makes the important parts visible: processes, namespaces, packet bytes, and the hardware registers your code touches.

Open the first lab
  1. Browser applicationNext.js · lazy CodeMirror editor · xterm.js terminal · IndexedDB work
  2. WebAssembly emulatorTinyEMU · RISC-V 64-bit · controlled device interface
  3. Purpose-built Linux environmentBusyBox · TinyCC · disposable machine state

Real guest execution

The terminal connects to a Linux serial console. Shell commands and C programs run inside the emulated machine. Container checks observe filesystem and namespace behavior. Networking stages build a C transport and exchange actual packet bytes with a controlled peer. Driver stages progress from Linux’s /dev/mem interface to kernel modules, interrupts, and DMA into guest memory.

Small on purpose

Machine artifacts download when you start an environment. The base includes the kernel, a small userspace, and the C tools used by these lessons. The browser caches assets, and student files are stored separately.

VM artifactCompressed size*
bbl64.bin0.001 MB
kernel-riscv64.bin.gz1.930 MB
rootfs.bin.gz4.005 MB
tinyemu.wasm.gz0.069 MB
tinyemu.js0.009 MB
worker.js0.003 MB

* Binary artifacts are measured precompressed files. JavaScript and BIOS figures use gzip compression estimates; the repository’s browser report measures actual network responses.

Your work, your device

The editor saves to IndexedDB as you type. Run, test, restart, and Save /work also snapshot guest files. Use Save /work after creating files directly in the terminal. Restarting restores that snapshot into a clean machine. Reset exercise replaces the editor’s starter file after confirmation.

Browser storage can be cleared or evicted. Export code you want to keep elsewhere. Accounts are optional; the learning environment does not need a database connection.

The security boundary

Root access applies to the emulated machine. Guest code has no host filesystem access, remote execution endpoint, or arbitrary Internet connection. Network fixtures and the virtual link stay inside the browser. Educational tests provide feedback, not tamper-proof certification.

Current limits

Extend the lab

The repository includes ARCHITECTURE.md, COURSE_AUTHORING.md, guest sources, reproducible artifact scripts, and automated tests. New tracks use the same lesson schema and guest protocol.

Optional account and progress sync