One of the things that I think we are missing is a Roadmap to guide and
prioritize new feature development. Other RTOS' (like Zephyr) do have
such published roadmaps and are responsive to needs and requests of
users and sponsors. I have even seen web pages where the Zephyr team
has laid out what new features on the roadmap will be available in
future releases.
While I think it would be essentially impossible for us to manage such a
thing with our loose organiation, I think we should have a roadmap that
identifies the important directions that operating system will take.
For me, the important thing is to stay relevant and contemporary and not
get lost in some aging niche architecture or toolset. I think that the
best way to predict where NuttX needs to be is to look at the SoCs in
use just above the upper end of the NuttX market. I think over time,
those features will trickle down into embedded systems (albeit with some
twists and modifications for the embedded market). The Cortex-M7
introduces I-Cache and L1 D-Cache, for example. A few years ago, those
were higher end features not available on MCUs.
I think that SMP and AMP are key technologies to get us a leg up on
future mutli-core MCUs. KERNEL mode places us in a position to support
MCUs with MMUs. A proper TrustZone model for all ARM parts is needed
too (the multi-core TrustZone model is pretty well in place, but what do
we do with TrustZone on a single CPU?).
Security, especially IoT security is very important. Some security
topics are addressed by PROTECTED mode. So although PROTECTED and
KERNEL build modes are not commonly used, I believe that they are
important parts of the roadmap.
Other thoughts? We should collaborate and define a meaningful roadmap
that will keep the OS healthy well into the future. We should publish
that roadmap somewhere so that anyone can see where we are going and can
offer insights for other directions.