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.