• spez@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    3
    ·
    10 months ago

    I have heard about Redox. What’s the difference between a microkernel and a kernel? Does redox use the linux kernel? Or has the guy written that in rust too?

    • dukk@programming.dev
      link
      fedilink
      arrow-up
      7
      ·
      edit-2
      10 months ago

      Well, think microkernels as the bare minimum. They give you just enough to write your own OS on top of that: only the bare essentials run in kernel space, whilst everything else runs in user space and has to communicate with the kernel. Compare this to a monolithic kernel, like the Linux kernel: here, the whole operating system is run in kernel space, which means that data doesn’t need to be moved between user and kernel space: this makes the OS faster, but at the cost of modularity. Redox doesn’t use the Linux kernel, it uses its own microkernel written in Rust.

      Edit: A good example would be driver. In a microkernel, these run separately from the kernel and interact with it when needed. In a monolithic kernel, these drivers would be included in the kernel itself. They both have their pros and cons: if you’re interested, feel free to look it up.

      • jcg@halubilo.social
        link
        fedilink
        arrow-up
        3
        ·
        10 months ago

        Does that mean on a microkernel you’d essentially have double the amount of code execution for a driver (i.e. driver makes a call to the kernel, kernel verifies and then executes rather than the driver just executing the call) meaning double the latency? Seems like it would cause a lot of problems.

        • ferret@sh.itjust.works
          link
          fedilink
          English
          arrow-up
          3
          ·
          10 months ago

          Nowhere near double, the kernel can be extremely sparse on it’s side, but there is a small latency hit

      • spez@sh.itjust.works
        link
        fedilink
        English
        arrow-up
        1
        ·
        10 months ago

        thanks for the explanation! I was thought it had something to do with linux since the lead dev works for System76.

        • dukk@programming.dev
          link
          fedilink
          arrow-up
          1
          ·
          10 months ago

          No problem! Actually, System76 is currently working on rewriting the COSMIC desktop in Rust (or really, just writing a new DE in Rust). It’s a pretty ambitious project that should hopefully get released some time this year. I wouldn’t be surprised if the lead redox dev was working on it too: low-level Rust knowledge is exactly what they need.

    • vrighter
      link
      fedilink
      arrow-up
      3
      ·
      10 months ago

      lots and lots more IPC. So lots and lots of context switches. So worse performance