this post was submitted on 18 Sep 2024
287 points (97.7% liked)
Linux
48069 readers
811 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
- Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.
- No misinformation
- No NSFW content
- No hate speech, bigotry, etc
Related Communities
Community icon by Alpár-Etele Méder, licensed under CC BY 3.0
founded 5 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
I took notes for the benefit of anyone who doesn't like their info in video form. My attempt to summarize what Linus says:
He enjoys the arguments, it's nice that Rust has livened up the discussion. It shows that people care.
It's more contentious than it should be sometimes with religious overtones reminiscent of vi versus emacs. Some like it, some don't, and that's okay.
Too early to see if Rust in the kernel ultimately fails or succeeds, that will take time, but he's optimistic about it.
The kernel is not normal C. They use tools that enforce rules that are not part of the language, including memory safety infrastructure. This has been incrementally added over a long time, which is what allowed people to do it without the kind of outcry that the Rust efforts produce by trying to change things more quickly.
There aren't many languages that can deal with system issues, so unless you want to use assembler it's going to be C, C-like, or Rust. So probably there will be some systems other than Linux that do use Rust.
If you make your own he's looking forward to seeing it.
Not a programmer whatsoever but I've heard about Zig and people comparing it to Rust, what's the deal with it?
Zig is "c", but modern and safe.
The big selling points compared to Rust are:
The syntax is really close to the C language; any C programmer can pick up Zig really fast.
IMO Zig is a far better choice to go in the kernel than Rust.
Linux has tried to include CPP in it, and it failed.
So imagine if trying to fit in a C-like cousin failed, how far they are to fit an alien language like Rust...
For more information: https://ziglang.org/learn/why_zig_rust_d_cpp/
Zig is safer than C, but not on a level that is comparable to Rust, so it lacks its biggest selling point. Unfortunately just being a more modern language is not enough to sell it.
C++ was not added to Linux because Linus Torvalds thought it was an horrible language, not because it was not possible to integrate in the kernel.
Zig has other selling points, that are arguably more suitable for system programming. Rust's obsession with safety (which is still not absolute even in rust) is not the only thing to consider.
It is absolue in safe Rust, aka 99% of Rust code.
UB is only one class of error though. I get nervous when people talk about re-writing battle hardened code which has been used - and reviewed by the community - for decades because there are going to be many subtleties and edge cases which are not immediately apparent for any developer attempting a re-implementation.
Like sudo that has had zero days lurking for 10 years?
I'm not advocating for reimplementing stuff for no good reason though.
You mean old code that has bugs that are no just being discovered. Battle hardened code and many eyeballs means nothing.