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

108 lines
No EOL
6.9 KiB
Markdown

# 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