ENGINEERING ★ 123 upvotes 2014

An Internet-Ready OS From Scratch in a Week – Rump Kernels on Bare Metal

Retrospective Overview & Key Insights

Distilled analysis of the business dynamics, operational challenges, and strategic takeaways:

In this technical retrospective (2014), @zdw shares practical architectural lessons learned from running, scaling, or migrating production software under lean constraints.

Core Principles for Independent Builders:
1
Defaulting to simpler architectures (such as monolithic frameworks, SQLite, or managed VPS) prevents early engineering bankruptcy.
2
Evaluating true compute and egress costs reveals that high cloud bills can often be slashed by 80%+ through judicious re-platforming.
3
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.

Community Discussions & Critical Reviews

High-signal perspectives, counter-arguments, and peer founder insights debated on Hacker News (23 total discussions):

JI @jingo Peer Contributor

Nice to see rump make the front page again.

The author's command of the English language easily trumps any deficiencies in multiplication. His little quips crack me up. "All that and a can of paint."

"Rump" is just a cool name in my opinion. I liked rump(3) before I even knew what it did. Naming and coming up with clever acronyms that are not annoying is difficult. Props to the author for that alone.

Whereas something like "Docker" makes me cringe. No matter how good it is. Some of these names people come up with are just terrible.

Anyway, we know that rump can be used for mounting filesystems (e.g., ones containg applications) that reside on USB sticks or other removable media. By using rump_ffs, there is no kernel panic on errors associated with the mounted filesystem. For that one use alone, nevermind its otherwise enormous potential, I'd say rump is worth the rumpification of the NetBSD source tree. It is not easy to crash the netbsd kernel, but filesystem errors are one way to do it, in my experience.

I think the author should have at least one article about rump that uses a certain song title from Exile on Main Street.

JJ @jjoonathan Peer Contributor

As someone who forcibly steered himself away from the temptation of a toy OS side-project due to the enormous time investment in drivers, syscall handlers, and so on that it would have taken to get working, I can't possibly thank you (or curse you) enough for calling rump kernels to my attention. So instead I offer a minor nitpick:

If you do the math (and bc did), there are 86400 seconds in a week.

you might want to check bc's math ;)

GI @girvo Peer Contributor

Oh oh oh oh! This is exactly what I've been looking for! And from what I can see it works on ARM too? Amazing! I've been working on a toy kernel in my spare time to learn bare metal stuff, and this will be perfect to give me a leg-up to doing real work with it.

M0 @m0th87 Peer Contributor

You need to expose a hypercall interface for this. Can anyone explain how that would be implemented, and does it restrict the kinds of kernels you can write? e.g. can I create a unikernel or microkernel with this?

OD @odc Peer Contributor

This makes me think of MirageOS but with more drivers and I don't have to learn OCaml.

HISTORICAL ERA Cloud & Mobile Era (2014–2019)
COMMUNITY SCORE ★ 123 points
TOTAL DISCUSSIONS 23 comments
TOPICS & TECH STACK:
More Retrospectives by @zdw