FullPliant

What is FullPliant intended for ?

Preventing your computer to behave magically.

Many production systems are just intended to run one of few applications.
For these, the stack performing the service is:

 • 

the hardware

 • 

the kernel

 • 

the operating system and administration tools

 • 

the application

The 'operating system and administration tools' layer of FullPliant has two advantages:

 • 

It's a tiny set of executables and script with a consistent and robust format for various configuration files so that tracking potential problems or adapting it is easy,

 • 

It uses Pliant UI for the user interface so graphical remote administration over a slow connection is no problem.

Here are three potential uses for FullPliant:

 • 

Run some Pliant applications and services with maximal stability.

 • 

Run a very simple graphical embedded system for controlling some industrial machine, a bit like QNX (tm) was years ago, but with more up to date capabilities and programming model.

 • 

Install a light system to host several virtualized computer, also the current FullPliant KVM tools would need serious improvement in order to handle full KVM potential.

How is it organized ?

A minimal FullPliant installation is composed of:

 • 

A Linux kernel,

 • 

A tiny set of executables and libraries picked from an Ubuntu distribution,

 • 

Pliant.

Basically, in order to install FullPliant on a PC, you boot from an USB key containing the FullPliant image, select 'Install', then 'Install FullPliant on another disk', fill the single form, wait for install to proceed, then remove the USB key and reboot on the working system providing both local and remote administration right from the beginning.

On the newly installed FullPliant system, you have a single 'root' Pliant instance. You can then add several entities, as described bellow, to isolate or enable various applications you want to run on the machine.

Various entities in a FullPliant system

Services

A service is providing some well known service such as a DNS (directory), an SMTP (mail) server, an HTTP (web) server, etc.

Most services are provided as Pliant code, so can be run either in the 'root' Pliant instance, or in any logical computer (see bellow what a logical computer is).
Other services such as NFS or Samba file sharing are provided within the tiny set of executables of the 'root' Pliant instance or within an embedded computer (see bellow what an embedded computer is).

Logical computers

A logical computer is running another Pliant instance, chrooted, I mean locked in a file:/logical/logical_computer_name/ subdirectory.

Logical computers enable you to run several Pliant applications with basic isolation between them. None is root, and they share no files, so that you can upgrade one with no risk to disturb others.
On latest Linux kernels, the scheduler is smart enough to provide fair processing power sharing among logical computers.

Embedded computers

An embedded computer is running some applications as part of a chrooted standard Linux distribution, I mean some Linux distribution installed in file:/embedded/embedded_computer_name/ subdirectory.

You can run 'Firefox' or 'OpenOffice' that way.

In order to provide visual access to the application, the embedded computer runs a VNC server (and the 'Matchbox' windows manager), and the 'root' Pliant instance behaves as a VNC client.

Virtual computers

A virtual computer refers to KVM virtualization. It can run any operating system as an emulated full PC. The emulated PC disk images are stored in file:/virtual/image/ subdirectory.

You can run Windows or any Linux distribution that way.

In order to provide visual access to the emulated PC, KVM behaves as a VNC server and the 'root' Pliant instance behaves as a VNC client.