Linux 0.11 rewritten in idiomatic Rust, boots in QEMU
64 points by arto 3 hours ago | 48 comments

prologic 2 hours ago
I just compared this Rust implementation against the original C sources. Some ~50k SLOC (Rust) compared to maybe ~8-12k SLOC of C (depending on if you count headers). Why is the Rust implementation so much more complex and onerous?
reply
josephg 56 minutes ago
If the readme is anything to go by, this doesn't look like it was written by hand. Codex if I were to guess. I wonder the coding agent "improved" the code.

The readme hints at the prompt:

> It keeps the original system's semantics — what it does — while rethinking how it's expressed: stronger types, clearer module boundaries, idiomatic abstractions everywhere.

"idiomatic abstractions" would certainly bloat the line count.

reply
steveklabnik 31 minutes ago
For fun, I decided to take a look at a random syscall: fork.

* https://github.com/yuan-xy/Linux-0.11/blob/master/kernel/for...

* https://github.com/Poseidon-fan/linux-0.11-rs/blob/420152fdf...

The Rust is slightly shorter, though it also isn't organized in exactly the same way. The code isn't that different overall, creating and copying some data structures around, as you'd expect for a fork implementation of this vintage.

Maybe I got lucky, but I would expect that it's more of what other people said: this repository includes far more than the kernel.

reply
dminik 58 minutes ago
According to this breakdown: https://ghloc.vercel.app/Poseidon-fan/linux-0.11-rs?branch=m...

It's about 15k lines of code for the kernel and the rest is various utilities, libraries and programs that can run on the kernel.

reply
dminik 50 minutes ago
Also, after a quick look at a few files, the rust version appears to be much more commented. Not sure if that makes up the extra several thousand lines, but surely counts accounts for some of that.
reply
cozzyd 44 minutes ago
SLOC should omit comments no?
reply
Aurornis 7 minutes ago
This repo contains a lot of extra tools and userspace programs.

The majority of Rust the code in the repo is not for the Linux kernel.

reply
sudb 2 hours ago
One of the tradeoffs of Rust is its verbosity I think (in return for which Rustaceans would say you gain explicitness).
reply
coldtea 47 minutes ago
Verbosity compared to C?

Only in extra syntax constructs.

But Rust can absolutely do the same thing as C in fewer lines, especially when comparing each's standard features like string support.

reply
9dev 35 minutes ago
I absolutely despise that C convention if abbreviating absolutely every single thing as much as possible. Yeah yeah, that was necessary back in the day when memory was scarce and editors were awful, but come on those days were almost half a century ago by now.

Rust may be verbose, but at least you can read it without turning into a cynical greybeard subject matter expert first.

reply
hughw 28 minutes ago
I've found that the less real estate my eyes need to scan, the faster I understand the code, even if its more tersely expressed and requires a little decoding. Relatedly, I've come to appreciate a line of code that does the thing rather than one that calls a function whose name might express what the function does, but I might need to go find it and and read its code. That works well if your language supports a terse expression. So I prefer you tersely multiply/reduce a list rather than call a function, but some languages just aren't friendly to that and demand verbosity.
reply
doginasuit 12 minutes ago
This is why kotlin is so amazing, unusually concise and unusually clear in meaning.
reply
skydhash 4 minutes ago
I kinda love it, because verbosity means you have to rely on completion and that has a negative impact on retention.

And the terseness is good when you’re familiar with the code.

reply
binsquare 2 hours ago
I don't think it's rust
reply
ls-a 34 minutes ago
I like how everyone has a different theory as to why
reply
icemanx 36 minutes ago
because of AI
reply
broknbottle 2 hours ago
More LoC means easier to quantify the impact when telling a story. The actual code quality may be lower but that’s the schmuck’s problem that comes after once promo is acquired.
reply
3836293648 54 minutes ago
Or, as others have already noted, it's only about 15k and the repo includes tools and test programs.
reply
newtonianrules 58 minutes ago
I’ve never worked with Silicon Valley people before now, and now I get why so many projects are abandoned and rewritten when they could just use open source. The whole culture is promo driven.
reply
mjhay 43 minutes ago
I used to like rust, but I feel like I’m being Pavlovian-conditioned to recoil at its mention now.
reply
Aurornis 3 minutes ago
This is Linux 0.11 from 1991.

Someone is having fun with a side experiment that has no practical real-world implications. If you're not interested in Rust you can ignore it. This stuff is supposed to be fun and we should celebrate when other people are doing fun, pointless things like this.

