Skip to content

Repository files navigation

SOL

status: concept/pre-alpha scope: operating-system

A modern, application-first operating system built on the Linux kernel.

SOL is a complete operating system, not a desktop layer installed on an arbitrary host distribution. It owns the boot experience, system image and updates, package manager, application bundle format, atomic permission policy, system-managed accounts, native SCP compositor, shell, system services, application framework, and visual language.

SOL still reuses proven Linux components where they are implementation building blocks. Owning an OS boundary does not mean rewriting the kernel, drivers, Mesa, PipeWire, or every protocol.

Reuse Linux. Own the operating-system contract.

Status

Concept / Pre-Alpha — foundation and implementation slices exist, but no daily-driver or release-ready desktop claim is made.

The compositor now exposes only SCP (SOL Compositor Protocol). Repository-owned clients complete authenticated headless toplevel and layer-surface round trips; native rendering, input, output and hardware backends remain open work.

See the Roadmap for the S0–S5 maturity model.

Phase 2 M2 is in progress: semantic components, layout, tokens, lifecycle, commands, graphics, motion, and a private Slint adapter have implementation evidence. Native renderer/input pacing and real assistive-technology validation remain closure gates.

The OS rebaseline adds these system foundations:

  • sol-image: byte-reproducible development manifests with exact kernel, initrd, root-image, generation, and runtime-contract verification; the production format will separate signed content identity from A/B placement.
  • Boot foundation: stable Stage-0, separately trialed sol-boot managers, independent recovery, authenticated health/anti-rollback, and verified content-identified deployments placed in A/B slots. Only the deployment selector and development UEFI adapter exist today.
  • sol-pkg + sol-packaged: one privileged staging service for manager, recovery, deployment, and signed .app transactions; each trust layer validates and activates its own artifacts.
  • sol-securityd: application identity, sandbox construction, capability grants, atomic consent/lease transactions, revocation, and audit.
  • sol-accountsd + sol-vaultd: system-managed accounts and encrypted credentials exposed to apps only through explicit scoped handles.
  • SOL Framework Runtime: major + minimum contract revision + named-feature descriptors, with compatible app resolution across OS rollback, so third-party apps vendor non-SOL dependencies without bundling the whole platform runtime.
  • sol-gtk / sol-qt: planned bundled adapters that give non-native toolkits the same portals, accounts, permissions, accessibility, and lifecycle APIs without injecting host libraries.

See OS Platform Definition for the normative boundary.

cargo test -p sol-compositor --test scp_session

# Live check: start the compositor, then run an SCP-native client.
cargo run -p sol-compositor                         # terminal 1
cargo run -p sol-compositor --example scp-client    # terminal 2

SolKit progress: sol-ui provides semantic component API (Button, TextField, Toolbar, TabBar, Tab, HStack, VStack) using sol-design tokens and a private Slint adapter. Native GPU/input pacing and real assistive-technology validation remain open.

Repository layout

Path Purpose Status
compositor/ sol-compositor: native SCP compositor service 🟡 protocol works headlessly; renderer/input/hardware closure pending
shell/ sol-shell: top bar, dock, launcher, overview, system UI 🟡 top-bar configure/commit slice plus Phase 4 renderer-neutral foundations
sdk/sol-design Design tokens (single source of truth for visuals) 🟡 S2 token foundation and consistency tests
sdk/sol-ui SolKit UI components (semantic, not visual-metrics) 🟡 S2 component/layout/adapter foundations
sdk/sol-app Application framework (lifecycle, commands, …) 🟡 S2 lifecycle and command foundations
sdk/sol-graphics Rendering abstraction 🟡 S2 abstraction foundation
sdk/sol-animation Animation engine (interruptible / motion tokens) 🟡 S2 semantic motion foundation
sdk/sol-system System API (restricted) 🔲 placeholder → Phase 2
services/ sol-settingsd, sol-notificationd, sol-portal, sol-ime 🟡 mixed S1–S3 foundations; real adapters and product surfaces remain open
apps/ First-party apps: Files, Terminal, Settings 🔲 placeholders → Phase 3
protocols/ SCP + typed IPC schema home 🔲 Rust SCP messages exist; no stable external schema yet
boot/ sol-image manifest tooling; target home of sol-boot, recovery, and verified-slot policy 🟡 Phase 7 manifest foundation
packaging/sol/ Target home of .app tooling and sol-pkg contracts 🔲 planned
security/ Target home of sandbox, permission, consent, and audit services 🔲 planned
accounts/ Target home of system accounts, credential vault, and provider brokers 🔲 planned
compat/ Target home of explicit toolkit adapters 🔲 planned
tests/ Cross-component integration tests 🟡 selected S3 headless/service boundaries; real-session matrix open
docs/ PRD, ROADMAP, engineering decisions 🟡 living

