Skip to content
hw.dev
hw.dev/signal/tiny-edge-portable-core-zephyr-port-2026
Signalthin-edge

thin-edge Separates Its Device Client From the Operating System

thin-edge is turning operating-system portability from a promise into a boundary its build can test.

Thesis connection

Firmware teams can reuse the same device client on another operating system without carrying Zephyr-specific code into the core.

#embedded#software#tools#testing
Read Original

thin-edge split its connected-device client into an operating-system-neutral core and a Zephyr port. Zephyr is a real-time operating system (RTOS) for small devices. Until this change, core files could still reach into Zephyr interfaces, which made support for another RTOS a rewrite risk rather than a packaging task.

The repository now keeps the client in core/ and Zephyr's build files, configuration, logging, crash dumps, samples, and board profiles in ports/zephyr/. A portability script rejects new operating-system calls in the core and prevents one port from referring to another. The few core files that still call Zephyr are listed explicitly, and the check only allows that list to shrink. Continuous integration (CI) can also build the Zephyr unit tests and minimal sample without borrowing an application repository.

The useful artifact here is the enforced boundary. A team adding FreeRTOS or another port can see every dependency it must supply, while changes to the client still face the same portability check. If the exception list reaches zero, adding the second operating system should measure the quality of the port interface instead of exposing another round of hidden Zephyr assumptions.