# 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