• patatahooligan@lemmy.world
    link
    fedilink
    arrow-up
    2
    ·
    2 days ago

    Does it have to be Linux?

    In order to be a viable general use OS, probably yes. It would be an enormous amount of effort to reach a decent range of hardware compatibility without reusing the work that has already been done. Maybe someone will try something more ambitious, like writing a rust kernel with C interoperability and a linux-like API so we can at least port linux drivers to it as a “temporary” solution.

    • ferric_carcinization@lemmy.ml
      link
      fedilink
      English
      arrow-up
      1
      ·
      24 hours ago

      I remember there being a bit of talk around a Linux driver compatibility layer for Redox in the future, but I can’t find anything about it, so I could be misremembering.

      What do you mean by “C interoperability and a linux-like API”, exactly?

      1. C is pretty much the standard for FFI, you can use C libraries with Rust and Redox even has their own C standard library implementation.
      2. Linux does not have a stable kernel API as far as I know, only userspace API & ABI compatibility is guaranteed.
      • patatahooligan@lemmy.world
        link
        fedilink
        arrow-up
        2
        ·
        22 hours ago

        C is pretty much the standard for FFI, you can use C libraries with Rust and Redox even has their own C standard library implementation.

        Right, but I’m talking specifically about a kernel which supports building parts of it in C. Rust as a language supports this but you also have to set up all your processes (building, testing, doc generation) to work with a mixed code base. To be clear, I don’t image that this part is that hard. When I called this a “more ambitious” approach, I was mostly referring to the effort of maintaining forks of linux drivers and API compatibility.

        Linux does not have a stable kernel API as far as I know, only userspace API & ABI compatibility is guaranteed.

        Ugh, I forgot about that. I wonder how much effort it would be to keep up with the linux API changes. I guess it depends on how many linux drivers you would use, since you don’t need 100% API compatibility. You only need whatever is used by the drivers you care about.