UBOS system architecture
The overall architecture of the UBOS project is shown in the following overview diagram:
Let’s discuss this architecture from the bottom layers towards the top:
Hosting: all software must run somewhere. The UBOS project supports a variety of hardware platforms, and virtualization platforms. Shown in the diagram are traditional PCs, various forms of virtualization, ARM devices, and in the cloud.
Operating system: UBOS Linux is the Linux variant developed for the UBOS project. It is based on Arch Linux and takes most of its packages from there. UBOS Linux augments this with functionality that makes server-side applications much simpler to install and maintain than on typical other Linux distros.
Above the operating system layer, the stack splits into two:
On the left, we have traditional web apps like Wordpress, or Nextcloud. They are packaged specific for UBOS Linux and because of that, can be installed and administered through
ubos-admin, the central UBOS Linux administration command.
On the right, we have UBOS Personal Data Mesh and various software components that plug into it. UBOS Personal Data Mesh is a novel kind of Middleware that enables L-App developers to all work on the same data, which is represented as a graph in a MeshBase.
On top of UBOS Personal Data Mesh, because of the shared data infrastructure it provides, run L-Apps, which can contain user interface components, Bots, Importers and more. In UBOS Linux terms, most of these L-Apps are Accessories.
As a developer on UBOS, one of the fundamental decisions you need to make is whether your software is going to be a standalone, traditional App with its own data storage (and consequent difficulties exchanging data with other Apps, or providing a consistent user experience across the boundaries of your App) or whether you want to make use of the UBOS Personal Data Mesh high-level data management infrastructure.