embox/embox
FreeModular and configurable OS for embedded applications
About embox/embox
Embox is an open-source, modular, and configurable real-time operating system (RTOS) designed for resource-constrained and embedded systems. Its primary goal is to enable the use of Linux software without the overhead of Linux itself. It achieves this through a highly configurable build system that allows developers to include only the required components. Embox offers POSIX-compliant APIs, supports a wide range of file systems (FAT, ext2/3/4), and provides a full TCP/IP stack with BSD sockets. It runs on multiple architectures including ARM, MIPS, x86, RISC-V, Microblaze, SPARC, PowerPC, and E2K, and supports popular development boards such as STM32, i.MX6, and Raspberry Pi. Embox can run complex desktop software like Qt, OpenCV, PJSIP, Dropbear, and even Quake 3 on microcontrollers. It also includes a Unix-like shell and supports numerous programming languages including Python, Lua, Tcl, Lisp, Ruby, JavaScript, and Scheme.
Key Features
Pros & Cons
- Highly configurable, allowing minimal footprint for constrained devices
- POSIX-compliant, easing porting of Linux applications
- Supports a wide range of hardware architectures and popular development boards
- Can run complex software (Qt, OpenCV, PJSIP) on low-cost MCUs
- Multiple programming language support for flexibility
- Active community with mailing lists and Telegram chats
- Configuration and building require familiarity with the build system and cross-compilation
- Smaller ecosystem and community compared to mainstream RTOSes like FreeRTOS or Zephyr
- Documentation spread across wiki, PDF, and GitHub, may not be beginner-friendly