Userspace in Zephyr: Overview and Practicality
summary
Zephyr exposes a userspace that enforces access by memory domains and memory partitions, requires explicit grants for each kernel object, and implements syscall marshalling and verification that copies and checks user buffers before executing kernel code. Expect extra RAM for page tables and a privileged stack, higher context-switch and syscall latency, and pesky alignment waste. Unauthorized access provokes a page-fault kills thread flow. Hardware choice matters: MPU vs MMU tradeoffs determine region counts, alignment granularity, and how isolation is enforced.
AI-written summary · about
chapters (17)
- 0:00User space in Zephyr
- 1:44Kernel vs user mode
- 3:53Sharing data between threads
- 7:12System calls from user space
- 10:05Performance cost of syscalls
- 15:08Why and why not use user space
- 21:23Q&A: Real-world cases
- 23:13Q&A: Verification and safety
- 25:47Q&A: MMU vs MPU
- 28:01Q&A: API transparency
- 31:10Q&A: Access violations
- 33:19Q&A: Custom drivers
- 34:04Q&A: User space vs TEE
- 34:47Q&A: Future of interactive users
- 36:59Q&A: Limitations
- 38:04Q&A: Build overhead
- 40:15Closing
related talks
41mUserspace in Zephyr: Overview and Practicality
35mZephyr OS Memory Protection
35mZephyr OS Memory Protection
46mSecurity in Zephyr and Fuchsia
28mIntroduce Hardware-Level Device Isolation to Zephyr
22mVirtualization with Zephyr & Xen for Embedded Safety Systems
27mZephyr and Trusted Execution Environments
18mZVM: Zephyr-based Virtual Machine
