prologic
8 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?
josephg
8 hours 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.
rtpg
7 hours ago
kinda sad cuz 10klines you really get into "well I can just sit there and bang at the problem by hand" territory.
Sounds like a fun project....
treffer
12 minutes ago
RedHat used to have a poster of the linux source code. Because some early version did fit a large sheet of paper.
Not sure if that's still available but it was a fun poster that I can highly recommend.
goalieca
7 hours ago
Linux at that point’s whole purpose was to bang at it by hand and learn something. There’s a ton of irony in having an LLM do it.
pydry
7 hours ago
so, slop
steveklabnik
8 hours 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.
dminik
8 hours 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.
Aurornis
7 hours 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.
BobbyTables2
5 hours ago
Longer isn’t always worse.
C code probably has no problem mixing and perverting int vs enum. Bitfields, structs, etc…
A rust program would define an enum and also implement handling of unexpected values (or consider them errors). Structs and bitfields would be more intentionally used.
Sure, Rust macros can avoid the boilerplate code, but overall line count may still increase a bit.
That said, I’d blame auto-generated code here as other commenters do.
binsquare
8 hours ago
I don't think it's rust
ls-a
8 hours ago
I like how everyone has a different theory as to why
icemanx
8 hours ago
because of AI
broknbottle
8 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.
3836293648
8 hours ago
Or, as others have already noted, it's only about 15k and the repo includes tools and test programs.
newtonianrules
8 hours 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.
sudb
8 hours ago
One of the tradeoffs of Rust is its verbosity I think (in return for which Rustaceans would say you gain explicitness).
coldtea
8 hours 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.
9dev
8 hours 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.
hughw
8 hours 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.
doginasuit
8 hours ago
This is why kotlin is so amazing, unusually concise and unusually clear in meaning.
rcxdude
7 hours ago
Rust does so a lot of abbreviation, though. fn, ptr, mut, etc.
skydhash
7 hours 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.
FpUser
6 hours ago
>"Rust may be verbose, but at least you can read it without turning into a cynical greybeard subject matter expert first."
Actually stuff like fn, mut etc. feels like mutilation to me. I guess it is highly individual.