• Norgur@kbin.social
    link
    fedilink
    arrow-up
    33
    ·
    11 months ago

    So I watched a few guides and did all that… what now? Would you think a shopping list app is doable for my knowledge after this? It looks really hard compared to NorgurOS… :(

    • spez@sh.itjust.works
      link
      fedilink
      English
      arrow-up
      4
      ·
      11 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
        link
        fedilink
        arrow-up
        7
        ·
        edit-2
        11 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
          ·
          11 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
            ·
            11 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
          ·
          11 months ago

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

          • dukk
            link
            fedilink
            arrow-up
            1
            ·
            11 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.

  • hypnotic_nerd
    link
    fedilink
    English
    arrow-up
    22
    ·
    11 months ago

    Very small projects 😂 after mastering it try building whooping to-do app in rust!

  • AzureInfinity@leminal.space
    link
    fedilink
    arrow-up
    19
    ·
    edit-2
    11 months ago

    This actually wrong way to do it, here the pro way:

    1.Start writing a game/app/engine/os.

    2.Write dozen utility packages for it.

    3.Write high-level packages for #2

    4.Write a “light-weight” version of #3 when disgusted with bloat of #3.

    5.repeat #2 with more modern rust code.

    • porgamrer
      link
      fedilink
      arrow-up
      8
      ·
      11 months ago

      you have been looking at my private github repos and are clearly a witch

    • Anders429
      link
      fedilink
      arrow-up
      1
      ·
      11 months ago

      Don’t forget to upload them all to crates.io. Add them to the list of useless crates that no one will ever use.

    • dejected_warp_core@lemmy.world
      link
      fedilink
      arrow-up
      1
      ·
      11 months ago

      I’m in this picture and I don’t like it. Also, you forgot:

      1.5 Get completely wrapped around the axle by writing tooling to support said game engine art assets.

    • dukk
      link
      fedilink
      arrow-up
      3
      ·
      11 months ago

      I love how simple and small scale splitting an atom sounds. Then you get to doing it…

      • jasory
        link
        fedilink
        arrow-up
        3
        ·
        11 months ago

        Splitting individual atoms isn’t that difficult, you just need a neutron supply and some material (paraffin wax works) to slow them down and it will eventually happen at least with uranium. Doing it reliably and efficiently is a much harder problem.

  • UnfortunateShort@lemmy.world
    link
    fedilink
    arrow-up
    3
    ·
    11 months ago

    It’s a matter of perspective. If the game is Tic-Tac-Toe and the system a basic RISC SOC with open firmware this might be a fun project :P

  • Aux@lemmy.world
    link
    fedilink
    arrow-up
    1
    ·
    11 months ago

    To be fair, a simple operating system project is not that hard to implement.

    • dejected_warp_core@lemmy.world
      link
      fedilink
      arrow-up
      3
      ·
      edit-2
      11 months ago

      Point in case: Ben Eater recently uploaded a video where his “BIOS” consists of two I/O functions and compiles into less than 250 bytes. Double that if you count his port of WOZMON. We can argue later if that constitutes an operating system - I mean, it’s not POSIX compliant but it does operate.

      https://www.youtube.com/watch?v=0q6Ujn_zNH8

      Edit: watch that space. The venerable MS BASIC is on the way after this.