Add Ada support for Zephyr RTOS

Dear Ada Awards Committee and community,

I would like to propose a project to add Ada/SPARK support to the Zephyr Real-Time Operating System. I do not want to be the person that takes on this task.

What is Zephyr RTOS?

Zephyr is an open source, real-time operating system which has seen tremendous growth in the past few years. It is supported by major vendors, such as Intel, the Linux Foundation, a large number of very important chip manufacturer’s and several car manufacturers among others. You can read more about it in their “About” section and see their members list. It also has a strong community support and a very large number of boards and CPUs are supported. They also focus on a highly configurable architecture with plenty of features (such as Bluetooth, communication protocols, multithreading, etc). Additionally, it has a strong focus on safety/security, as it is now starting to be used in some safety-critical environments and there is commercial support for the OS from some third parties.

The task

I would like to see Ada support for the Zephyr RTOS. The goal would be to have an Ada/SPARK RTS built on top of Zephyr, with Tasks being supported. Currently, only C/C++ is officially supported, with some Rust support also being present but not highly supported. Also, Zephyr has a lot of APIs available (Bluetooth, etc), and while it would be nice to support them all, it is a large task, the APIs keep breaking/changing (during FOSDEM/Zephyr-BoF this became a strong debate) and that work could be done in the future as more people use those additional features.

Why should this idea be considered?

Ada has always had a focus on quality, hardware support and flexibility. However, we all know that creating a custom RTS for a target can be quite difficult, which has led to few cpu/boards being supported. Zephyr is growing rapidly in popularity, support and use, it is also starting to see use in safety critical environments. Ada support would allow Ada to run in a much much wider number of boards from day 1, with a single abstraction, without duplicating (or n*plicating) work, with full tasking support, and it could find some users (both individuals as well as industrial) within the Zephyr ecosystem that will make use of it. It could also be the spiritual successor to the FreeRTOS Ada support, which is no longer being supported as no one has taken over @simonjwright work. It also seems that most people and companies have moved to Zephyr from FreeRTOS and other products. Ideally, the Ada support in Zephyr RTOS would become one of the officially supported (or externally supported) languages with which to develop on Zephyr and the initial friction to get started should be minimal.

Difficulty of adding support and some notes

This project is very challenging… However, most of the work has already been done by the great @jgrivera67 and was presented during AEiC 2025 in Paris (see the recording here). He noted that there is still some manual intervention that needs to be carried out. My expectation would be that the Awards Committee gives a prize to the person that upstreams @jgrivera67’s work to Zephyr (maybe also to him as he also did the bulk of the work) and integrates the code into Zephyr’s own build system so that by just having the GNAT toolchain, one can already start working with it. This would require Zephyr’s build system to autogenerate some Ada’s files where needed.

Disclaimer

As I am part of the committee, I will not take part on voting for this project idea. Additionally, this post should serve as particular example on how to write a proposal, but each idea can have their own style :slight_smile:

Best regards,
Fer

3 Likes