- 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.
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-ostreetechnology, 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-ostreefor 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:
- Fedora Atomic provides the base immutable system
- rpm-ostree is the core technology that manages this immutable system and its transactional updates
- bootc is a more modern approach to this, treating the entire OS as a container image
- ublue-os is the project that uses these underlying technologies (
rpm-ostree, and increasinglybootc) to build and distribute its own customized images - Aurora, Bazzite, and Bluefin are examples of end-user images produced by the ublue-os project, each with a different focus
- 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