What's even cooler than writing your own text editor or your own operating system? Building your own hardware from scratch with all the software written in Rust -- including firmware, the scheduler, and the hypervisor. Oxide Computer Company is one of the most admired companies in the Rust community. They are building "servers as they should be" with a focus on security and performance to serve the needs of modern on-premise data centers.
In this episode, I talk to Steve Klabnik, a software engineer at Oxide and renowned Rustacean, about the advantages of building hardware and software in tandem, the benefits of using Rust for systems programming, and the state of the Rust ecosystem.
About Oxide Computer Company
Founded by industry giants Bryan Cantrill, Jessie Frazelle, and Steve Tuck, Oxide Computer Company is a beloved name in the Rust community. They took on the daunting task of rethinking how servers are built -- starting all the way from the hardware and boot process (and no, there is no BIOS). Their 'On The Metal' podcast is a treasure trove of systems programming stories and proudly served as a role model for 'Rust in Production.'
About Steve Klabnik
In the Rust community, Steve does not need any introduction. He is a prolific writer, speaker, and software engineer who has contributed to the Rust ecosystem in many ways -- including writing the first version of the official Rust book. If you sent a tweet about Rust in the early days, chances are Steve was the one who replied. Previously, he worked at Mozilla and was a member of the Rust and Ruby core teams.
Links From The Episode (In Chronological Order)
Links From The Episode (In Chronological Order)
- The Rust Programming Language (No Starch Press version) - The official Rust book
- The Story of Rust - FOSDEM / The History of Rust - ACM - Early history of Rust
- Signing Party - Story from Macintosh development
- The Soul of a New Machine by Tracy Kidder - Classic book on computer engineering
- I have come to bury the BIOS - Bryan's talk on firmware
- Beowulf cluster - Early parallel computing architecture
- Bryan's blog post on Rust - Journey of a systems programmer to Rust
- JavaOS - Operating system written in Java
- D Programming Language - Systems programming language
- Garbage Collection in early Rust - Historical Rust development
- Removing green threads RFC - Major change in Rust's concurrency model
- Hubris - Oxide's embedded operating system
- Tock OS - Embedded operating system in Rust predating Hubris
- cargo-xtask - Build automation for Rust projects
- Hubris Build Documentation - Building Hubris using cargo xtask
- Buck Build System - Facebook's build system
- Buildomat - Oxide's build system
- Omicron - Oxide's manufacturing test framework
- illumos - Unix operating system
- bhyve - BSD VM hypervisor
- About Self-hosted Runners - GitHub Actions documentation
- Async Drop Initiative - Rust async development
- Rust Playground Example - Demonstrating helpful error when using prefix await operator
- Rust Book - Modules - Rust module system
- OpenAPI Specification - API documentation standard
- Dropshot - Oxide's OpenAPI server framework
- Axum - Web framework for Rust
- Oxide Console - Oxide's web interface
- Oxide Console Preview - Demo of Oxide Console using a mocked backend
- Oxide RFD 1 - Request for Discussion process
- Rust RFCs - Rust's design process
- IETF RFCs - Internet standards process
- Zig - Systems programming language
- TigerBeetle - Financial accounting database written in Zig
- Bun - JavaScript toolkit written in Zig
- CockroachDB - Distributed SQL database used in Oxide's backplane
- Oxide and Friends: Wither CockroachDB? - Discussing Cockroach's switch away from BUSL
- Mozilla Public License - Oxide's default software license
- Asahi Linux - Linux on Apple Silicon with Rust drivers
- Buck2 - Meta's build system
- Jujutsu (jj) - Git replacement
- Steve's Jujutsu Tutorial - Guide to jj
- Steve's blog post on not naming branches
Official Links
- Oxide Computer Company - Building servers as they should be
- On The Metal Podcast - Stories from the hardware/software boundary
- Steve Klabnik's Blog - Thoughts on programming, Rust, and more
- Steve Klabnik on Bluesky - Follow Steve for Rust updates and more