465 lines
No EOL
14 KiB
Markdown
465 lines
No EOL
14 KiB
Markdown
# Particle-OS: Desktop-First Immutable Ubuntu System
|
|
|
|
## Overview
|
|
|
|
Particle-OS is an immutable Ubuntu-based desktop system inspired by uBlue-OS, designed specifically for desktop users who want the benefits of atomic updates, rollback capabilities, and system integrity without the complexity of cloud-native tooling.
|
|
|
|
## Mission
|
|
|
|
Create a **desktop-first** immutable Ubuntu system that provides:
|
|
- **Simple desktop experience** - No cloud complexity, just a great desktop OS
|
|
- **Atomic updates with rollback** - Safe system updates with easy recovery
|
|
- **uBlue-OS inspiration** - Familiar patterns for users coming from Fedora-based immutable systems
|
|
- **Ubuntu ecosystem** - Full compatibility with Ubuntu software and repositories
|
|
- **Gaming and productivity focus** - Optimized for real desktop workloads
|
|
|
|
## Desktop-First Philosophy
|
|
|
|
Particle-OS is built with a simple philosophy: **desktop computing should be simple, powerful, and reliable**. We reject the complexity of cloud-native tooling for desktop users and focus on what matters most:
|
|
|
|
- **Real desktop workloads** - Gaming, development, creativity, productivity
|
|
- **Familiar workflows** - Standard desktop applications and tools
|
|
- **System reliability** - Atomic updates with easy rollback
|
|
- **User control** - Easy customization and system management
|
|
|
|
## Particle-OS Architecture
|
|
|
|
### pcore - Particle-OS Core (ucore Equivalent)
|
|
**pcore** is Particle-OS's foundational base image, equivalent to uBlue-OS's ucore. It provides the minimal, immutable foundation that all Particle-OS desktop variants build upon.
|
|
|
|
**pcore Features:**
|
|
- **Minimal Ubuntu Foundation**: Clean Ubuntu base optimized for desktop use
|
|
- **Desktop Framework**: Essential desktop environment support and systemd services
|
|
- **Atomic Update System**: apt-layer integration for atomic package management
|
|
- **Immutable Filesystem**: composefs-alternative for layered, immutable storage
|
|
- **Boot Management**: bootupd-alternative for UEFI and GRUB integration
|
|
- **Desktop-Ready Base**: Pre-configured for desktop workloads and user sessions
|
|
|
|
**pcore Architecture:**
|
|
```bash
|
|
pcore/
|
|
├── ubuntu-minimal-base # Minimal Ubuntu 22.04 foundation
|
|
├── desktop-framework # Desktop environment support
|
|
├── atomic-update-system # apt-layer integration
|
|
├── immutable-filesystem # composefs-alternative
|
|
├── boot-management # bootupd-alternative
|
|
└── systemd-services # Desktop-optimized systemd configuration
|
|
```
|
|
|
|
**pcore Benefits:**
|
|
- **Consistent Foundation**: All desktop variants share the same reliable base
|
|
- **Atomic Updates**: Full system atomicity with rollback capabilities
|
|
- **Desktop Optimization**: Built specifically for desktop workloads
|
|
- **Simple Architecture**: No cloud complexity, desktop-first design
|
|
- **Ubuntu Compatibility**: Full compatibility with Ubuntu ecosystem
|
|
|
|
## Desktop Images
|
|
|
|
All Particle-OS desktop images are built on top of **pcore**, following the same pattern as uBlue-OS variants built on ucore:
|
|
|
|
### Particle-OS Corona (KDE Plasma) - Aurora Equivalent
|
|
**pcore + KDE Plasma + Gaming Tools**
|
|
|
|
A radiant and expansive desktop experience with KDE Plasma, optimized for gaming and multimedia.
|
|
|
|
**Features:**
|
|
- KDE Plasma desktop environment
|
|
- Gaming optimizations (Steam, Wine, Lutris)
|
|
- Multimedia support (VLC, Kodi)
|
|
- Productivity tools (LibreOffice, Firefox)
|
|
- Gaming performance tuning
|
|
- Atomic updates with rollback
|
|
|
|
**Target Users:**
|
|
- Gamers and multimedia enthusiasts
|
|
- KDE Plasma fans
|
|
- Users who want a feature-rich desktop
|
|
|
|
### Particle-OS Apex (GNOME) - Bluefin Equivalent
|
|
**pcore + GNOME + Development Tools**
|
|
|
|
A nimble, powerful, and adaptable desktop for power users with GNOME.
|
|
|
|
**Features:**
|
|
- GNOME desktop environment
|
|
- Development tools (VS Code, Docker, Git)
|
|
- Container and cloud development support
|
|
- Enterprise compliance features
|
|
- Development workflow optimization
|
|
- Atomic updates with rollback
|
|
|
|
**Target Users:**
|
|
- Developers and power users
|
|
- GNOME enthusiasts
|
|
- Users who need development tools
|
|
|
|
### Particle-OS Bazzite (Gaming-Focused) - Bazzite Equivalent (Planned)
|
|
**pcore + Dual Desktop + Steam Mode**
|
|
|
|
A gaming-focused system with dual desktop support and Steam mode.
|
|
|
|
**Features:**
|
|
- Dual desktop support (KDE Plasma + GNOME)
|
|
- Steam mode for gaming optimization
|
|
- Gaming performance tuning
|
|
- Steam, Wine, and Lutris integration
|
|
- Gaming-focused kernel parameters
|
|
- Atomic updates with rollback
|
|
|
|
**Target Users:**
|
|
- Serious gamers
|
|
- Users who want maximum gaming performance
|
|
- Users who want desktop flexibility
|
|
|
|
## Core Components
|
|
|
|
### apt-layer - Atomic Package Management
|
|
Ubuntu package management with atomic transactions, live overlay system, and rollback capabilities.
|
|
|
|
**Key Features:**
|
|
- Atomic package installation and updates
|
|
- Live overlay system for safe operations
|
|
- Automatic rollback on failures
|
|
- Desktop-friendly package management
|
|
- Integration with Ubuntu repositories
|
|
|
|
**Usage:**
|
|
```bash
|
|
# Install software
|
|
apt-layer.sh install steam wine lutris
|
|
|
|
# Update system
|
|
apt-layer.sh update
|
|
|
|
# Rollback if needed
|
|
apt-layer.sh rollback
|
|
```
|
|
|
|
### Official ComposeFS Integration - Layered Filesystem
|
|
Particle-OS integrates with **official ComposeFS tools** from the containers community, providing content-addressable layered filesystem with production-ready performance and security.
|
|
|
|
**Key Features:**
|
|
- **Official ComposeFS Tools**: Uses `mkcomposefs` and `mount.composefs` from upstream
|
|
- **Production Ready**: Native C implementation with kernel optimizations
|
|
- **Security**: fs-verity support for filesystem integrity verification
|
|
- **Performance**: Page cache sharing and EROFS integration
|
|
- **Standards Compliant**: Full compliance with official ComposeFS specification
|
|
- **Ecosystem Integration**: Better integration with OSTree, Podman, and Flatpak
|
|
|
|
**Status:**
|
|
- ✅ **Official Tools Working**: Successfully tested and functional
|
|
- ✅ **Automatic Backend Selection**: Detects and uses official tools when available
|
|
- ✅ **Fallback Support**: Alternative implementation available if needed
|
|
- ⏳ **Package Status**: Ready for Debian/Ubuntu upload (awaiting sponsorship)
|
|
|
|
**Usage:**
|
|
```bash
|
|
# Install official tools (when available)
|
|
sudo apt install composefs-tools
|
|
|
|
# Or install from source
|
|
composefs-alternative.sh --official-install
|
|
|
|
# Mount desktop image
|
|
composefs-alternative.sh mount desktop-image /mnt/point
|
|
|
|
# Create new layer
|
|
composefs-alternative.sh create-layer gaming-packages
|
|
|
|
# List layers
|
|
composefs-alternative.sh list-layers
|
|
```
|
|
|
|
### bootupd-alternative - Bootloader Management
|
|
UEFI and GRUB integration for desktop systems with multi-boot support.
|
|
|
|
**Key Features:**
|
|
- UEFI and GRUB integration
|
|
- Multi-boot support for dual-boot scenarios
|
|
- Desktop-friendly boot configuration
|
|
- Recovery options
|
|
- Secure boot support (optional)
|
|
|
|
**Usage:**
|
|
```bash
|
|
# Register desktop image
|
|
bootupd-alternative.sh register desktop-image
|
|
|
|
# Update bootloader
|
|
bootupd-alternative.sh update
|
|
|
|
# List boot entries
|
|
bootupd-alternative.sh list
|
|
```
|
|
|
|
### DKMS and NVIDIA Support
|
|
Particle-OS includes comprehensive DKMS (Dynamic Kernel Module Support) and NVIDIA driver support, following the successful patterns established by uBlue-OS. This enables users to install proprietary drivers, kernel modules, and other software that requires kernel compilation while maintaining the immutable system architecture.
|
|
|
|
**DKMS Features:**
|
|
- Atomic DKMS module installation and removal
|
|
- Automatic kernel module rebuilding on kernel updates
|
|
- Containerized DKMS builds for isolation
|
|
- Comprehensive DKMS module management
|
|
- Integration with Particle-OS atomic update system
|
|
|
|
**NVIDIA Driver Support:**
|
|
- NVIDIA driver installation via graphics-drivers PPA (recommended approach)
|
|
- Automatic driver version detection and recommendation
|
|
- NVIDIA Prime support for laptop GPU switching
|
|
- Gaming performance optimizations
|
|
- CUDA support for machine learning workloads
|
|
|
|
**Usage:**
|
|
```bash
|
|
# Install NVIDIA drivers (auto-detects optimal version)
|
|
apt-layer --nvidia-install auto
|
|
|
|
# Install specific DKMS module
|
|
apt-layer --dkms-install virtualbox-dkms 6.1.38
|
|
|
|
# Rebuild all DKMS modules after kernel update
|
|
apt-layer --dkms-rebuild-all
|
|
|
|
# Switch to NVIDIA GPU
|
|
apt-layer --gpu-switch nvidia
|
|
|
|
# Check DKMS status
|
|
apt-layer --dkms-status
|
|
|
|
# Check NVIDIA driver status
|
|
apt-layer --nvidia-status
|
|
```
|
|
|
|
**Gaming Variants with NVIDIA Support:**
|
|
- **Particle-OS Bazzite Gaming (NVIDIA)** - Ubuntu 25.04 with pre-installed NVIDIA drivers
|
|
- **Particle-OS Corona Gaming (NVIDIA)** - Ubuntu 24.04 LTS with KDE Plasma and NVIDIA support
|
|
|
|
## Desktop Use Cases
|
|
|
|
### Gaming Desktop
|
|
- Steam, Epic Games, GOG integration
|
|
- Wine and Proton support
|
|
- Gaming performance optimization
|
|
- Multi-monitor gaming support
|
|
- Gaming peripheral support
|
|
- **NVIDIA driver support with DKMS**
|
|
- **Automatic GPU switching with NVIDIA Prime**
|
|
- **Gaming-focused kernel optimizations**
|
|
- **DKMS module support for gaming tools**
|
|
|
|
### Development Workstation
|
|
- VS Code, IntelliJ, Eclipse support
|
|
- Docker and container development
|
|
- Git and version control
|
|
- Database development tools
|
|
- Web development environment
|
|
|
|
### Creative Workstation
|
|
- GIMP, Inkscape, Blender support
|
|
- Video editing tools
|
|
- Audio production software
|
|
- Photography workflow tools
|
|
- Design and illustration software
|
|
|
|
### Productivity Desktop
|
|
- Office suite integration
|
|
- Email and calendar tools
|
|
- Web browsing and communication
|
|
- File management and backup
|
|
- Personal productivity tools
|
|
|
|
## Installation and Setup
|
|
|
|
### Simple Installation
|
|
```bash
|
|
# Download Particle-OS ISO
|
|
wget https://particle-os.org/downloads/particle-os-corona-24.04.iso
|
|
|
|
# Create bootable USB
|
|
sudo dd if=particle-os-corona-24.04.iso of=/dev/sdX bs=4M status=progress
|
|
|
|
# Boot and install
|
|
# Follow simple installation wizard
|
|
# Choose desktop preferences
|
|
# Set up user account
|
|
```
|
|
|
|
### Post-Installation Setup
|
|
```bash
|
|
# Install additional software
|
|
apt-layer.sh install firefox libreoffice vlc
|
|
|
|
# Configure gaming (for Corona)
|
|
apt-layer.sh install steam wine lutris
|
|
|
|
# Configure development (for Apex)
|
|
apt-layer.sh install code docker git
|
|
|
|
# Install NVIDIA drivers (if NVIDIA GPU detected)
|
|
apt-layer --nvidia-install auto
|
|
|
|
# Install DKMS modules for virtualization
|
|
apt-layer --dkms-install virtualbox-dkms 6.1.38
|
|
|
|
# Configure NVIDIA Prime for GPU switching
|
|
apt-layer --nvidia-prime-configure
|
|
|
|
# Customize desktop
|
|
# Configure themes and icons
|
|
# Set up user preferences
|
|
# Configure gaming peripherals
|
|
```
|
|
|
|
## System Management
|
|
|
|
### Package Management
|
|
```bash
|
|
# Install software
|
|
apt-layer.sh install package-name
|
|
|
|
# Update system
|
|
apt-layer.sh update
|
|
|
|
# Remove software
|
|
apt-layer.sh remove package-name
|
|
|
|
# List installed packages
|
|
apt-layer.sh list
|
|
|
|
# Search for packages
|
|
apt-layer.sh search package-name
|
|
```
|
|
|
|
### System Updates
|
|
```bash
|
|
# Check for updates
|
|
apt-layer.sh check-updates
|
|
|
|
# Apply updates atomically
|
|
apt-layer.sh update-system
|
|
|
|
# Rollback if needed
|
|
apt-layer.sh rollback
|
|
|
|
# View update history
|
|
apt-layer.sh history
|
|
```
|
|
|
|
### System Recovery
|
|
```bash
|
|
# Boot to recovery mode
|
|
# Select recovery option from GRUB menu
|
|
|
|
# Reset to factory state
|
|
apt-layer.sh factory-reset
|
|
|
|
# Restore from backup
|
|
apt-layer.sh restore-backup
|
|
|
|
# Repair system
|
|
apt-layer.sh repair-system
|
|
```
|
|
|
|
## Desktop Customization
|
|
|
|
### Theme and Appearance
|
|
- Easy theme switching
|
|
- Icon pack installation
|
|
- Desktop wallpaper management
|
|
- Desktop effects configuration
|
|
- Custom desktop layouts
|
|
|
|
### Gaming Configuration
|
|
- Steam integration
|
|
- Wine prefix management
|
|
- Gaming performance tuning
|
|
- Multi-monitor gaming setup
|
|
- Gaming peripheral configuration
|
|
- **NVIDIA driver configuration and optimization**
|
|
- **DKMS module management for gaming tools**
|
|
- **GPU switching with NVIDIA Prime**
|
|
- **Gaming-focused kernel parameter tuning**
|
|
|
|
### Development Environment
|
|
- IDE installation and configuration
|
|
- Development tool setup
|
|
- Container development environment
|
|
- Version control configuration
|
|
- Database development tools
|
|
|
|
## Project Structure
|
|
|
|
```
|
|
particle-os/
|
|
├── tools/ # Core system tools
|
|
│ ├── apt-layer.sh # Atomic package management
|
|
│ ├── composefs-alternative.sh # Layered filesystem
|
|
│ ├── bootupd-alternative.sh # Bootloader management
|
|
│ └── particle-os-desktop/ # Desktop-specific tools
|
|
├── main/ # Base Ubuntu image
|
|
├── kernel-cache/ # Ubuntu kernel caching
|
|
├── corona/ # KDE Plasma desktop (Aurora equivalent)
|
|
├── apex/ # GNOME desktop (Bluefin equivalent)
|
|
├── bazzite/ # Gaming-focused desktop (Bazzite equivalent, planned)
|
|
└── infrastructure/ # Build infrastructure
|
|
```
|
|
|
|
## Community and Support
|
|
|
|
### Documentation
|
|
- User-friendly guides
|
|
- Desktop-specific tutorials
|
|
- Gaming setup guides
|
|
- Development environment guides
|
|
- Troubleshooting guides
|
|
|
|
### Community Support
|
|
- Desktop-focused community
|
|
- Gaming community integration
|
|
- Developer community support
|
|
- User experience feedback
|
|
- Feature request system
|
|
|
|
### Contributing
|
|
- Desktop-focused development
|
|
- User experience improvements
|
|
- Gaming optimizations
|
|
- Development tool integration
|
|
- Documentation contributions
|
|
|
|
## Roadmap
|
|
|
|
### Phase 1: Core Desktop Experience
|
|
- [ ] Stable Corona (KDE Plasma) release
|
|
- [ ] Stable Apex (GNOME) release
|
|
- [ ] Basic gaming support
|
|
- [ ] Development tool integration
|
|
- [ ] User documentation
|
|
- [x] **DKMS and NVIDIA support** - ✅ **COMPLETED**
|
|
|
|
### Phase 2: Enhanced Desktop Features
|
|
- [ ] Bazzite (gaming-focused) release
|
|
- [ ] Advanced gaming optimizations
|
|
- [ ] Enhanced development tools
|
|
- [ ] Desktop customization tools
|
|
- [ ] Community features
|
|
- [x] **NVIDIA gaming variants** - ✅ **COMPLETED**
|
|
|
|
### Phase 3: Desktop Ecosystem
|
|
- [ ] Software center integration
|
|
- [ ] Theme and customization marketplace
|
|
- [ ] Gaming community features
|
|
- [ ] Developer tool marketplace
|
|
- [ ] Enterprise desktop features
|
|
|
|
## Conclusion
|
|
|
|
Particle-OS is designed specifically for desktop users who want the benefits of immutable systems without the complexity of cloud-native tooling. By focusing on desktop-first design principles, we create a system that's:
|
|
|
|
- **Simple to use** - No cloud complexity
|
|
- **Powerful for gaming** - Optimized for desktop gaming
|
|
- **Great for development** - Full development tool support
|
|
- **Reliable and safe** - Atomic updates with rollback
|
|
- **Familiar and comfortable** - Based on Ubuntu ecosystem
|
|
|
|
This desktop-first approach ensures that Particle-OS remains focused on what matters most: providing an excellent desktop computing experience for real users doing real work and play. |