Extending Zephyr Based Applications at Runtime with LLEXT
summary
LLEXT is a Zephyr subsystem that loads and unloads ELF files at runtime, applies relocations and provides symbol lookup so extensions can call kernel APIs; it uses a dedicated heap with readable writable and executable regions and supports Cortex‑M (ARM) and Extensa relocations today. Build tooling includes CMake helpers and an EDK packaging flow so third parties compile extensions against a base image. Use cases: plugins, updatable sandboxed processes, on‑demand drivers; caveats: no built‑in signing, single heap, no execute‑in‑place, syscall ID stability and debugging are still works in progress.
AI-written summary · about
chapters (9)
- 0:00Runtime extension with LLEXT
- 2:09What LLEXT is
- 7:21ELF relocations in extensions
- 12:33Hello World extension
- 13:36Extension development kit
- 14:40LLEXT use cases
- 16:26Caveats and limitations of the current implementation
- 18:52Future development
- 19:57Q&A
related talks
14mKeynote: Leveraging Zephyr and ML to Bring Smart Devices to Market, Faster
37mLucet: Safe WebAssembly Outside the Browser
54mLucet: A Compiler and Runtime for High-Concurrency Low-Latency Sandboxing
48mExtending Cloud Native Beyond the “Linux Barrier” to MCUs
41mReinventing Container Linux for the Wasm Era (and More) with System Extensions
18mZVM: Zephyr-based Virtual Machine
29mExpanding Programming Language Support in JupyterLite
11mExtism: a WASM-Powered Plugin System
