The Zephyr Project’s Zephyr OS is (in our opinion) the logical sweet spot between the bare simplicity of Arduino and the flexibility of Linux.
Zephyr targets 32-bit microcontrollers such as ARM-derivatives (Nordic, ST, TI et.al), Espressif’s ESP32, and others.
For those comfortable with Embedded Linux (say, on the Raspberry Pi and imitators), Zephyr will be fairly familiar (it is programmed in C, and shares some of the same development tools, and is even hosted by the Linux Foundation).
For those moving up from Arduino, one can begin with a simple program that is quite similar to the Arduino’s example “blink” sketch, and grow in complexity from there. Like Arduino, you will find that many of the common sensors and devices that you will want to work with are already supported by “library code”. There is also a massive library of examples within the Zephyr source code repository.
Some of the articles in this section are also covered by a presentation given at Linux.conf.au 2021 for which you can access slides and video here.