An OS in pure Rust with its own TCP/IP and TLS 1.3 stack, fetching the live web A team of developers has built Rusty Penguin, a complete operating system written entirely in pure Rust with its own bootloader, kernel, drivers, and window manager, featuring a native TCP/IP and TLS 1.3 stack. The OS uses balanced ternary logic (-1/0/+1) as a first-class primitive across all layers, treating a "dormant" state as distinct from active or terminated processes. The project aims to create a daily-driver desktop OS that can replace Ubuntu, with a Linux ABI compatibility layer allowing unmodified glibc binaries to run on its native kernel. "Binary hardware. Ternary mind." Rusty Penguin is a complete operating system written from scratch in pure Rust — its own bootloader, kernel, drivers, window manager and apps, with no Linux kernel and no libc underneath. The goal: a daily-driver desktop OS you can install in place of Ubuntu. Ternary logic -1 / 0 / +1 is a first-class primitive at every layer, from the scheduler to the AI runtime. Built by RFI-IRFOS https://github.com/rfi-irfos as part of the Ternary Intelligence Stack https://ternlang.com . Preinstalled: albert · ternlang · albert-cli · ternlang-mcp Rusty Penguin Googles itself — on its own bare-metal kernel. The OS fetches google.com/search?q=rusty+penguin+os over our own TLS 1.3 stack and finds "rusty-penguin - crates.io: Rust Package Registry" in the results. No X11, no Wayland, no libc, no Linux kernel underneath. Binary computers have two states: on and off. Every value, every decision, every process is either 1 or 0 . Rusty Penguin treats a third state as real: dormant . Not running, not stopped — resting . A process that hasn't been asked for anything yet is not the same as a process that failed. A memory page that hasn't been touched is not dead. A neural-network weight of zero should cost nothing to compute. Every primitive in this system expresses three states: | Trit | Value | Meaning | |---|---|---| | Pos | +1 | Active, running, promoted | | Zero | 0 | Dormant, idle, neutral | | Neg | -1 | Suppressed, terminated, rejected | Dormancy is sacred. Zero is not nothing — and the renderer, the scheduler and the AI runtime all skip dormant work instead of grinding through it. A from-scratch x86 64 OS, hand-written in Rust top to bottom: Bootloader handoff → pure-Rust kernel — Multiboot2, 32-bit → 64-bit long mode, physical/virtual memory management, interrupts, a custom syscall ABI, ring-3 userspace, PS/2 keyboard + mouse, a 1920×1080 framebuffer, and Intel HDA audio. A native desktop — frosted-glass window manager drag / resize / minimize / maximize , a floating dock, a start menu, an arrow cursor, and a warm stone-green visual language. No external UI toolkit; every pixel is drawn by our own framebuffer + ternary-CSS engine. Real apps — terminal psh , file manager, text editor, calculator, system monitor, settings, the TIS console, plus Snake, Minesweeper and a pure-Rust DOOM-style raycaster. A ternary runtime — balanced-ternary arithmetic and a sparse-skip inference engine that physically skips zero-weight multiplications. No libc. No C dependencies. No UI framework. Systems programming from first principles. A from-scratch OS has a chicken-and-egg problem — none of the world's existing software was compiled for it. We solve this without giving up the pure-Rust ternary core : the kernel is growing a Linux ABI compatibility layer — a one-way translation shim that lets unmodified, already-compiled Linux/glibc binaries run on top of our Rust kernel. This is not "boot Linux instead." There is no Linux kernel here. The native syscall surface is our own, ternary-flavored ABI; the Linux ABI sits beside it purely so the binary ecosystem eventually a real browser can run while the native, ternary-native app ecosystem grows to replace it. It is honest, brick-by-brick work: Done: the kernel runs real unmodified glibc programs natively — both statically and dynamically linked. printf , TLS thread , malloc , SSE floating point, full atexit / exit , file I/O, and ld.so loading + relocating + running a dynamically-linked binary against libc.so.6 . Next: threads clone / futex , per-process virtual memory + demand paging, /proc , more of the syscall surface, then a framebuffer GUI app — and on that road, a real web browser. A browser is the long pole. Be clear-eyed: full web parity is a multi-year horizon. The path is real and the early bricks are laid, but we don't pretend velocity equals completion. | Component | Status | |---|---| | Boot → long mode, memory mgmt, interrupts, syscalls, ring-3 | ✅ | | Framebuffer 1920×1080, PS/2 keyboard + mouse | ✅ | USB xHCI HID — keyboard + mouse on modern laptops | ✅ QEMU verified | | Intel HDA audio + Sound mixer app | ✅ | | Window manager, floating dock, start menu, arrow cursor | ✅ | Quick Settings panel Wi-Fi/BT/dark/volume tiles, tray-anchored | ✅ GNOME-style | | Apps: terminal, files, editor, calculator, monitor, settings, TIS console | ✅ | NIC drivers: RTL8139, Intel e1000/i219, Realtek r8169 | ✅ ~95% laptop coverage | TCP/IP stack: ARP/ICMP/UDP/DHCP/DNS/TCP/HTTP | ✅ fetches real internet | TLS 1.3 client X25519 · ChaCha20-Poly1305 · from scratch | ✅ real HTTPS, QEMU-verified vs live web | Live web browser — type host → real page | ✅ http + https, follows redirects | fetch , wget terminal commands | ✅ | | Linux ABI layer static + dynamic glibc binaries | ✅ Bricks 1–5 done | Multi-user login SHA-256 passwords, /home/ | ✅ | | In-memory VFS within a session | ✅ | Persistent bare-metal disk storage RPFS + AHCI | ✅ settings/files survive reboot | | Component | Status | |---|---| Install to disk rp-install /dev/nvme0n1 | ✅ UEFI/GPT | | Standalone boot from disk no ISO | ✅ | Persistent /home ext4 | ✅ survives reboots | Package manager rpm install