reply
Krutonium 41 minutes ago
I still like it. People are having fun playing with their toy and tool. I have no problem with that.
reply
mjhay 36 minutes ago
I shouldn’t have been so negative. I still very much like Rust, but hearing about these AI rewrites constantly is tiresome.
reply
fsckboy 37 minutes ago
People are having fun with AI coding, and I have no problem with that, but I am sick of hearing about it.
reply
block_dagger 31 minutes ago
I have the opposite feeling; I am liking Rust more and more and thinking most of the world's C code should be rewritten. It seems like a sweet spot of enforced memory safety, performance, and human/agent readability.
reply
skor 20 minutes ago
why rewrite if you can check for and fix bugs? If you are thinking of AI fixing bugs is less expensive
reply
ImaCake 9 minutes ago
I guess ask the bun people why they translated from zig to rust. I think it was essentially because rust guarantees a set of bugs can't exist so over medium to long term timeframes you end up with less technical debt.
reply
minimaxir 8 minutes ago
Memory bugs are unknown unknowns that AI may or may not catch. There's net-present-value in switching to a language where certain types of memory bugs are impossible.
reply
minimaxir 35 minutes ago
Of all the tools in software engineering to be overpopular and overused, Rust is an instance where that is a very good thing.

Atleast people aren't AI rewriting things into PHP.

reply
vlod 31 minutes ago
Be careful, that sounds almost like a dare...
reply
jagged-chisel 10 minutes ago
How to the binary sizes compare? An original Linux 0.11 kernel vs. this oxidized version.
reply
drnick1 13 minutes ago
How does the performance compare?
reply
richard_todd 25 minutes ago
Honestly -- and I know this project is just a toy/fun experiment -- with modern AI, I think this is the correct approach to Rust-ifying projects. Just fork it and do an AI-assisted wholesale conversion, and run in parallel for a while to make sure all the regressions are found. Then you can compare to the original for benefits and drawbacks, and you get a more idiomatic code-base... instead of trying to convince longstanding projects to go into a half-rust Frankenstein model, which is what I usually see.
reply
devy 41 minutes ago
Docs full of emojis, this is another AI slop?!

Tangential note: there is already a community effort[1] to rewrite GNU commandline tools into Rust and Canonical shipped the rust version of the /bin/utils in Ubuntu 26.04 Resolute Raccoon by default[2] in their "oxidizing" initiative.[3]

PS: Linus Torvalds has confirmed that the existing Linux kernel will never be fully rewritten in Rust.[4] Let's see how well that statement age.

[1]: https://github.com/uutils/coreutils

[2]: https://canonical.com/blog/canonical-releases-ubuntu-26-04-l...

[3]: https://discourse.ubuntu.com/t/carefully-but-purposefully-ox...

[4]: https://news.ycombinator.com/item?id=41355731

reply
lioeters 10 minutes ago
As soon as Linus retires, there will be an initiative to rewrite the Linux kernel in Rust assisted by LLMs. Either that, or some company will fund a fork before that. Imagine, man pages full of emojis!
reply
steveklabnik 8 minutes ago
Linus is supportive of Rust and uses LLMs.

The reasons to not have a full-Rust Linux kernel are over more important, real engineering things. (Platform support being the big one.)

reply
lioeters 4 minutes ago
[dead]
reply
broodbucket 29 minutes ago
I hate that 5 years ago I'd see a headline like this and think it was awesome, and now it's just "look at what someone's spent tokens on today"
reply
encyclopedism 2 minutes ago
Written by AI and hence not nearly as impressive at all. Such a shame because I thought someone had spent real time and effort into producing this. The output is commoditised and therefore neither important or precious. Damn near anyone could repeat it.
reply
xqb64 2 hours ago
Slopware?
reply
bryanlarsen 54 minutes ago
Presumably, but exactly the sort of project where slopware is appropriate. Nobody is expected to use it.
reply
computerdork 27 minutes ago
Haha, well, maybe a couple dozen grad students creating some unusual extension to the os:)
reply
irishcoffee 40 minutes ago
What is “un-idiomatic” rust?
reply
steveklabnik 34 minutes ago
With a project like this, I would expect that "idiomatic Rust" means "attempting to write as much safe code as is reasonably possible" rather than "translating the C to Rust directly".
reply
rvz 2 hours ago
Nice project, with so many emojis at the start of every title of the README.

Wonder who could have done that?

reply
xyst 2 hours ago
rewriting {PROGRAM} in rust is so fetch.
reply
sajithdilshan 56 minutes ago
Stop trying to make fetch happen
reply
tialaramex 34 minutes ago
They actually did make fetch happen. Once upon a time it was usual in Javascript to use a thing called XMLHttpRequest which despite its name isn't actually for XML, it's just that XML was a big deal when it was created. The replacement API for making normal HTTP requests is just named fetch, and it was "new" so long ago that popular web browsers had versions like 40 rather than 150.

That movie is so old it's entirely possible that it's just named "fetch" because that's a reasonable thing to call this feature and so it's a coincidence, but I do like to think that at least some people at WHATWG were quoting Mean Girls...

reply
sscaryterry 29 minutes ago
Wait? You guys have fetch?
reply