Skip to content

OS-DEV v1888 — reliable TCP, crash consistency, real-hardware bring-up

Choose a tag to compare

@milescoviello milescoviello released this 22 Jul 20:42
· 712 commits to main since this release

A from-scratch x86_64 operating system — kernel, SMP scheduler, its own TCP/IP
stack + TLS 1.3, a JavaScript engine, a sandboxed ring-3 web browser, a
crash-consistent journaling filesystem, and a graphical desktop — all written
from scratch. This snapshot is ~370 milestones past the previous release (v1519)
and completes all four "big swing" goals.

Try it now

Download os-dev-tryit.zip, unzip, and follow RUN_ME.md for a one-line
qemu-system-x86_64 command (only QEMU required) — boots straight to the
graphical desktop and runs a live HTTP + HTTPS-over-TLS-1.3 fetch over the
from-scratch network stack. A standalone BOOTX64.EFI is included to boot
through UEFI/GRUB on real hardware.

Highlights since v1519

  • Reliable, congestion-controlled TCP. The sender is no longer
    fire-and-forget: buffered unacked data, RFC 6298 RTT/RTO, go-back-N
    retransmission, 3-dup-ACK fast-retransmit, flow control, and TCP Reno
    congestion control (slow start / congestion avoidance / fast recovery).
    Verified against a deterministic packet-dropping test harness and by real
    HTTPS fetches to the internet.
  • Crash consistency. A from-scratch write-ahead journal makes filesystem
    metadata operations atomic across a power loss, on top of a unified kernel
    block cache — proven by a host harness that injects a crash at every write,
    plus in-guest replay tests. A follow-up correctness audit found and fixed a
    cross-mount data-corruption bug and several coherence/robustness issues.
  • Boots on real hardware, driven over the network. A UEFI/GRUB Multiboot2
    path, an Intel NIC driver, and an in-kernel network debug console ("netcon")
    let a diskless machine PXE-boot and be inspected/rebooted over ethernet.
  • Web browser fully in ring 3. The browser's HTTPS fetch (TLS 1.3 handshake,
    X.509 chain validation, ECDSA/RSA) runs entirely in userspace.
  • Real SMP. The scheduler runs ring-3 processes and kernel threads across all
    CPU cores.
  • WebSockets from scratch (RFC 6455 client over ws://+wss:// and a server),
    plus a large productivity/dev-tools app suite, and much more.

Details

See README.md for the
architecture and honest caveats, and
WHATS-NEXT.md for
the chronological changelog. The full make check suite (~100 host + in-guest
tests) is green.