<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/virtual-oxide-labs-emulating-a-full-oxide-rack-wluncqpjs" -->

---
title: Virtual Oxide Labs: Emulating a Full Oxide Rack | daily.dev
description: Oxide's Product Assurance team describes Voxel, a software emulation stack that lets them spin up a complete virtual Oxide rack without needing physical...
canonical: https://daily.dev/posts/virtual-oxide-labs-emulating-a-full-oxide-rack-wluncqpjs
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Virtual Oxide Labs: Emulating a Full Oxide Rack | daily.dev
og:description: Oxide's Product Assurance team describes Voxel, a software emulation stack that lets them spin up a complete virtual Oxide rack without needing physical...
og:url: https://daily.dev/posts/virtual-oxide-labs-emulating-a-full-oxide-rack-wluncqpjs
og:image: https://api.daily.dev/og/posts/wluNCqpJS.png
og:image:alt: Virtual Oxide Labs: Emulating a Full Oxide Rack
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Virtual Oxide Labs: Emulating a Full Oxide Rack

**[Oxide](https://daily.dev/sources/oxide)** · 11 min read · 19 upvotes · 0 comments

## Summary

Oxide's Product Assurance team describes Voxel, a software emulation stack that lets them spin up a complete virtual Oxide rack without needing physical rack-scale hardware. Built on illumos and Rust, Voxel uses Propolis for sled virtualization, FRR for networking, SoftNPU for P4 switch emulation, and a custom emulator (sp-emu) that models actual Cortex-M7 and Cortex-M33 microcontrollers rather than just simulating their responses. The system runs stock Oxide software (Hubris firmware, Omicron control plane) unmodified, following what they call the 'Prime Directive' of fidelity. A full 6-sled rack can be launched in about 10 minutes on a mini-PC with 32 threads and 96GB RAM, and the sp-emu tool is open sourced under MPL 2.0, alongside the voxel CLI itself.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://oxide.computer/blog/voxel-labs>

## Questions this post answers

### How does Oxide emulate the service processor microcontrollers for testing without real hardware?

Oxide built actual emulated Cortex-M7 and Cortex-M33 devices (replacing an older happy-path-only SpSim stub) that run on illumos and Linux, on x86 and ARM. Each device runs in a single thread and emulates instructions, time, and interrupts, then runs real Hubris firmware flashed directly to the emulated chip, communicating over an ordinary socket via the Management Gateway Service and IPCC.

_Teams building hardware-accurate test environments can follow similar emulation deep dives on daily.dev._

### How does sp-emu handle timing when emulating a microcontroller that expects real wall-clock cycles?

Instead of tracking wall time, sp-emu counts instructions against the kernel's reload value, since Hubris schedules off a 1ms SysTick but the emulator runs slower than real silicon and has no true clock. Peripheral access costs one tick (one instruction) in the emulator, versus potentially dozens of bus cycles on actual hardware, trading temporal accuracy for instruction-based timing.

_Engineers solving similar clock-accuracy problems in emulators can find related write-ups on daily.dev._

### What hardware is needed to run a full virtual Oxide rack locally?

A full six-sled Voxel rack can run on a Minisforum MS-A2 mini-PC with a 32-thread AMD Ryzen 9 9955HX and 96GB RAM, launching in about 10 minutes via Oxide Helios as the OS plus a decently fast NVMe drive. The recommended minimum for running Voxel generally is 16+ threads, 64GB+ RAM, and a premium NVMe drive with onboard DRAM.

_Developers evaluating local emulation setups for infrastructure testing can compare notes on daily.dev._

## Community take

How the wider developer community reacted, aggregated from 1 discussion and 15 comments across hackernews (as of 2026-10-15).

**TL;DR:** Developers are impressed by the emulation stack and share their own homebrew attempts to replicate the Oxide experience, with discussion centering on whether a smaller 'racklette' form factor could ever be made available for homelabs.

**Sentiment:** 65% positive · 30% mixed · 5% skeptical

**The case for**

- Several people shared their own projects/guides for running the Omicron control plane or Helios on home hardware.
- The emulation approach is seen as a valuable testing pattern, echoing prior experience building similar simulation stacks for CI.
- Running the stack off a mini-PC farm instead of a laptop is seen as a practical workflow improvement.

**The pushback**

- Running the real Helios+Omicron stack on older bare-metal hardware was reported to idle at ~30% CPU with no clear explanation why.
- A smaller 'racklette' form factor isn't economical because the networking stack and switches are still scaled for a full rack.

**By community**

- hackernews (positive): Commenters are enthusiastic, sharing their own homelab emulation projects and wishing for a smaller, affordable rack form factor.

**Hottest debate:** Whether a scaled-down 'racklette' could realistically be made available for homelabs given networking/cost constraints.

**Open questions**

- Why did bare-metal Helios+Omicron idle at ~30% CPU on older hardware?
- Could a cheaper, smaller networking stack ever be built to make a racklette economical?

**Highlights**

> > When I joined Oxide last year, one of the first things I was introduced to was our racklettes; that is, smaller than average racks of four sleds and two switches each. These racklettes can be initialized and run just like a real rack, precisely because they are a real rack. Just not in any form factor it would be economical to sell. Probably shouldn't have mentioned this publicly ;) Every time an Oxide post comes up, there's people in the comments expressing fervent wishes for just this sort of thing. Now that they know it exists, I imagine the the voices asking to make it available for developers and homelabs will grow even louder.
> — [qchris on hackernews · 2 comments](https://news.ycombinator.com/item?id=50097387)

> They mentioned this on the podcast, the problem is that since they're development tools the networking stack is still scaled for a full rack with pretty beefy switches. Either they need to support a whole second network stack with firmware etc which they don't want to do now, or a racklette would cost way too much and almost nobody would pay the price.
> — [duttish on hackernews](https://news.ycombinator.com/item?id=50100024)

> FTA: At home, I run Voxel labs on a Minisforum MS-A2 mini-PC with a 32-thread AMD Ryzen 9 9955HX and 96GB RAM. I have 128 gb dd4 system sitting at home -  Emulation (mostly of clients nonsense) has been massively insightful over the last few years. And as a dev, being able to do all my work "not on my laptop" has been a major blessing. When prices normalize build a couple bulky machines and a have a stack of small and cheap (I have a bunch of 8th gen i5's I got used). You can do a lot (and give yourself room to grow/upgrade) on a pretty tight budget.
> — [zer00eyz on hackernews](https://news.ycombinator.com/item?id=50098711)

> Like 3/4 of my career was building stuff like this along with the software that ran in it for basically this exact use case. We even had it integrated into our CI. Spent upwards of a decade building things like this. One thing we realized was that we needed to be able to simulate upgrades like this. Lead to a lot of complexity but it was worth it. This testing was some of the most valuable and because we had it automated it really let us build better things faster and find issues and regressions and verify new functionality  :)
> — [happyPersonR on hackernews](https://news.ycombinator.com/item?id=50098580)

> Fun to see the emulation heading up the stack, I wish my employer could afford some real oxide racks! About 4 months ago, I booted helios + omicron on bare metal on a server in my homelab (following the YouTube here: https://www.youtube.com/watch?v=qwXtS0-r1uQ). Performance wasn't great on my old hardware (32cores, dual Xeon 2.6ghz, 256gb DDR4), and it used like 30% CPU while idle, but it was fun poking around and playing with the software while I could.
> — [pbnjay on hackernews · 1 comments](https://news.ycombinator.com/item?id=50097923)

**Source threads**

- [hackernews](https://news.ycombinator.com/item?id=50092423) · 116 points · 15 comments

## Similar posts on daily.dev

- [Rust-Written Redox OS Sees Improvements For Running On Real Hardware](https://daily.dev/posts/rust-written-redox-os-sees-improvements-for-running-on-real-hardware-kxl0txsw1) · Phoronix · 116 upvotes · 7 comments
- [I built a home lab on a PC that was headed to the recycling bin, and Proxmox made it free to run](https://daily.dev/posts/i-built-a-home-lab-on-a-pc-that-was-headed-to-the-recycling-bin-and-proxmox-made-it-free-to-run-9ww5peenc) · XDA Developers · 0 upvotes · 0 comments
- [We rebuilt the Linux microVM stack on Apple Silicon](https://daily.dev/posts/we-rebuilt-the-linux-microvm-stack-on-apple-silicon-2hmxgetth) · Encore · 21 upvotes · 2 comments
- [This Month in Redox](https://daily.dev/posts/this-month-in-redox-kxksov76v) · Lobsters · 7 upvotes · 0 comments

---

Tags: [#infrastructure](https://daily.dev/tags/infrastructure), [#rust](https://daily.dev/tags/rust)

[View this post on daily.dev](https://daily.dev/posts/virtual-oxide-labs-emulating-a-full-oxide-rack-wluncqpjs)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Virtual Oxide Labs: Emulating a Full Oxide Rack","url":"https://daily.dev/posts/virtual-oxide-labs-emulating-a-full-oxide-rack-wluncqpjs","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/virtual-oxide-labs-emulating-a-full-oxide-rack-wluncqpjs"},"datePublished":"2026-10-14T16:09:32.409Z","dateModified":"2026-10-15T08:52:54.208Z","description":"Oxide's Product Assurance team describes Voxel, a software emulation stack that lets them spin up a complete virtual Oxide rack without needing physical...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/0c1ddf3d07fa1495e27b236b58d6ae09?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/0c1ddf3d07fa1495e27b236b58d6ae09?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Oxide","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Oxide","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/a06afd0e0fbf40ec9d3128cd1c103021","url":"https://daily.dev/sources/oxide"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/virtual-oxide-labs-emulating-a-full-oxide-rack-wluncqpjs","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":19},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"infrastructure,rust","timeRequired":"PT11M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Oxide","item":"https://daily.dev/sources/oxide"},{"@type":"ListItem","position":3,"name":"Virtual Oxide Labs: Emulating a Full Oxide Rack"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/virtual-oxide-labs-emulating-a-full-oxide-rack-wluncqpjs#faq","mainEntity":[{"@type":"Question","name":"How does Oxide emulate the service processor microcontrollers for testing without real hardware?","acceptedAnswer":{"@type":"Answer","text":"Oxide built actual emulated Cortex-M7 and Cortex-M33 devices (replacing an older happy-path-only SpSim stub) that run on illumos and Linux, on x86 and ARM. Each device runs in a single thread and emulates instructions, time, and interrupts, then runs real Hubris firmware flashed directly to the emulated chip, communicating over an ordinary socket via the Management Gateway Service and IPCC. Teams building hardware-accurate test environments can follow similar emulation deep dives on daily.dev."}},{"@type":"Question","name":"How does sp-emu handle timing when emulating a microcontroller that expects real wall-clock cycles?","acceptedAnswer":{"@type":"Answer","text":"Instead of tracking wall time, sp-emu counts instructions against the kernel's reload value, since Hubris schedules off a 1ms SysTick but the emulator runs slower than real silicon and has no true clock. Peripheral access costs one tick (one instruction) in the emulator, versus potentially dozens of bus cycles on actual hardware, trading temporal accuracy for instruction-based timing. Engineers solving similar clock-accuracy problems in emulators can find related write-ups on daily.dev."}},{"@type":"Question","name":"What hardware is needed to run a full virtual Oxide rack locally?","acceptedAnswer":{"@type":"Answer","text":"A full six-sled Voxel rack can run on a Minisforum MS-A2 mini-PC with a 32-thread AMD Ryzen 9 9955HX and 96GB RAM, launching in about 10 minutes via Oxide Helios as the OS plus a decently fast NVMe drive. The recommended minimum for running Voxel generally is 16+ threads, 64GB+ RAM, and a premium NVMe drive with onboard DRAM. Developers evaluating local emulation setups for infrastructure testing can compare notes on daily.dev."}}]}
```

