nyx freestanding i386 kernel · Zig 0.15.2 · M0–M20
powering on

Click the screen and type. This is the nyx shell and its subsystems ported to JavaScript: RamFS, the 16-slot VFS fd table, the frame bitmap, the first-fit heap, the slab allocator, the ELF32 parser and the 15-case self-test all run for real. The VGA text buffer lives at 0xB8000 in simulated memory, the kernel's own code is loaded at 0x100000, and an unmapped peek faults and halts the CPU, same as the original.

The real kernel, under QEMU

Framebuffer captures from qemu-system-i386 -kernel kernel.elf -m 64.

Boot log: self-tests pass, milestones M16 to M20 OK, shell ready
Boot · M16 self-test → shell
Output of the help command listing 30 shell commands
help
uname, mem, uptime, ps, date and sysinfo output
uname mem ps date sysinfo
lspci, diskinfo, cpuid and acpi output
lspci diskinfo cpuid acpi
RamFS session: ls, cat, mkdir, write, rm
RamFS: ls cat mkdir write rm
test command: 15 passed, 0 failed
test · 15 passed
readelf, phdrs, hexdump of VGA memory, poke and peek
readelf phdrs hexdump poke peek
meminfo, slabstat and history output
meminfo slabstat history