Nov 16, 2025
Now that I’ve bought a domain for this blog, I own a domain. So it’s time to free some NoIP resources and use my new domain to find the small server at home! And thanks NoIP!
But my modem doesn’t support my new DNS provider, Cloudflare. Initially, I’ve used ddclient, but hey, it’s time to write something in Zig...
Oct 12, 2025
In previous installment, we rewrote the kernel space extension from Zephyr EDK Sample in Zig. In this installment - the last one on this series - we’ll rewrite one of the userspace extensions!
We’ll look at ext1. Its code (at samples/subsys/llext/edk/ext1/src/main.c) is fairly straightforward: simply sets up the subscription, and loop waiting for events. So let’s dive in!
Oct 10, 2025 - Last edited: Oct 12, 2025
In previous installment, we got the “Hello world!” from a Zig extension for Zephyr, based on Zephyr EDK Sample. Time to expand it!
We’ll now try to replicate the features of the extension that lives in kernel space. Looking at its code (at samples/subsys/llext/edk/k-ext1/src/main.c), we see that it creates a thread that waits for events, and when the events are received - the messages from the pub/sub system - it signals the main thread via a semaphore. Let’s start with receiving the events on the main thread first, then we can play with another thread and semaphores.
Oct 07, 2025 - Last edited: Oct 12, 2025
In previous installment, we built and run the Zephyr RTOS EDK sample, in preparation to change one of the extensions there for a Zig written one. Now lets get Zig into play!
We’ll be focusing on the extension that runs in kernel space, as things are simpler there - no need to worry about syscalls. Let’s try to get a simple, “hello world” printing extension written in Zig first. Later we can try to make it feature equivalent with the C one.
Oct 06, 2025 - Last edited: Oct 07, 2025
Zephyr is an open-source RTOS, supporting several devices, across multiple architectures. It has a very active user base, and it is growing.
Zig is a new general-purpose programming language. It has many interesting features, like compile-time meta-programming, optionals and C integration.
I’ve been playing with Zig, and I’ve worked with Zephyr for a few years. What if I try to use Zig to create Zephyr applications? Is it doable?
David Brown presented (slides) about using Zig (and other non-C languages) at 2022 Zephyr Developer Summit. So, it’s doable. But I didn’t want to just repeat his experiment, so I turned my eyes to Zephyr extensions.