Documentation

Doc What it is
Product Requirements Document What SOL is and why (§1–42); core principles, architecture, MVP, phases
OS Platform Definition Normative OS boundary, .app, atomic permissions, accounts, and runtime contracts
Shell Experience Dock, Launcher, global menu, window controls, status zone, tray, and Live Capsule contracts
Roadmap Engineering execution view of the PRD phases, with deliverables & acceptance
Historical Wayland protocol matrix Retired frontend evidence retained for migration history
Decision log ADRs for boot, packages, security, runtime, compositor, SDK, IPC, and distribution
Docs index How the docs fit together + pointers
Component READMEs compositor/, sdk/*, services/*, apps/*, protocols/

Build

Development Build

# Whole workspace (SCP-only; no Wayland/Smithay dependency).
cargo check --workspace
cargo build --workspace

# Run the native SCP compositor service.
cargo run -p sol-compositor

The compositor binds $XDG_RUNTIME_DIR/sol-compositor-0 (override with SOL_SCP_SOCKET) and serves authenticated SCP clients on it.

ISO Build

To build a bootable ISO image with the latest stable kernel:

# Build complete ISO (kernel + platform + rootfs + ISO generation)
./scripts/build-iso.sh

# Test the ISO in QEMU
qemu-system-x86_64 -m 2G -smp 2 -cdrom build/iso/sol-*.iso

The ISO build system automatically fetches the latest stable kernel from kernel.org and creates a UEFI-only development image. It directly exercises the current sol-boot manager and is not the final Stage-0/recovery topology. See docs/iso-build.md for detailed documentation and CI/CD setup.

Principles (from PRD §4)

  • Consistency First — enforced by architecture, not discipline (§19.1).
  • SCP Native — applications target the SOL protocol and runtime directly.
  • Framework First — behavior comes from SolKit, not from per-app conventions (§4.3).
  • Transactional System — boot, update, activation, rollback, and recovery are one coherent lifecycle.
  • Self-contained Applications — each .app vendors its non-SOL dependencies and receives system access only through declared capabilities.
  • Explicit Minimum Authority — each protected access is a smallest-scope, atomic, independently revocable grant; declaration and installation grant nothing.
  • Defined Authority Continuity — verified same-publisher updates may retain durable grants but never live handles; uninstall/reinstall and discontinuous publishers inherit no authority.
  • System-managed Accounts — applications receive scoped account handles, never ownership of the account database or durable credentials.
  • Stable Platform Runtime — versioned SOL frameworks let applications avoid carrying common platform runtimes without depending on arbitrary host libraries.
  • Interactive Motion — interruptible, gesture-driven, spring-based animation as part of the interaction model, not decoration (§4.4).
  • Explicit Adaptation — non-native toolkits require a SOL adapter and do not receive an implicit compatibility socket.
  • Stable Shell Geography — Dock at the bottom, foreground app menu at the upper-left, and trusted information/status/Live Capsule surfaces at the upper-right.

Also see

Star History

Stargazers over time for viloris-org/SOL

Rendered in-repo by .github/workflows/star-history.yml — no third-party action and no external chart service.

License

SOL is licensed under the BSD 3-Clause License.

About

An application-first operating system built on the Linux kernel, with a native compositor, transactional updates, capability-based security, and SolKit UI.

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages