in development · TCP listen + server

NaOS v0.2.0.

The working version: everything in v0.1.0 plus a TCP server — listen, accept, serve files over HTTP. Unreleased: build it below, or grab the stable v0.1.0 binaries.

Build v0.2.0 Stable v0.1.0.iso
01/

Highlights

01

40 plain-English commands

Files, system, network, power — with history, scrollback, font sizes, output redirect and a themeable prompt.

02

AHCI · NVMe · ATA + FAT32 + live RAM copy

One block layer, writable FAT32, long filenames. Boots from SATA, NVMe — or straight off the ISO with files.

03

fork() with CoW

Ring-3 programs, private address spaces, preemptive scheduler, copy-on-write fork, file syscalls.

04

TCP server + client

E1000 + virtio-net drivers, ARP/ping, UDP sockets, DHCP lease at boot, DNS — TCP server (serve-file, one file per call) plus the TCP client with HTTP get-page and hash-verified system-update.

05

PS/2 + USB HID

Polled XHCI stack with hotplug rescan, classic PS/2 fallback, PC-speaker beeps.

06

ISO export + auto-boot

El Torito UEFI image, shell auto-boot fallback, Rufus/DD-mode guide for real hardware.

02/

Command reference

Everything the NaOS> prompt understands in v0.2.0.

Files

show-fileslist the current folder
read-file <file>show a text file
open-folder <dir>change folder
make-folder / make-filecreate folder / file
copy-file · move-file · rename-fileorganize files and folders
edit-file <file>built-in text editor
delete-file <path>remove files and folders
file-system mount/list/read/write/deleteread + write NaOS-FS images
show-driveslist AHCI / NVMe / ATA disks
install-system <id> eraseformat + install NaOS on a disk

System

help · show-version · about-systemcommands · build date · developer
run-program <program>run a disk ELF program
show-tasks · stop-task <id>process list · stop a task
show-time · show-date · show-uptimeCMOS clock readings
show-memory · run-tests · force-crashstats · self-tests · fault test
show-pci · show-settingsPCI scan · prompt/theme view
clear-screen · print-text · play-beepscreen · echo text · speaker
set-font [small|normal|big|3|4]console size, saved
PgUp · PgDnscroll the screen back and forth

Network

show-networkMAC / IP / link / counters
get-addresslease an address (proves UDP)
ping-address <ip>ICMP echo, 4 packets
get-page <ip> <port> <path>HTTP GET over TCP
get-page-tls <ip|host> <port> <path>HTTPS GET, own TLS 1.2 client
find-address <name>resolve a hostname
system-update check/get/check-tls/get-tlsmanifest compare + verified downloads, plain or own-TLS
serve-file <port> <file>serve one file over HTTP, then done

Hardware & power

find-keyboardrescan for a USB keyboard
show-nvmecontroller info + self-test
reboot-system · shut-down8042 reset · ACPI power-off
03/

Run it

Inside this folder. One-time host setup is in the README. Artifact sizes: BOOTX64.EFI ~17 KB · KERNEL.ELF ~160 KB · DATA.NAFS 94,720 B · ESP 64MiB · ISO ~64.6 MiB.

export PATH=/opt/cross/bin:$PATH
./tools/check.sh   # verify tools + OVMF
make all && make esp
make run           # → NaOS> shell
make run-iso       # needs xorriso: boot the ISO itself
04/

Verified requirements

ToolVersionPurpose
QEMU + OVMF11.1.0emulator + UEFI firmware
x86_64-elf-gcc + ld16.2.0 / 2.47kernel (via /opt/cross)
x86_64-w64-mingw32-gcc16.2.0bootloader (PE+)
NASM · Make · mtools · Python3.02 · 4.4.1 · 4.0.49 · 3.14.8stubs · build · FAT image · font + scripts
 Honest limits: TCP serve handles one connection per call (3-deep SYN backlog) · NVMe needs 512B namespaces (polled, no MSI-X/4K yet) · NaOS-FS: 128KB images max, new files 8.3-only · CD/USB boot is a live RAM session (files work, writes vanish on reboot; give the VM ≥256MB) · UEFI-only, Secure Boot off.
05/

How v0.2.0 is built

Boot + shell — custom BOOTX64.EFI, GOP console, NaOS> prompt
Memory — own PML4 paging, PMM, kmalloc heap
Files — ATA → AHCI DMA → writable FAT32 + long names
Multitasking — ring-3 tasks, syscalls, fork() with copy-on-write
Hardware — PCI scan, XHCI USB keyboard, PC speaker, ACPI power
Network — E1000 + virtio-net, ARP/ping, UDP/DHCP/DNS, TCP client + updater
NVMe + live ISO — polled driver in the block layer; live RAM copy of the boot volume, boots anywhere