The Ocre Runtime Supports Lightweight OCI-Type Containers
TWO VERSIONS ADDRESS DIVERSE HARDWARE
The Ocre runtime is available in two foundational versions to address a diverse landscape of resource-constrained edge hardware.- An RTOS version for MCU-based devices with as little as 256KB of memory. The reference design includes the Zephyr RTOS and runs as firmware with containerized applications deployed on top.
- A Linux version for CPU-based devices which runs as a Linux service with a footprint of less than 1MB.
The Ocre architecture is compatible with any silicon (e.g. M3 to A9 class Arm, RISC-V, ESP32, x86). Specific compatibility is driven by choice of RTOS or underlying Linux build, in addition to the availability of necessary device drivers.
Ocre leverages Zephyr as the reference RTOS for the MCU runtime due to the modern architecture, engaged community, and broad hardware support, but we welcome the community to port to other RTOS flavors such as FreeRTOS and NuttX. Similarly, we encourage the community to port Ocre to various Linux distributions and Yocto-based builds.
Ocre RTOS Architecture with Zephyr
THE OCRE ADVANTAGE
The two Ocre runtime variants and available commercial orchestration tools bring benefits that we take for granted in the cloud. These benefits include:- Portability/reusability of both legacy and new code across diverse hardware architectures and operating systems
- Simplified code integration, including edge AI models. Developers with backgrounds in embedded, AI, cloud, IoT, web and mobile don’t need to learn new skills sets to collaborate effectively.
- Better IP protection when collaborating with partners because valuable source code IP is obfuscated in container binaries
- Improved security and ability to comply with regulations like SBOM, Cyber Resilience Act (CRA) and memory safe code
- Support for remote management at scale, including fractional updates
Ocre RTOS turns firmware into containerized software
Ocre is set to transform how software is built for MCU-based devices and provides an attractive alternative to traditional container technologies for resource-constrained hardware running Linux. The Ocre Linux runtime provides developers with a very similar experience to Docker while enabling them to deploy more functionality within the same memory footprint or decrease their overall memory BOM cost. A common interest for this benefit is reclaiming memory space to run more sophisticated AI models.
Ocre Linux frees up hundreds of MBs of memory compared to Docker (example breakout with 512GB of memory)
The Ocre community believes software containerization for embedded devices and systems such as sensors, smart cameras, appliances, controllers, robots, drones and cars is critical as they continue to get more complex to develop and maintain, are increasingly software-defined and leverage onboard AI, and are faced with growing security challenges.
Ocre use cases span single sensors to embedded systems and general-purpose edge infrastructure
KEY FEATURES
- Support for containers written in any programming language (e.g. C/C++, Go, Rust)
- Full management API for use with CLI or choice of 3rd-party console
- Hardware abstraction accelerates silicon swaps from months to weeks or even days
- Baseline support for thousands of boards with Zephyr as the reference RTOS for the MCU runtime and Linux for CPUs
- Containerized apps sandboxed from each other and the host hardware by default
- Access between apps and hardware only possible based on permissions established through the management API
- Apps can only access specified device memory, preventing callstack jumps and buffer overruns
- Individual containers can be terminated if abnormal behavior is detected
- Runs as firmware
- Minimum deployment footprint of 128KB of memory and flash
- Application containers can be as small as 300 bytes
- Near-native performance with AOT compilation
- Runs as a Linux service with a footprint of <1MB
- Individual container binaries have up to 2000X less overhead than Docker