While Linux 7.0 is the next kernel version solely over Linus Torvalds’ numbering preference, there is a notable symbolic change that was sent in overnight for this new kernel merge window: formally concluding the “Rust experiment” with upstream kernel developers now in acceptance that Rust for the Linux kernel is here to stay.

The patch was talked about back in December that the Rust experiment is over and it’s here to stay. There are already uses for Rust in production environments, some Linux distributions shipping with Rust kernel code, and millions of Android devices also using it.

  • TrivialBetaState@sopuli.xyz
    link
    fedilink
    arrow-up
    17
    ·
    12 hours ago

    Can someone explain to me why Rust has been so controversial for the GNU/Linux kernel? One thing that I personally don’t like is that the equivalent Rust-made (equivalent) GNU tools are licensed under MIT (or Apache? - something permissive like that) instead of GPL. If they were under GPL, I’d be more than happy. But since the kernel is under GPL regardless of C or Rust, what is the reason for the backlash? Sounds like a very promising language indeed.

    • ILikeBoobies@lemmy.ca
      link
      fedilink
      arrow-up
      19
      ·
      edit-2
      4 hours ago

      Most common reason I saw was not wanting mixed languages across the code base.

      If you’re a Rust maintainer and you’re given a C patch (or reverse) then what do you do with it/confirm it’s not bringing other bugs.

      Other issues are that it’s heavier, hurts compatibility, and doesn’t function like C.

    • Jankatarch@lemmy.world
      link
      fedilink
      arrow-up
      11
      ·
      5 hours ago

      The main real argument is that if new contributors write code and then leave for other projects then old contributors still have to maintain that code, a task that gets really hard when code is written in a different paradigm entirely.

    • lbfgs@programming.dev
      link
      fedilink
      arrow-up
      6
      ·
      5 hours ago

      One big practical criticism is that it requires a different compiler which is supported on far fewer platforms than GCC

    • wonderingwanderer@sopuli.xyz
      link
      fedilink
      arrow-up
      5
      arrow-down
      1
      ·
      12 hours ago

      What’s the advantage of GPL? As far as I’m aware MIT and Apache are both FOSS. But I’m new to this and still learning.

      I don’t know what the big deal about Rust is. It seems like a cool language to me…

      • PlexSheep@infosec.pub
        link
        fedilink
        arrow-up
        4
        ·
        1 hour ago

        MIT: do whatever you want, I don’t care

        GPL: You can modify this freely, but your product must also be FOSS if you modify this.

      • TrivialBetaState@sopuli.xyz
        link
        fedilink
        arrow-up
        19
        ·
        12 hours ago

        GPL enforces that all derivatives are FOSS and GPL as well. With permissive licenses, like MIT and Apache, a company is free to take the code, change/develop it further (or leave it as is) and make it closed-sourced without sharing anything with anyone. Regarding Rust, I am with you. Hence my question.

        • wonderingwanderer@sopuli.xyz
          link
          fedilink
          arrow-up
          4
          arrow-down
          2
          ·
          11 hours ago

          I see. That makes sense.

          So if the kernel were written in a language licensed under GPL, for instance, Ubuntu would either have to ditch their proprietary blobs or make their own kernel?

          If I had to guess, the only reason Rust might be controversial to some people is probably because they’re used to C and likely set in their ways. Someone who’s been programming since the 80s and doesn’t want to learn a new language cause maybe they’ll feel like a newbie again and can’t be smug about knowing every possible command in C anymore. Just a guess…

          • [object Object]@lemmy.world
            link
            fedilink
            arrow-up
            3
            ·
            edit-2
            2 hours ago

            The kernel is licensed under GPL, specifically only version 2. And it can’t be relicensed, since it contains code from many people. The poster above is complaining about command-line utilities that are being rewritten in Rust.

            Binary-only modules can be used with the kernel, because they don’t use the kernel’s source, only the API or a GPL middleware is made that is compiled with kernel header files, but provides an intermediary API for the binaries. I’m not quite versed in what exactly is allowed and prohibited by GPL.

            Edit: Linux-syscall-note explicitly places the boundary of ‘derivative works’ at syscalls — so userspace programs aren’t considered derivative and don’t have to be licensed under GPL, but kernel modules are.

          • TrivialBetaState@sopuli.xyz
            link
            fedilink
            arrow-up
            7
            ·
            11 hours ago

            I’m pretty sure that code written in any language can be licensed under the GPL. That’s why I cannot understand the backlash against Rush for the Kernel.

            • Kushan@lemmy.world
              link
              fedilink
              English
              arrow-up
              3
              arrow-down
              1
              ·
              5 hours ago

              I don’t understand the backlash against using an MIT/Apache licence at all. Those licenses are far more permissive than GPL but completely compatible.

              The only downside is that someone could fork the code and close source it, but the original code still remains available and that’s where the community will stay.

              • FooBarrington@lemmy.world
                link
                fedilink
                arrow-up
                3
                ·
                3 hours ago

                It’s pretty much undeniable that the GPL has been a massive driving force behind companies giving back to projects, and it’s similarly undeniable that MIT-licensed projects have fewer comparable contributions.

                Sure, the community can stay on the open version, but it will still be mostly taking without giving back.

              • TrivialBetaState@sopuli.xyz
                link
                fedilink
                arrow-up
                4
                ·
                5 hours ago

                A lot of things can go wrong. A company can take the free code, change it slightly to work only with a proprietary file type and then use their resources to promote their version and make their proprietary filetype and proprietary program the industry standard. Unfortunately this sounds too familiar. There are even cases that the filetype is an open standard but obfuscated to make it impossible for anyone (including the original FOSS) to open/save it.

              • [object Object]@lemmy.world
                link
                fedilink
                arrow-up
                2
                ·
                4 hours ago

                Iirc GPL is how we have OpenWRT. Because a company used Linux in their routers, but forgot to release the code initially until sued by FSF or whomever.

                Imagine, for example, that your phone has forks of Linux utilities with mysterious closed-source functionality added here and there. And you’d need to reverse-engineer that functionality to have LineageOS and such, instead of just taking the source-code.

                Proprietary apps are prone to enshittification, and permissive licenses allow vendors to build their proprietary software on open-source software without giving anything in return.

  • kbal@fedia.io
    link
    fedilink
    arrow-up
    44
    ·
    21 hours ago

    Okay fine, guess I really do need to learn (the rest of) Rust now.

  • lambalicious@lemmy.sdf.org
    link
    fedilink
    English
    arrow-up
    17
    ·
    20 hours ago

    Well, recalling from my experience with a lot of software products, they all tend to rust by around or shortly before version 7, so…

    • mech@feddit.org
      link
      fedilink
      arrow-up
      5
      ·
      5 hours ago

      Protip: To keep your software project fresh, add a 0. in front of the version number.
      That way it never gets old, plus you can make breaking changes at any time.

      • Lembot_0006@programming.dev
        link
        fedilink
        arrow-up
        3
        arrow-down
        57
        ·
        19 hours ago

        I don’t see any future for Rust and forcing such ugly language in the kernel might lead to problems.

        Linus is to blame here more than Rust. C++ would be much more straightforward and welcomed by the kernel community update from C. And Linus is afraid of C++.

        Rust will kill Linux if it persists there long enough .

        • [object Object]@lemmy.world
          link
          fedilink
          arrow-up
          2
          arrow-down
          1
          ·
          4 hours ago

          Solid bait there. 🍿

          “C++ would be straightforward and welcomed”, amazing lmao. How do you even come up with this.

        • arcterus@piefed.blahaj.zone
          link
          fedilink
          English
          arrow-up
          30
          arrow-down
          2
          ·
          17 hours ago

          I don’t see any future for C++ and forcing such ugly language in the kernel might lead to problems.

          Lembot_0006 is to blame here more than C++. Zig/D/Hare/whatever would be much more straightforward and welcomed by the kernel community update from C. And Lembot_0006 is afraid of Rust.

          C++ will kill Linux if it persists there long enough .

          • wonderingwanderer@sopuli.xyz
            link
            fedilink
            arrow-up
            4
            ·
            12 hours ago

            I don’t see any future for Zig/D/Hare and forcing such ugly language in the kernel might lead to problems.

            Arcterus is to blame here more than Zig/D/Hare. Fennel would be much more straightforward and welcomed by the kernel community update from C. And Arcterus is afraid of Fennel.

            Zig/D/Hare will kill Linux if it persists there long enough .

            • lad@programming.dev
              link
              fedilink
              English
              arrow-up
              1
              ·
              3 hours ago

              Sounds interesting:

              Fennel is a programming language that brings together the simplicity, speed, and reach of Lua with the flexibility of a lisp syntax and macro system.

        • RustySharp@programming.dev
          link
          fedilink
          arrow-up
          43
          arrow-down
          2
          ·
          18 hours ago

          I don’t see any future for seatbelts, and forcing such an ugly implement in cars might lead to problems.

          Seatbelts will kill cars if it persists there long enough.

          • olympicyes@lemmy.world
            link
            fedilink
            English
            arrow-up
            13
            ·
            15 hours ago

            The upper middle class family of a childhood friend refused to wear seatbelts (1980s) because mom was injured by her seatbelt in an accident. I remember being surprised at their approach to risk reduction.

          • ByteJunk@lemmy.world
            link
            fedilink
            arrow-up
            16
            arrow-down
            1
            ·
            18 hours ago

            I don’t see any future for halos in F1 cars, and forcing such an ugly implement in cars might lead to problems.

            Halos will kill F1 if they persist there long enough.

        • tyler@programming.dev
          link
          fedilink
          arrow-up
          35
          arrow-down
          1
          ·
          19 hours ago

          This has to be one of the most brain dead comments I’ve read about Linux…. ever.