this post was submitted on 03 Sep 2024
435 points (97.4% liked)

Linux

47337 readers
1244 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
 

Linux people doing Linux things, it seems.

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 82 points 2 weeks ago* (last edited 2 weeks ago) (1 children)

"It’s herding cats: introducing Rust effectively is one part coding work and ninety-nine parts political work..."

All software development in a team is. More like 20/80 or 40/60 if you're lucky.

[–] [email protected] 91 points 2 weeks ago (7 children)

Except in this case, it was a bunch of old C devs who aren't just resistant but openly hostile to change, and they'd rather bully people into silence than try to progress.

[–] [email protected] 83 points 2 weeks ago (1 children)
[–] [email protected] 3 points 2 weeks ago* (last edited 2 weeks ago)

God bless Douglas Adams

[–] [email protected] 7 points 2 weeks ago (2 children)

If I go to any of the teams I interact with who program their components in C++ and proposed Rust or anything else, I'd get a similar reaction. They're very good at C++ and they very rarely have memory and threading issues. 😂

[–] [email protected] 39 points 2 weeks ago* (last edited 2 weeks ago)

They very rarely have memory and threading issues

It's always the "rarely" that gets you. A program that doesn't crash is awesome, a program that crashes consistently is easy to debug (and most likely would be caught during development anyway), but a program that crashes only once a week? Wooo boy.

People vastly underestimate the value Rust brings by ensuring the same class of bugs will never happen.

[–] [email protected] 13 points 2 weeks ago* (last edited 2 weeks ago) (2 children)

They don’t get, that without memory issue resistant language, not a lot of new blood will be as good as them dealing with that stuff since they already have that solved in the language itself.

It is about making kernel development future proof, so that new devs keep on coming and don’t create massive security holes on the way.

Well this is how I understand it.

[–] [email protected] 25 points 2 weeks ago

And it's a bad argument anyway. You're only good at memory management until the first bug takes down production.

Rust isn't a panacea and certainly has problems, but eliminating an entire class of potentially very dangerous bugs is a very good argument.

[–] [email protected] 15 points 2 weeks ago (2 children)

Note that Rust does not "solve" memory management for you, it just checks whether yours is memory safe. Initially you might rely on the borrow checker for those checks, but as you become more and more used to Rust you'll start to anticipate it and write code that already safisfies it. So ultimately you'll still learn how to safely deal with memory management, just in a different way.

[–] [email protected] 7 points 2 weeks ago* (last edited 2 weeks ago)

Yeah all of the times I see Rust being described as "harder to learn" than C I just shake my head. It's like saying that it's easier to just fall off the cliff at the Grand Canyon instead of taking the path down. Any additional difficulty is because the language forces you to understand memory and pointers properly, instead of just letting you fuck around and find out.

[–] [email protected] 2 points 2 weeks ago

😃I see, nice to know

[–] [email protected] 6 points 2 weeks ago (1 children)

Several downvotes with zero comments to refute or discuss your point. Some devs don’t like you calling them out

[–] [email protected] 8 points 2 weeks ago

In a twist of delicious fate, my instance doesn't have downvotes. They get dropped before they even hit the database. So I'll never know or "feel ashamed" if they don't bother to take time to refute it. 🤣

[–] [email protected] -2 points 2 weeks ago (2 children)

Why isn't a Rust kernel being developed in parallel ?

[–] [email protected] 14 points 2 weeks ago (1 children)

I mean, it is. RedoxOS is just that. But it's not Linux and that means a lot of things.

[–] [email protected] 1 points 2 weeks ago

Maybe this is the fork in the road for something new. These circumstances were kind of how GNU/Linux was born, after all.

[–] [email protected] 2 points 2 weeks ago

Rust for Linux used to be developed in parallel to the mainline Linux before Linus Torvalds merged support in the main tree.

[–] [email protected] -5 points 2 weeks ago (1 children)

Ironically the majority of the rust memory management ruleset is called ownership, and they are unwilling to release any of it, and claiming all of it, so there's an out of memory error.

[–] [email protected] 4 points 2 weeks ago (1 children)

I didn't understood your criticism, what are they unwilling to release? What are they claiming all of? Why would ownership rules cause an OOM?

Sharing stack memory is a bad practice in C as well btw.

[–] [email protected] 2 points 2 weeks ago* (last edited 2 weeks ago)

Lol the out of memory error was a joke. A reference to that two people both trying to do the same thing will fill the heap since there’s unnecessary work.

I tried to make a code joke but it failed.

As far as what are they unwilling to release? Control. Ownership of any bit of the kernel they control

kernel maintainer Ted Ts'o, emphatically interjects: "Here's the thing: you're not going to force all of us to learn Rust."

Lina tried to push small fixes that would make the C code "more robust and the lifetime requirements sensible," but was blocked by the maintainer.

DeVault writes. "Every subsystem is a private fiefdom, subject to the whims of each one of Linux’s 1,700+ maintainers, almost all of whom have a dog in this race. It’s herding cats: introducing Rust effectively is one part coding work and ninety-nine parts political work – and it’s a lot of coding work."