SkiffOS minimal Cross-compiled Linux for embedded containers has just added support for Sipeed Nezha RISC-V single board computer, and work on the smaller Sipeed Lichee RV board has started.
Wait… What is SkiffOS? I’ve never heard about it… That’s how the abstract from the white paper describes it:
Embedded Linux processors are increasingly used for real-time computing tasks such as robotics and Internet of Things (IoT). These applications require robust and reproducible behavior from the host OS, commonly achieved through immutable firmware stored in read-only memory. SkiffOS addresses these requirements with a minimal cross-compiled GNU/Linux system optimized for hosting containerized distributions and applications, and a configuration layering system for the Buildroot embedded cross-compiler tool which automatically re-targets system configurations to any platform or device. This approach cleanly separates the hardware support from the applications. The host system and containers are independently upgraded and backed-up over-the-air (OTA).
In other words, that’s a minimal Linux OS running in RAM, built with buildroot, capable of running containers on various hardware platforms ranging from Raspberry Pi, ODROID, Orange Pi, and NVIDIA Jetson SBCs to desktop PCs, laptops, phones including the PinePhone, Cloud VMs, and more. RISC-V hardware is just the latest addition.
Christian Stewart, SkiffOS developer, highlights five characteristics of the solution:
- Familiar: uses simple Makefile and KConfig language for configuration.
- Flexible: supports any OS distribution inside containers w/ ssh drop-in.
- Portable: replicate the exact same system across any hardware or arch.
- Reliable: read-only minimal (~100KB) in-RAM host system boots reliably every time.
- Reproducible: offline and deterministic builds for reproducible behavior.
There’s a table on the project’s Github repository with U-boot and Linux kernel versions supported by a given hardware platform and in the case of Sipeed Nezha, that would be U-boot 2022.04
and Linux “sm-5.14-rc4”. I was specifically told SkiffOS was tested with Docker and Alpine Linux on the Allwinner D1 board, but other presets include Debian and Gentoo among others. You’ll find more details, including the source code and instructions to get started, on Github.
Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011.
Ubuntu and Gentoo are now also supported on the Nezha board.
I don’t understand? Do the SkiffOS create Ubuntu image that runs on the hardware? Or Ubuntu as a docker container?
Quick skim on their github, seems like CoreOS or RancherOS.
A barebone OS with docker.
As I understand it, SkiffOS is a minimal Linux image from which you can run docker containers with Alpine Linux, Ubuntu, Gentoo, etc…
That’s correct – it’s a cross compiled OS which can be easily updated (as it’s all packed into 2-3 files only) independently from the containers (which are also optional – you can compile everything into the host OS if you want.) There’s also skiff-core which emulates a usual BSP by dropping SSH sessions into containers running Ubuntu, Gentoo, etc, with systemd as PID 1 (so everything works as usual, including the Ubuntu desktop UI, GPU, etc). I use it as my daily driver on my desktop PC as well as the host OS for my single-board computers like Raspberry Pi,… Read more »
The D1-based Lichee RV Risc-v board & dock w/ wifi for $25 also is supported by SkiffOS now!
Is this different from BalenaOS or even haos (which is designed to feet the home assistant needs)?
I like the separation between architecture, platform and apps.
Adding features seems very straightforward and easy.
This project is not aimed at anything in particular, but looks like a very good fit for embedded Linux / iot
People might be interested to learn that SkiffOS now supports the LicheeRV Dock as well.
SkiffOS now supports Visionfive SBC (and BeagleV Starlight).