Linus Torvalds Speaks on the the divide between Rust and C Linux developers an the future Linux. Will things like fragmentation among the open source community hurt the Linux Kernel? We’ll listen to the Creator of Linux.

For the full key note, checkout: Keynote: Linus Torvalds in Conversation with Dirk Hohndel

The Register’s summary: Torvalds weighs in on ‘nasty’ Rust vs C for Linux debate

You are viewing a single thread.
View all comments
477 points

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.

permalink
report
reply
2 points

Good bot!

permalink
report
parent
reply

How is it that no matter what the damn topic is, Linus always seems to be the most level-headed in the room? I really admire him for that…

 


Edit: Lol, Linus, not Linux. Linus. xD

permalink
report
parent
reply
17 points

Linus did have emotion control issues and was not always completely rational, but he’s gone a long way towards being incredibly responsible to his child that powers the world.

Also, he long understands that Linux ain’t a hobby project, which some programmers still get to think.

permalink
report
parent
reply
44 points

C, C-like, or Rust

As always, Ada gets no respect.

permalink
report
parent
reply
20 points

Start the linuxa or alinux project and off you trot. Find a better name than I did here and you’ll be fine.

permalink
report
parent
reply
4 points

Adux

permalink
report
parent
reply
8 points

Ladux? Linda? +Linux, pronounced “Add a Linux” -> Ada Linux? LinLace?

permalink
report
parent
reply
4 points

Anixa for the win

permalink
report
parent
reply
1 point

This is how they want to frame it. C has footguns, therefore use Rust—instead of Rust is one of the options you could use.

permalink
report
parent
reply
3 points
*

I blame Ian Dury.

Possibly NSFW.

https://www.youtube.com/watch?v=1kFnHPHBcb4

permalink
report
parent
reply
5 points

Nor does Forth (which used to be a common choice for “first thing to bootstrap on this new chip architecture we have no real OS for yet”). Alas, they’re just not popular languages these days.

permalink
report
parent
reply
3 points

Have you actually ever used Ada? It’s like programming with handcuffs on.

permalink
report
parent
reply
1 point
*

I have played with Ada but not done anything “real” with it. I think I’d be ok with using it. It seems better than C in most regards. I haven’t really looked into Rust but from what I can gather, its main innovation is the borrow checker, and Ada might get something like that too (influenced by Rust).

I don’t understand why Linux is so huge and complicaed anyway. At least on servers, most Linux kernels are running under hypervisors that abstract away the hardware. So what else is going on in there? Linux is at least 10x as much code as BSD kernels from back in the day (idk about now). It might be feasible to write a usable Posix kernel as a hypervisor guest in a garbage collected language. But, I haven’t looked into this very much.

Here’s an ok overview of Ada: http://cowlark.com/2014-04-27-ada/index.html

permalink
report
parent
reply
5 points

I think it can be summed up to C is more mature than Rust so we wait for Rust to shine Rust can overcome some complex things in C and vice versa

permalink
report
parent
reply
5 points

Thank you for the write-up!!

permalink
report
parent
reply
21 points

Thank you for the summary!

permalink
report
parent
reply
63 points

This is a great summary. Thanks!

permalink
report
parent
reply
20 points

Doing the lord’s work, thank you.

permalink
report
parent
reply
77 points

I took notes for the benefit of anyone who doesn’t like their info in video form.

I love you.

permalink
report
parent
reply
30 points

So probably there will be some systems other than Linux that do use Rust

There’s one called Redox that is entirely written in Rust. Still in fairly early stages, though. https://www.redox-os.org/

permalink
report
parent
reply
23 points

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?

permalink
report
parent
reply
22 points

Zig is “c”, but modern and safe.

The big selling points compared to Rust are:

  • A better syntax
  • No hidden control flow
  • No hidden memory allocation
  • Really great interop with C (it’s almost as if you just include the C code as you would in a C code base…)
  • Fast compile time
  • it’s more readable
  • it’s simpler to learn

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/

permalink
report
parent
reply
8 points

Zig is a very new and immature language. It won’t be kernel-ready for at l’East another 10 years.

a better syntax

That’s pretty suggestive. Rust syntax is pretty good. Postfix try is just better for example.

Zig also uses special syntax for things like error and nullability instead of having them just be enums, making the language more complex and less flexible for no benefit.

