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. The packet lesson compiles a C parser and tests it with binary inputs. The sensor lesson maps an emulator device through Linux’s /dev/mem interface.

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.010 MB
kernel-riscv64.bin.gz1.953 MB
rootfs.bin.gz3.705 MB
tinyemu.wasm.gz0.068 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