Bare Metal Rust 2: Retarget your compiler so interrupts are not evil
In this technical retrospective (2015), @dbaupp shares practical architectural lessons learned from running, scaling, or migrating production software under lean constraints.
Core Principles for Independent Builders:
Defaulting to simpler architectures (such as monolithic frameworks, SQLite, or managed VPS) prevents early engineering bankruptcy.
Evaluating true compute and egress costs reveals that high cloud bills can often be slashed by 80%+ through judicious re-platforming.
Code you write at 2 AM as a solo engineer must be easy to debug six months later without complex microservice dependencies.
Community Debate Themes:
HN engineers debated the tradeoffs between cloud convenience and raw server economics, database indexing strategies, and resisting premature architectural complexity.
CATEGORY Frugal Engineering →
HISTORICAL ERA Cloud & Mobile Era (2014–2019)
COMMUNITY SCORE ★ 140 points
TOTAL DISCUSSIONS 16 comments
I was wondering, would the monolitic/micro-kernel discussion be different today due to userspace services being able to use all the fancy cpu extensions, or would that still disappear compared to the cost of ring switching? Now that filesystems are more complex databases, maybe extensions could help with fast indexing/checksumming.
I've been playing with Rust for os dev and emulation for a little bit. It's great to have others who are significantly more well-versed in this field sharing their knowledge with those of us who are struggling through it.
There's been a lot of really neat stuff focusing on beginners in the Rust OSDev space lately. Glad to see even more posts about it!
Can you just not use the first 128 bytes of the stack on a interrupt?