• Type: Epic
    • Status: In Progress
    • Priority: High
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: Core Kernel / Common
    • Labels:
    • Epic Name:
      Unified Kernel


      As a Zephyr developer, I would like a unified and more complete kernel API with optimized performance, so that I don't have to choose between the nanokernel or the microkernel when developing applications.

      The Zephyr dual-kernel model is confusing for some, and is somewhat harder to use than traditional cookie-cutter RTOS kernels by even experienced developers. Also, while the nanokernel performances for both footprint and speed of execution (context-switch time, latency, etc.), the microkernel could be improved on both fronts.


      • Non-intuitive nature of the nanokernel/microkernel split
      • Double-context switch affecting kernel performance (speed and footprint)
      • Duplication of object types between the nanokernel and microkernel
      • System initialization running in the idle task

      Proposed Improvements:

      • Make the nanokernel 'pre-emptible thread' aware
      • Unify fibers and tasks as one type of threads by dropping the Microkernel server
      • Allow cooperative threads to operate on all types of objects
      • Clarify duplicated object types
      • Create a new, more streamlined API, without any loss of functionality


          Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.



              • Assignee:
                ajross71 Andy Ross
                gsvij Gajinder Vij
              • Votes:
                0 Vote for this issue
                14 Start watching this issue


                • Created: