particle-os/terminology.md
robojerk f9fb8d3bd0 Fix critical PATH issues and add related projects to README
- Fixed sfdisk PATH issue in Containerfile.base (sfdisk is in /usr/sbin)
- Updated Containerfile.minimal to use full path for grub-install
- Enhanced test-bootc-deployment.sh to properly check utility locations
- Added comprehensive section about related projects (apt-ostree, deb-bootupd, debian-bootc-corrected)
- Updated validation script to handle Debian-specific utility locations
- Improved error messages with specific solutions for PATH and utility issues

This addresses the critical requirements from scope.md regarding disk utilities
and PATH environment variables for bootc deployment.
2025-08-10 18:15:04 -07:00

6.9 KiB

Fedora Atomic and ublue-os Terminology

This document clarifies the key terms and the relationships between them in the Fedora and ublue-os ecosystem.

What is ublue-os?

ublue-os (Universal Blue) is not a traditional Linux distribution. It's a "manufacturing process" that builds and maintains immutable operating system images based on Fedora Atomic Desktops. It uses cloud-native tools and principles, like containerization and GitOps, to provide a stable, continuously delivered, and community-driven desktop experience. The images are built from standard OCI-compliant container images, which allows for fast, reliable updates and easy rollbacks.

Fedora Atomic Desktops

What they are

A family of operating systems, including Fedora Silverblue and Fedora Kinoite, that use rpm-ostree technology. They are often referred to as "immutable" because the core operating system is a read-only, atomic deployment. Though commonly called "immutable," these systems more precisely feature an immutable base OS layer while allowing user modifications in specific areas.

Purpose

These are designed for desktop and workstation use, providing a stable, reliable, and predictable foundation for users who want to run containerized applications with tools like:

  • Podman
  • Toolbox
  • Distrobox

They also include a graphical desktop environment and use Flatpak as a key technology for application delivery.

Connection to ublue-os

ublue-os does not build the Fedora Atomic project itself. Instead, it uses the official Fedora Atomic Desktop base images as a foundation and builds custom images on top of that stable, immutable base. Think of it like this:

  • Fedora Atomic Desktop is the foundation or "chassis" - it provides the core operating system, the rpm-ostree technology, and the stability
  • ublue-os is the "car manufacturer" that takes this chassis and builds complete, customized vehicles

ublue-os then builds a variety of custom images on top of them, adding pre-configured software, drivers, and tweaks to create specialized desktop environments for different use cases:

  • Bazzite - Gaming-focused
  • Aurora - General purpose
  • Bluefin - Developer-focused

Fedora CoreOS

What it is

A minimal, automatically-updating operating system specifically for running containerized workloads securely and at scale. It is the successor to both the Fedora Atomic Host and CoreOS Container Linux, with development of those two projects merging to create a unified offering.

Purpose

Fedora CoreOS is not designed for a desktop environment. Its primary use is for:

  • Servers
  • Cloud deployments
  • Container orchestration platforms like Kubernetes

Its entire life cycle is managed with a declarative approach.

Key Features

  • Uses rpm-ostree for atomic updates
  • Update strategy handled by the Zincati agent, which implements a phased rollout system
  • Initial provisioning and configuration handled by Ignition, a tool that takes a declarative configuration file and applies it on the first boot

Connection to ublue-os

The ublue-os project has a custom image called ucore. This image is a "batteries included" version of Fedora CoreOS that adds useful tools like:

  • Cockpit
  • Tailscale
  • Optional NVIDIA driver support

Core Technologies

rpm-ostree

This is the hybrid image/package system at the core of Fedora Atomic Desktops. It combines libostree for managing the immutable filesystem and RPM for package management. It allows for the base operating system to be composed on a server (like a container image) and then replicated on the client. It also provides a way to "layer" additional RPM packages on top of the immutable base, which can be reverted with a single command.

bootc (Bootable Containers)

bootc is a command-line tool that enables the use of OCI/Docker container images as bootable operating systems. It allows the entire OS, including the kernel and drivers, to be packaged and managed like a container. ublue-os is a major adopter of this technology, using it to deliver its images to users. This simplifies the build and deployment process, making it consistent with modern cloud-native workflows.

bootc-image-builder

This is a containerized tool used to create disk images from a bootc container image. It's used in the build process to take a bootable container image and turn it into a format that can be installed on a physical or virtual machine, such as a QCOW2 or ISO file.

bootupd

bootupd is a tool for updating bootloaders in a consistent, distribution-independent manner. It is used in ublue-os and other rpm-ostree and bootc-based systems to manage updates to the bootloader components (like GRUB and shim for UEFI firmware), ensuring they are handled safely and reliably.

ublue-os Image Variants

Aurora

Aurora is a specific ublue-os image described as a "delightful KDE desktop experience." It is built on top of the ublue-os core and features a lightly customized KDE Plasma desktop. It's designed for general users and aims to provide a maintenance-free, stable, and user-friendly experience.

Bazzite

Bazzite is another ublue-os image, specifically a "next generation of Linux gaming" desktop. It's also built on a Fedora Atomic Desktop base but is heavily customized with gaming-focused features, including:

  • Pre-installed Steam and Lutris
  • Enhanced hardware support (including for handhelds)
  • Pre-installed Nvidia drivers

The name Bazzite comes from the character Bazz-i-te in the game Dungeons & Dragons.

Bluefin

Bluefin is a developer-focused ublue-os image, optimized for software development workflows and tools.

Shared Technologies

OCI Images

ublue-os distributes all its variants as OCI container images that can be rebased to using rpm-ostree.

System Architecture Relationship

The relationship between these pieces is as follows:

  1. Fedora Atomic provides the base immutable system
  2. rpm-ostree is the core technology that manages this immutable system and its transactional updates
  3. bootc is a more modern approach to this, treating the entire OS as a container image
  4. ublue-os is the project that uses these underlying technologies (rpm-ostree, and increasingly bootc) to build and distribute its own customized images
  5. Aurora, Bazzite, and Bluefin are examples of end-user images produced by the ublue-os project, each with a different focus
  6. bootc-image-builder and bootupd are tools that are part of the larger ecosystem, used to build and maintain these images and their bootloaders

Summary

In a nutshell:

  • Fedora Atomic Desktops are the base for ublue-os's custom desktop images
  • Fedora CoreOS is the base for ublue-os's custom server images, such as ucore
  • ublue-os is the manufacturing process that creates specialized variants
  • bootc is the modern container-based approach that ublue-os increasingly adopts