Syntax is also not everything. Rust has extremely good error messages. Going through Zig’s learning documentation, half the error messages are unreadable because I have to scroll to see the actual error and data because it’s on the same line as the absolute path as the file were the error comes from

No hidden memory allocation

That’s a library design question, not a language question. Rust for Linux uses its own data collections that don’t perform hidden memory allocations instead of the ones from the standard library.

it’s more readable

I don’t know, Rust is one of the most readablelangueage for me.

Fast compile time

Is it still the case once you have a very large project and make use of comptime?

it’s simpler to learn

Not true. Because it doesn’t have the guardrails that rust has, you must build a mental model of where the guardrails should be so you don’t make mistakes. Arguably this is something that C maintainers already know how to do, but it’s also not something they do flawlessly from just looking at the bugs that regularly need to be fixed.

Being able to write code faster does not equate being able to write correct code faster.

Really great interop with C

Yes, because it’s basically C with some syntax sugar. Rust is a Generational change.

permalink
report
parent
reply
16 points

Zig is “c”, but modern and safe.

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.

So imagine if trying to fit in a C-like cousin failed

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.

permalink
report
parent
reply
3 points

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…

But that wasn’t about the syntax, but about the fastnesses, size and control, want it? Things that shouldn’t be much of an issue to Rust.

permalink
report
parent
reply
15 points

Zig is feasible for systems programming and some, (most notably, the Primeagen in one video) claim it should have gone into the kernel instead of Rust, but I don’t know Zig so I don’t feel qualified to comment beyond that.

permalink
report
parent
reply
33 points
*

Zig is indeed designed specifically for such tasks as system programming and interoperability with C code. However it is not yet ready for production usage as necessary infrastructure is not yet done and each new version introduces breaking changes. Developers recomend waiting version 1.0 before using it in any serious project.

permalink
report
parent
reply
21 points

On a tangential note, what does Linus used, Vi or Emacs?

permalink
report
parent
reply
3 points

my money is on vi or vi derivates.

permalink
report
parent
reply
21 points

He uses a version of Emacs called MicroEmacs.

I recall seeing his MicroEmacs configuration a while back when I was exploring options to start using Emacs.

permalink
report
parent
reply
4 points

MicroEmacs

In testing, to settle a bet by a rabid cult-of-vi peer, I opened a given set of files in each editor, each a day apart because I couldn’t be arsed to clear caches. This guy, otherwise a prince, was railing about emacs, but otherwise suffered days of waiting.

10/10 the memory usage by his precious vi was same-or-more than emacs.

There’s so many shared libs pulled in by the shell that all the fuddy doomsaying about bloat is now just noise.

I avoid vi because even in 1992 it was crusty and wrong-headed. 30 years on the hard-headed cult and the app haven’t changed.

I don’t see how microEmacs can improve on what we have by default, and I worry that the more niche the product is the harder it will be to find answers online. But I’m willing to be swayed if anyone can pitch its virtues.

permalink
report
parent
reply
6 points

TIL that version appears to be on the AUR: MicroEMACS/PK 4.0.15 customized by Linus Torvalds.

Last updated in 2014, it probably has serious cobwebs now. Even the upstream hasn’t been touched in 6 years.

permalink
report
parent
reply
4 points

If we can believe random strangers in the internet, then Linus uses a self maintained lighter version of Emacs, or has. Looks like Linus is an Emacs guy.

permalink
report
parent
reply
35 points

Good human.

permalink
report
parent
reply
9 points

vi versus emacs

You write “vi versus the world” funny.

permalink
report
parent
reply
1 point
*

it’s a polite way of saying, “intelligence vs emacs”

permalink
report
parent
reply
2 points

I use Micro except for when I forget to install it and can’t, at which point I use Nano

permalink
report
parent
reply
11 points

So probably there will be some systems other than Linux that do use Rust.

Isn’t there Redox OS?

Edit: yes, it’s still alive and kicking.

permalink
report
parent
reply
4 points

I think Linus mentioned Redox directly during the interview

permalink
report
parent
reply
1 point

what did he say about it?

permalink
report
parent
reply

Linux

!linux@lemmy.ml

Create post

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

Community stats

  • 9.5K

    Monthly active users

  • 3.2K

    Posts

  • 37K

    Comments