# Tool Comparison: uBlue-OS vs Particle-OS This document provides a comparison of the core tools used in uBlue-OS and their equivalents in Particle-OS. ## Core System Tools | uBlue-OS Tool | Particle-OS Equivalent | Description | |---------------|----------------------|-------------| | **rpm-ostree** | **apt-layer** | Package management and atomic system updates. rpm-ostree handles RPM packages on Fedora, while apt-layer manages DEB packages on Ubuntu with atomic transactions and rollback capabilities. | | **bootc** | **bootc-alternative** | Container-native bootable image management. Handles deployment, staging, rollback, and status reporting for immutable OS images. Particle-OS version includes Bazzite-style status output and deployment tracking. | | **bootupd** | **bootupd-alternative** | Bootloader management and configuration. Manages UEFI/GRUB entries, kernel arguments, and boot configuration for atomic OS deployments. | | **skopeo** | **skopeo** | Container image inspection, copying, and verification. Essential for secure image management, signature verification, and registry operations. Used by both systems for image handling. | ## Particle-OS Specific Tools | Particle-OS Tool | Description | |------------------|-------------| | **particle-config.sh** | Centralized configuration management for Particle-OS. Manages paths, settings, and system configuration across all Particle-OS tools. | | **particle-logrotate.sh** | Log rotation and management for Particle-OS tools. Ensures proper log file maintenance and prevents disk space issues. | | **dracut-module.sh** | Dracut module management for kernel initramfs generation. Handles custom kernel modules and boot-time initialization for Particle-OS. | | **Official ComposeFS Tools** | **ARCHIVED**: composefs-alternative.sh moved to archive. Particle-OS now uses official `mkcomposefs` and `mount.composefs` from upstream with automatic backend selection and fallback support. | | **install-particle-os.sh** | Professional installation script for Particle-OS tools. Installs all core tools to `/usr/local/bin/` with standardized names and proper permissions. | | **install-ubuntu-particle.sh** | Complete Ubuntu Particle-OS system installation. Installs dependencies, creates directory structure, sets up systemd services, and configures the full immutable system environment. | | **oci-integration.sh** | OCI (Open Container Initiative) integration utilities. Particle-OS-specific wrapper that uses skopeo under the hood for registry operations, image pulling, and OCI compliance. Provides higher-level automation and workflow integration for Particle-OS tools. | ## Ubuntu Ecosystem Integration Tools | Ubuntu Tool | Particle-OS Integration | Description | |-------------|------------------------|-------------| | **erofs-utils** | **EROFS Backend for ComposeFS** | Enhanced Read-Only File System utilities. Provides better performance than SquashFS for metadata operations, native fs-verity support, and LZ4/Zstandard compression. Integrates with composefs-alternative for official ComposeFS compatibility. | | **erofsfuse** | **FUSE Mount Support** | FUSE Mount Utility for EROFS File System. Enables user-space mounting of EROFS filesystems, useful for rootless operations and enhanced security. | | **overlayroot** | **Boot-time Immutability** | Native Ubuntu tool for read-only root filesystem with overlayfs. Provides system immutability, boot-time protection, and easy rollback capabilities. Integrates with dracut-module for enhanced boot-time security. | | **fuse-overlayfs** | **Rootless Container Support** | Implementation of overlay+shiftfs in FUSE for rootless containers. Enables container operations without root privileges, enhancing security for container-based workflows. | | **golang-github-bep-overlayfs-dev** | **Go Library Integration** | Composite Afero filesystem Go library. Provides programmatic access to overlayfs functionality for Go-based tools and services in the Particle-OS ecosystem. | ## Enhanced Integration Opportunities ### **EROFS Integration with ComposeFS** - **Performance**: EROFS is optimized for read-only metadata operations, providing better performance than SquashFS - **Compression**: Native support for LZ4 and Zstandard compression algorithms - **Security**: Built-in fs-verity support for filesystem integrity verification - **Standards Compliance**: Aligns with official ComposeFS implementation using EROFS for metadata trees - **Fallback Support**: Graceful fallback to SquashFS when EROFS is not available ### **Overlayroot Integration with Boot System** - **System Immutability**: Provides read-only root filesystem with writable overlay - **Boot-time Protection**: Protects system from modifications during runtime - **Easy Rollback**: Simple way to discard changes and return to clean state - **Ubuntu Integration**: Native Ubuntu tool with excellent system integration - **dracut-module Enhancement**: Can replace or enhance current dracut-module approach ### **FUSE-based Enhancements** - **Rootless Operations**: Enable container and filesystem operations without root privileges - **Enhanced Security**: User-space implementations provide additional security layers - **Flexibility**: Support for various filesystem types and overlay configurations - **Container Integration**: Better integration with modern container workflows ## Implementation Strategy ### **Phase 1: EROFS Integration** 1. Install `erofs-utils` and `erofsfuse` packages 2. Test EROFS functionality with composefs-alternative 3. Implement automatic detection and fallback logic 4. Add EROFS compression and optimization features 5. Benchmark performance against current SquashFS approach ### **Phase 2: Overlayroot Integration** 1. Install `overlayroot` package 2. Test read-only root functionality 3. Integrate with dracut-module for boot-time immutability 4. Add configuration options for users 5. Document usage and benefits ### **Phase 3: FUSE Enhancements** 1. Test `fuse-overlayfs` for rootless container support 2. Evaluate Go library integration opportunities 3. Implement enhanced security features 4. Add comprehensive testing and validation ## Notes - **Skopeo** is a shared dependency used by both uBlue-OS and Particle-OS for container image operations - **Official ComposeFS Tools**: Particle-OS now uses official `mkcomposefs` and `mount.composefs` from upstream. The alternative implementation has been archived. - **EROFS integration** provides a path to official ComposeFS compatibility while maintaining Particle-OS enhancements - **Overlayroot** offers a simpler alternative to complex dracut-module implementations for boot-time immutability - **FUSE-based tools** enable enhanced security and rootless operations - Particle-OS tools maintain compatibility with uBlue-OS workflows while adding Ubuntu-specific features and optimizations - All Particle-OS tools include comprehensive error handling, logging, and user-friendly interfaces - **Ubuntu ecosystem integration** leverages native Ubuntu tools for better performance and compatibility