Zephyr is an open source real-time operating system (RTOS) that appeared on the scene a few years ago with support for a few boards. The new 1.11 release adds a lot of features, a lot of new boards, and also has a Windows development environment. But don’t worry, the environment is portable so it still runs on Linux and Mac, as well.
The OS has support for many ARM and x86 boards. It also supports ESP32, NIOS II, and can also target Linux which is useful for debugging or studying execution using desktop tools.
It’s not short of features, being very configurable and modular, it offers a single address space, and has native networking and Bluetooth Low Energy (BLE) stacks. You can create preemptive or non-preemptive threads with support for a pthread-compatible interface. There’s the usual set of services like memory allocation, semaphores, and message queues. There’s even support for common file systems.
In addition to compiling code for the Linux (well, POSIX) platform for testing, you can also target several flavors of QEMU to simulate a particular target system.
Overall, Zephyr is worth a look if you are using one of the supported boards. Or, do a port to a new board and contribute it back. That’s the beauty of open source, after all.