Run Docker containers on embedded devices
A host OS tailored for containers, designed for reliability, proven in productionTry resinOS
Tailored for containers
Containers will revolutionize connected devices, and resinOS is the best way to run them
Built to last anywhere
Made to survive harsh networking conditions and unexpected shutdowns
Just the essentials
A minimal Linux with the services needed to run Docker reliably on an embedded device - nothing else
Easy to port
Based on Yocto Linux for easy porting to most capable device types across varied CPU architectures
Fast, modern workflow
Who said embedded software has to be slow and painful to develop?
Open and friendly
Actively developed in the open; community participation warmly welcomed
In our quest to build resin.io, a platform that brings the tools of modern software development to the world of connected hardware, we started by porting Docker to ARM chips in 2013. We soon realised that we also needed an operating system optimized for the use case: a minimal OS ideal for running containers on embedded devices. Because of the complexity required to work across many different network conditions as well as on embedded boards with diverse architectures, boot procedures, kernel configurations, and so forth, existing cloud-focused container OS solutions did not fit our needs. At the same time, existing embedded operating systems and frameworks were not designed for constant updates or containers. We had to create something new from the best of both worlds.
So we built resinOS, an operating system tailored for containers and designed for the unique realities of the embedded world. resinOS supports almost 20 distinct device types, has a robust networking and provisioning story, emphasizes reliability over long periods of operation, and enables a productive developer workflow. We’ve been running resinOS as part of the resin.io platform for years and are now releasing it as an independent operating system, so that others can benefit and contibrute to running containers on connected devices.
ResinOS packages the essentials: a kernel optimised for each device type, systemd, a networking stack optimised for diverse network conditions, and Docker. By using the
resin device toolbox you can develop on a resinOS device from your machine, with an efficient workflow that gets out of the way of building your project.
Select your device type
Frequently Asked Questions
Yocto Linux is an incredible toolkit for generating Linux distributions, with a focus on portability. Yocto’s minimal size and low footprint also make it ideal for running on devices. ResinOS is built using Yocto at its core, and the resinOS team maintains numerous BSPs for Yocto, among them the Raspberry Pi, Artik, and CHIP layers. Yocto acts as the foundation for many other embedded operating systems including Ostro, Wind River Linux, and Tizen, therefore acting as a mechanism for sharing best practices and code, benefitting all the resulting operating systems, resinOS included.
Developers some times avoid Yocto due to its extremely minimal userspace and lack of a standard package manager. ResinOS uses containers to run arbitrary base images within which developers can work, so that their interaction with the host userspace is rare. In this way we get the considerable portability benefits of Yocto, without suffering the workflow drawbacks for application developers.
ResinOS shares a lot with cloud operating systems for containers. We share the focus on minimalism, getting out of the user’s way and letting their container do the heavy lifting, and using Docker, which is the standard way of running containers, and well understood by a large developer community. ResinOS applies the same principles to a different domain, that of embedded Linux devices, sometimes called “connected devices”, “Internet of Things” or “Industrial Internet”, depending on the use case. While some of the cloud operating systems have been made to run on particular embedded devices, their architecture is geared towards the cloud, where they shine.
By applying the container paradigm to the embedded world, the ResinOS team has faced and solved a unique set of challenges that are not common in the cloud and datacentre world, such as:
- The extreme heterogeneity of device types found in the wild;
- Severely restricted resource envelopes in terms of storage, CPU, and networking;
- Devices that are difficult to reach or re-provision upon failure, where power is unstable and may be turned off at any time, or with custom hardware attached.
ResinOS is built for this world from scratch, and our deepest architectural and feature choices have been made exclusively with embedded devices in mind. ResinOS is built for embedded devices, and this focus continues to drive our architectural objectives.
ResinOS uniquely combines the virtues of mature embedded operating systems with the developer-focused sensibilities of cloud operating systems. Where the cloud operating systems don’t address the realities of the embedded world, embedded and IoT-focused Linux distributions don’t focus on containers. When they do, they often choose to reinvent the wheel rather than use Docker, which is the de-facto standard among developers. ResinOS aims to be a competent embedded operating system and shares architectural principles with many existing systems, but also aims to unify the approach to containers with Docker.
While others have done a fantastic job evangelising the use of containers on embedded devices, resinOS has the added benefit of focusing on portability, with 20 device types already supported, and production-readiness, with thousands of devices already deployed for business purposes.