• uis@lemm.ee
    link
    fedilink
    arrow-up
    2
    ·
    1 month ago

    take a look at FreeRTOS

    AFAIK FreeRTOS always ran drivers in kernel.

    As long as there’s some processing RAM and sufficient ROM, I’m sure that it can be crammed in there via firmware

    You can’t even emulate MPU without MPU. The only way is running bytecode, which is still not context switching.

    Some madlads forked Linux to get it to work without an MMU, even getting it merged into the mainline kernel: https://en.m.wikipedia.org/wiki/ΜClinux

    You are correct here. Should have said MPU instead.

    • nickwitha_k (he/him)@lemmy.sdf.org
      link
      fedilink
      arrow-up
      2
      ·
      1 month ago

      AFAIK FreeRTOS always ran drivers in kernel.

      At least in the docs, I see it described as a microkernel but, with a kernel that small, the differences are probably academic (and I’ll leave that to people with more formal background in CS than myself).

      You can’t even emulate MPU without MPU. The only way is running bytecode, which is still not context switching.

      You are correct here. Should have said MPU instead.

      Oh yes! That makes a lot more sense. I’ve been on-and-off looking at implementing multithreading and multiprocessing in CircuitPython. Memory protection is a big problem with making it work reliably.