Improve this doc
Select a version

What's On The Device?

The balena software running on your device leverages a number of powerful components to provide great functionality at a minimal performance cost:-

Operating System

Yocto Project Logo

The operating system we install on your device is Yocto Linux. This is an innovative distribution which comprises components which can be combined together to build a custom Linux system containing only the software you need for any target architecture. We plan to support additional Operating Systems bases in the future.

This is perfect for balena - we have built an optimized Linux system for the devices we support and can guarantee the same behavior on any further devices we support in the future.

Application Environment

On the device, we run the Docker which uses the power of containerisation to provide a consistent environment for your software to operate inside at a far smaller performance penalty than virtualisation. Additionally since the OS runs Docker containers you have the freedom to provide custom Dockerfiles giving you the ability to control exactly what is installed and runs on the device.

In addition we leverage containerisation to have our build server build your project without consuming a single CPU cycle on your actual device, then ship a container to it which is guaranteed to run as built without concern for the host operating system running on your device.

Balena Supervisor

Balena Logo

The balena supervisor is a lightweight process which runs on your device, manages your applications and communicates with our servers - downloading new applications and updates to existing applications as you push them, sending logs to your dashboard, as well as updating itself automatically when new releases of the supervisor are pushed out by us.

Your Application

Application Image

Once your device has booted and the initial setup is complete, the supervisor contacts our servers and downloads the latest version of your application.

From this point on, as soon as you push an update it will connect to our servers, pull down the container for your application and update it seamlessly, giving you zero overhead updates across any number of devices.