Linux people doing Linux things, it seems.

  • r00ty@kbin.life
    link
    fedilink
    arrow-up
    19
    ·
    2 months ago

    Here’s what I think. Both opinions are correct.

    Rust is sufficiently different that you cannot expect C developers to learn rust to the level they have mastered C in order to be working at the kernel level. It’s not going to happen.

    I don’t really know too much about rust. Maybe one day I’ll actually mess around with it. But the one time I looked at a rust git repo I couldn’t even find where the code to do a thing was. It’s just different enough to be problematic that way.

    So I think probably, the best way IS to go the way linus did. Just go ahead and write a very basic working kernel in rust. If the project is popular it will gain momentum.

    Trying to slowly adapt parts of the kernel to rust and then complain when long term C developers don’t want to learn a new language in order to help isn’t going to make many friends on that team.

    • technotony@sh.itjust.works
      link
      fedilink
      arrow-up
      5
      ·
      2 months ago

      RedoxOS! There’s been solid progress too, beyond just having a functional microkernel, they have many of the userspace tools/their version of coreutils, even a desktop environment already mostly implemented!

      My understanding is that it shouldn’t be too bad to port some other things over as well. The main issue I had was just the lack of drivers, especially since it’s still tricky even on Linux, and the microkernel architecture (though more secure) also means there’s no way to reuse any of those from Linux

      • Jay🚩@lemmy.ml
        link
        fedilink
        arrow-up
        1
        ·
        2 months ago

        Same with Ironclad kernel and OS written in Ada Programing language. Nice to see these systems development

    • witx@lemmy.sdf.org
      link
      fedilink
      arrow-up
      4
      ·
      edit-2
      2 months ago

      But that’s the thing where you are wrong. They clearly state they don’t want C developers to learn Rust. In the particular video posted he was saying “I want you to explain to me how this particular API works so that I can do it”

      The concerns about who fixes what on a merge when the C code breaks Rust code, are valid, but that’s easily fixed by gathering with the Rust developers, explaining the changes and letting them fix it.

    • ZILtoid1991@lemmy.world
      link
      fedilink
      arrow-up
      1
      ·
      2 months ago

      That’s why I often recommend D instead.

      Has a much more C-style syntax, except much more refined from the years of hindsight. The catch? No corporate backing, didn’t jump on the “immutable by default” trend when functional programming evangelists said for loops are a bad practice and instead we should just write recursive functions as a workaround, memory safety is opt-in (although “safe by default” can be done by starting your files with @safe:), some of the lead devs are “naive centrists” who want to “give everyone a chance at coding even if they’re bad people (nazis)”, implementing new changes to the lang has slowed down significantly up until the departure of Adam D Ruppe and the drama surrounding it, etc.

      • Giooschi@lemmy.world
        link
        fedilink
        English
        arrow-up
        1
        ·
        2 months ago

        “safe by default” can be done by starting your files with @safe:

        Last time I heard about that it was much more limited than Rust, for example it even disallowed taking references to local variables. Has something changed since then?

        • ZILtoid1991@lemmy.world
          link
          fedilink
          arrow-up
          1
          ·
          2 months ago

          D has many memory safety features. For local variables, one should use pointers, otherwise ref does references that are guaranteed to be valid to their lifetime, and thus have said limitations.

    • Giooschi@lemmy.world
      link
      fedilink
      English
      arrow-up
      1
      ·
      2 months ago

      But the one time I looked at a rust git repo I couldn’t even find where the code to do a thing was.

      IMO that tells more about how the project was organized and names things than the language used.

      So I think probably, the best way IS to go the way linus did. Just go ahead and write a very basic working kernel in rust. If the project is popular it will gain momentum.

      As the other commenter pointed out, there’s Redox. The issue is that this completly disregards an incremental approach: you have to rewrite everything before it comes usable, you can’t do it piece by piece. Currently the approach of Rust for Linux is not even to rewrite things, but to allow writing new drivers in Rust.

      Trying to slowly adapt parts of the kernel to rust and then complain when long term C developers don’t want to learn a new language in order to help isn’t going to make many friends on that team.

      Have you seen the conference video? That’s not just refusal to learn a new language, it’s open hostility. And it’s not the only instance, for example Asahi Lina also reported unreasonable behaviour by some maintainers just because she wrote Rust code, even when Rust was not involved.