Documentation
The reference for nos, built from the docs/ directory of the repository on every deploy: how each subsystem works, how to build, run, test and debug it.
Start here
FeaturesEverything the kernel does today, by subsystem.BuildNative and Docker builds, arm64, the undefined-behaviour flavours, the disk image, the system image, BIOS vs. UEFI.RunQEMU on x86-64 (KVM, TCG, OVMF) and arm64 (HVF), Google Cloud.Installnos on a server: the release's system image poured onto a partition with nos-install, booted once through the server's own GRUB, updated, rolled back.Real hardwareThe Dell Latitude 5480 laptop and the Hetzner EX44 (Intel) and AX41 (AMD) servers.DebugGDB, and getting a log off a box with no serial port.Tests and gatesThe self-tests every boot runs, the smoke boots, and the gate each subsystem has for what a smoke boot cannot notice.Kernel parameterssmp=, maxcpus=, console=, dhcp=, udpshell=, netconsole=, loglevel= and the rest.
How it works
BootGRUB/Multiboot2 and the Linux Image protocol to boot: complete, on both architectures, and how the APs come up.Paging and memoryThe bootstrap linear map, the real page table, the free list, the allocators, MMIO and W^X, TLB shootdown.SchedulerPer-CPU run queues, the context switch, preemption, blocking and load balancing.InterruptsThe IDT and IOAPIC, MSI-X, GICv3 and the ITS, IPIs, NMI, IRQ balancing, deferred work.ProfilerSampling on a performance counter or the tick, and how to read a profile report.HTTPSHow wget https:// works: the transport seam, rustls in no_std, certificates, and what it costs.RandomnessThe ChaCha20 pool, the entropy sources each machine turns out to have, and what timing jitter is worth.Rust in the kernelHow the crates are layered, how a kernel service reaches Rust, the types that stand in for unsafe, a map of kcore, writing a driver.FilesystemsThe root filesystem and root=, the file API, what the ext2 driver writes and how, making and checking a root image.Loadable modulesKernel services in Rust, built into .ko files and put into a running kernel with insmod: writing, building, loading.netblkAn NVMe disk served over UDP by a module, zero-copy both ways, and how Linux compares.sshdAn SSH server in a module: logging in with an Ed25519 key, starting it at boot from /etc/rc, what it speaks.The hypervisorA type-1 hypervisor as Rust crates and a module that can be taken back out: AMD-V and Intel VT-x, Linux guests.