Why {{ repo.name }}?

In our quest to build balena, 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 balenaOS, an operating system tailored for containers and designed for the unique realities of the embedded world. balenaOS 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 balenaOS as part of the balena platform for years and are now releasing it as an independent operating system, so that others can benefit and contribute to running containers on connected devices.

BalenaOS packages the essentials: a kernel optimised for each device type, systemd, a networking stack optimised for diverse network conditions, and Docker. By using the balena CLI you can develop on a balenaOS device from your machine, with an efficient workflow that gets out of the way of building your project.