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
- 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