NayuOS Roadmap

A presentation of NayuOS roadmap and targets: server, desktop, embedded.
  • Last Update:2018-10-27
  • Version:001
  • Language:en

NayuOS is the name of the operating system used by most Nexedians on their laptop. NayuOS main feature is its absence of persistent state which brings three essential benefits:

  • security;
  • privacy;
  • shared work environment.

Based on this experience, we plan to extend NayuOS targets to servers and embedded systems in addition to laptops and desktops. We also plan to depart from its current base: ChromiumOS (see NXD-Document.Blog.NayuOS.After.Google for explanation).

Yet, we expect to keep the security, simplicity, reliability and privacy that early design of ChromiumOS provided.

Design principles

NayuOS design principles are listed bellow:

  • only Free Software including firmware (except what is required to boot the system, connect to Internet, connect to USB or display graphics);
  • secure boot (signed system image);
  • non persistent system image;
  • minimal system image;
  • over-the-air (OTA) upgrade with fallback system image;
  • graphic user interface is HTML5 only;
  • developer environment is SlapOS only.

Targets and Modes

Targets for NayuOS are:

  • desktop (incl. laptop and tablets);
  • server;
  • embedded.

Modes for NayuOS are:

  • production (no compilers);
  • developer (compilers).
NayuOS Targets and Modes
  Desktop Server Embedded
  Production Developer Production Developer Production Developer
Bootloader Coreboot or Uboot Linuxboot Uboot
System image (read-only) initrd + loop (Elbe) initrd (Elbe) initrd (Elbe)
SR partition (persistent, signed) /opt/slapgrid /opt/slapgrid /opt/slapgrid
SI partition (persistent) N/A /srv/slapgrid /srv/slapgrid /srv/slapgrid
SI partition (not persistent) /tmp/slapgrid /tmp/slapgrid N/A N/A
Web Browser Yes Yes No No No No
SlapOS node (SlapOS master) No No Yes Yes Yes Yes
SlapOS node (slapproxy) Yes Yes No No No No
Install software release No Yes Yes Yes Yes Yes
Compile software release No Yes No Yes No Yes

Architecture

Security is inspired by (original) ChromeOS secure boot (see MIT article "Security of Google Chromebook") rather than by Android.

SlapOS node installation is described here: SlapOS Tutorial - Installing SlapOS Node (Comp-123). SlapOS installation depends roughly on python, patched babel and not much more.

Key architecture concepts common to all targets:

  • System image produced by Elbe RFS;
  • Bootloader with over-the-air (OTA) upgrade and fallback;
  • Bootloader verifies signature of system image before boot;
  • System image boots as initrd;
  • System image provides everything to connect to Internet (Wifi, Ethernet);
  • System image includes python2.7, re6st, slapgrid and dependencies (ex. supervisord);
  • System image mounts SlapOS SR partition;
  • System image mounts SlapOS SI partition;
  • System starts SlapOS's slapgrid (which itself verifies SR partition signatures);
  • (option, if not bootloader) System image upgrades system in background over-the-air (OTA).

Key concepts specific to server architecture are defined bellow:

  • linuxboot firmware;
  • Kernel supports paravirtualisation;
  • System image provides everything to handle advaced storage such as FusionIO SSD.

Key concepts specific to desktop architecture are defined bellow:

  • Coreboot or Uboot firmware;
  • System image provides everything to hanle USB device;
  • System image provides Qt Webengine and dependencies with optimised support of OpenGL and font rendering.

Key concepts specific to embedded systems:

  • Uboot bootloader;
  • System image provides everything to handle USB device;
  • System image provides everything to handle specific device.