Phase 4 active · networking

Simple.
Visible.
Yours.

DOS/9 is a native 32-bit operating system built from scratch. Real kernel, real userland, real TCP/IP stack. A shell-first OS that takes Plan 9's filesystem philosophy seriously.

not a DOS clone not a Linux skin i386 / 32-bit boots today
dos9 — qemu-system-i386
# network comes up at boot via DHCP DOS/9> cat /net/info ip 192.168.1.42 gw 192.168.1.1 dns 8.8.8.8 DOS/9> gopher gopher.floodgap.com Welcome to Floodgap Systems... DOS/9> ls /proc 1 2 3 4 DOS/9> for f in hello world echo $f end hello world DOS/9> cat /net/resolve # write a hostname, read back the IP DOS/9> rm /proc/4 process 4 terminated
32-bit i386 protected mode
4b phases complete
0 Linux dependencies
full TCP/IP stack, from scratch
The premise

What if DOS had been allowed to evolve on its own terms — without Windows compatibility, without the GUI-first reorientation — and if along the way it had learned from Plan 9?

DOS/9 is not a recreation of MS-DOS and not a Linux distribution with a retro skin. It is an original kernel that inherits the spirit of DOS — single-user, text-first, the shell as the center of the universe — while applying Plan 9's core insight at the kernel level: everything is a file, actually.

The target is the small-web community: people who run Gemini capsules, use Gopher daily, and believe a computer should be a thing you can understand. If 200 of them try it and 20 use it weekly, the project has succeeded.

01
Shell is the OS
The command line is the primary interface, workflow, and control surface. Not a fallback from a GUI that doesn't exist.
02
Everything is a file
Devices at /dev, processes at /proc, network state at /net, disk at /disk. No separate APIs. Same tools everywhere.
03
Small web native
Gopher and Gemini clients are system tools, not third-party apps. The /net filesystem follows the Plan 9 model.
What's running

A real OS. Not a demo.

Phases 1 through 4b are complete. The kernel runs, schedules processes, enters user mode, and talks to the network — all written from scratch in C and assembly.

Kernel
  • GRUB / Multiboot
  • GDT, IDT, PIC remapping
  • PIT timer at 100 Hz
  • Physical memory bitmap
  • 4KB paging, higher-half
  • Kernel heap (kmalloc/kfree)
  • Preemptive round-robin scheduler
  • Ring-3 user processes
  • ELF loader
  • int 0x80 syscall gate
Filesystem
  • VFS with multi-mount namespace
  • /dev — kbd, console, null
  • /proc — live process table; rm kills
  • /mod — loadable kernel modules
  • /disk — DOS9FS on ATA PIO
  • /net — Plan 9-style network FS
  • Anonymous pipes
  • dup, dup2
  • O_CREAT, SEEK_SET/CUR/END
  • Per-process fd tables
Networking
  • PCI device enumeration
  • RTL8139 NIC driver
  • Ethernet + ARP
  • IPv4 + ICMP
  • TCP + UDP
  • DHCP auto-config at boot
  • DNS resolver (UDP A-record)
  • /net/resolve — hostname→IP via VFS
  • /net/tcp/clone — connection model
  • Gopher client (hostname-aware)
Userland
  • Ring-3 shell — history, tab complete
  • Scripting: variables, if, for, loop
  • Pipeline syntax (left | right)
  • TUI toolkit — 16-color ANSI
  • Two-pane file manager (NC-style)
  • Full-screen text editor
  • Package system (.d9p + CRC32)
  • Minimal libc (stdio, malloc, string)
  • argv support, crt0
  • cat, hello userland programs
Roadmap

Built in the open.

Each phase ships when it works. No marketing timelines.

Phases 1–2: Kernel foundation
Boot · memory · scheduling · VFS · syscalls · ring-3
GDT/IDT/PIC, paging, heap, PIT timer, preemptive scheduler, ELF loader, int 0x80 syscall gate, VFS with devfs/procfs/diskfs, ring-3 user processes, minimal libc.
Complete
Phase 3: The userland
Shell · scripting · TUI · editor · packages
Ring-3 shell with history and tab completion, scripting (if/for/loop/variables), anonymous pipes, TUI toolkit, two-pane file manager, full-screen editor, .d9p package system.
Complete
Phases 4a–4b: Networking
TCP/IP · DHCP · DNS · Gopher
PCI enumeration, RTL8139 driver, full Ethernet/ARP/IP/TCP/UDP/ICMP stack, DHCP auto-config, DNS resolver, Plan 9-style /net VFS, Gopher client with hostname support.
Complete
Phase 4c: TLS + Gemini
BearSSL · Gemini browser
Port BearSSL (~50KB, designed for constrained systems) as the TLS layer, then build a native Gemini browser on top. Gemini is only reachable over TLS.
In progress
Phase 4c cont.: Readers
RSS · Finger · IRC
Native RSS reader, and possibly Finger, NNTP, and IRC clients — protocol-native tools, not ports of UNIX programs.
Planned
9P-style remote mounts
Aspirational
Mount a Gemini capsule as a local directory. Browse it with ls. Read it with cat. The moment DOS/9's thesis becomes undeniable — and the moment the Plan 9 influence stops being a metaphor.
Aspirational