Most Powerful Open Source ERP

Announcing the SlapOS Yocto Project

SlapOS will be ported to Yocto in order to extend it applicability to industrial embedded systems and applications with high security constraints.
  • Last Update:2017-08-28
  • Version:001
  • Language:en

SlapOS currently supports most GNU/Linux distributions: Debian, Fedora, CentOS, SuSE, Ubuntu, etc. This makes SlapOS compatible with virtually any cloud or hosting company, and with any server hardware. However, none of those distributions can be considered seriously for an embedded system because of a few limitations:

  • initial image build is based on binary packages;
  • upgrade procedure is not safe;
  • system image is not read-only.

Those limitations mean that a server may no longer reboot after an upgrade (non safe upgrade procedure) and that nobody knows what is actually running on the server (system image is not read-only). This prevents to use SlapOS in applications that require "zero remote access" (industrial, high security) or "system compliance" (high security, certification).

We hope to solve those issues by porting SlapOS to Yocto. More precisely, what we hope to get by order of priority is:

  • SlapOS system image build process based on source code;
  • read-only SlapOS system image (read-write SlapOS partition for software release and software instance);
  • ability to upgrade the system image and fall back to previous image in case of failure;
  • ability to automatically download and reinstall initial system image if no system image boots;
  • (later) ability to upgrade bootloader and fallback to previous version if bootloader upgrade fails.

Our goal is not unique in the industry:

  • ChromeOS already solves most of these issues (please read "Security of Google Chromebook" by Katherine Fang, Deborah Hanus and Yuzhi Zheng)
  • CoreOS is based on ChromeOS for those reasons and achieves quite well in our opinion the goal of safe upgrade procedure for servers

We could have considered to simply fork CoreOS but CoreOS is not suitable for embedded systems which are one of the target applications of SlapOS for Edge Computing. We therefore prefer to focus on Yocto, the industry standard for embedded Linux systems. Yet, many ideas and possibly software can be reused by learning from ChromeOS, CoreOS and from recent experiments based on Coreboot bootloader. We strongly recommend reading the article "U-root: A Go-based, Firmware Embeddable Root File System with On-demand Compilation" that goes one step beyond in liberating the boot process. Jean-Marie Verdun's comments on Facebook are also worth reading. Jean-Marie is one of the founders of OCP.

The port of SlapOS to Yocto will be managed according to the following steps:

  1. find out which are the easiest ways to use Yocto as an OS to run a simple Web based server or service on x86 (some Yocto derivatives that reduce effort already exist);
  2. build a Yocto based system image for Intel NUC (or for OCP Windmill) that can register to SlapOS master and deploy ERP5;
  3. build a Yocto based immutable system image for Intel NUC that can register to SlapOS master and deploy ERP5;
  4. demonstrate ability to upgrade immutable system image;
  5. demonstrate ability to fallback after failed upgrade;
  6. demonstrate ability to reinstall base system autonomously and register to SlapOS master;
  7. demonstrate ability to upgrade bootloader;
  8. demonstrate ability to use fallback bootloader after failed upgrade;
  9. demonstrate ability to achieve the same result on NVIDIA Jetson TX1/TX2 board.

We hope that the first steps can quickly be used in production on OCP hardware managed by VIFIB withing a few weeks or months and that running on ARM can be achived within months.