90 lines
No EOL
7.6 KiB
Markdown
90 lines
No EOL
7.6 KiB
Markdown
# 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, rollback capabilities, and now true atomic OSTree commits per package operation. The new workflow supports offline .deb install, robust overlay system, and DNS fixes for WSL environments. |
|
|
| **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. All apt-layer atomic commits use official ComposeFS tooling for image creation and mounting. |
|
|
| **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. Also used in the new apt-layer overlay/dpkg install workflow for atomic package management. |
|
|
| **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 (now archived; official ComposeFS tools are default)
|
|
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 and overlay/dpkg install workflow
|
|
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. All atomic package management in apt-layer uses these tools for image creation and mounting.
|
|
- **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
|
|
- **apt-layer** now supports atomic OSTree commits, robust overlay/dpkg install, and official ComposeFS integration. |