nos_
ENRU

How-to guides

Task-by-task guides: build nos, run it, talk to it, debug it, put it on a server, boot Linux under its hypervisor, write a module, run the gates.

  1. 01Build nosBuild the kernel, its modules and the boot images for x86-64 and arm64: in Docker on macOS, or natively on Linux with the pinned Rust nightly.
  2. 02Run nos in QEMUBoot nos on x86-64 from the ISO or a disk image, under KVM on Linux, and on arm64 with HVF on Apple Silicon, then tell a good boot from a bad one.
  3. 03Connect to a running nosReach the kernel's shell over the serial console, the UDP shell or SSH, and stream its log to your machine with netconsole.
  4. 04Debug nos with GDBAttach GDB through QEMU's stub, read a panic and its backtrace, raise trace levels, bisect a failing boot, and get the log off a machine with no serial port.
  5. 05Install nos on a dedicated serverPour the nos system image onto a spare partition of a Linux server, boot it once through the server's own GRUB, and log in over SSH.
  6. 06Boot a Linux guest under the nos hypervisorBuild a small Linux kernel and BusyBox initramfs, load hv.ko into nos, then boot, type at, network and stop Linux guests.
  7. 07Write a loadable kernel module in RustCreate a nos kernel module in Rust with kmod and kcore, give it a shell command, build the .ko and load it into a running kernel.
  8. 08Run the gates: test a change the way nos doesBoot self-tests, smoke boots on both architectures, UB-checked builds, per-subsystem gates and host fuzzers: what to run after a change, and how to judge it.