kae3g 9513: Personal Sovereignty Stack - Framework, seL4, RISC-V, Nock
Phase 1: Foundations & Philosophy | Week 2 | Deep Dive | Reading Time: 22 minutes
Optional Essay: This is a deep dive into personal computing sovereignty! Read 9511 (Kubernetes) first for context.
What You'll Learn (Deep Dive)
This essay explores personal computing sovereignty:
- Framework laptops (modular, repairable hardware)
- Why AMD for Linux (open drivers, performance)
- The complete sovereignty stack (hardware → Nock)
- 4-phase transition path (2025 → 2033+)
- Verified Unix utilities (Haskell/Rust on seL4)
- RISC-V future (open ISA, no vendor lock-in)
- Nock specifications (eternal semantics)
- Building systems that last generations
Prerequisites
- 9510: Unix Philosophy Primer - Foundation principles
- 9511: Kubernetes - Enterprise context
- 9500: What Is a Computer? - Hardware foundations
- 9503: What Is Nock? - Specification language for sovereignty
- 9507: Helen Atthowe - Long-term thinking
Personal Sovereignty in Computing
After learning about Kubernetes (Essay 9511 - enterprise orchestration), let's explore the opposite end of the spectrum.
What if you want to:
- Own your hardware (no cloud dependency)
- Understand every layer (from silicon to apps)
- Have privacy (no telemetry, no surveillance)
- Have longevity (systems that last decades)
- Learn (tinker, experiment, break things safely)
This is personal sovereignty computing.
The insight: Kubernetes (scale) and Framework (sovereignty) are complementary (Essay 9511). This essay focuses on the sovereignty path.
Part 1: Framework Laptops - Hardware You Own
Framework (2021, San Francisco) makes modular, repairable laptops.
This is Unix philosophy applied to hardware (Essay 9510):
- Do one thing well: Each module (CPU, GPU, ports, keyboard) is specialized
- Composable: Swap parts independently (like piping programs)
- Replaceable: Upgrade one component without replacing whole system
- Standard interfaces: USB-C expansion cards (like stdin/stdout)
Unix taught us software modularity. Framework teaches us hardware modularity.
Framework 13 (13.5" display)
- CPU: AMD Ryzen 7040 series
- RAM: Up to 64GB DDR5
- Storage: 2x NVMe SSD slots
- Ports: Swappable expansion cards (USB-C, USB-A, HDMI, DisplayPort, storage, etc.)
- Modular: Every part replaceable (screen, keyboard, motherboard, battery)
Framework 16 (16" display)
- CPU: AMD Ryzen 7040 series (8+ cores)
- GPU: Swappable (AMD RX 7700S or integrated)
- RAM: Up to 96GB DDR5
- Storage: 2x NVMe slots
- Expansion bay: Modular GPU or extra battery
- Input deck: Swappable (keyboard, numpad, macropad)
Why this matters:
- Right to repair: You can fix it yourself
- Longevity: Upgrade motherboard in 5 years, keep everything else
- No planned obsolescence: Company ethos is "build things that last"
- Open: Schematics available, community-supported
Comparison to other laptops:
- MacBook: Soldered everything, no repair
- ThinkPad: Better than most, but still proprietary
- Framework: You own it
Why AMD for Linux
AMD Ryzen + Radeon is ideal for Linux:
CPU Advantages:
- Open-source firmware: PSP (Platform Security Processor) accessible
- Performance: Ryzen 7040 series (8 cores, 16 threads, 5.1 GHz boost)
- Efficiency: Excellent battery life
- Linux-friendly: AMD actively works with Linux kernel devs
GPU Advantages:
- Open-source drivers:
amdgpu
kernel driver (mainlined!) - No proprietary blob (fully open source)
- Vulkan support: Mesa RADV driver (excellent performance)
- No Wayland issues (excellent compatibility)
For sovereignty stack:
- Verifiable: Open drivers = auditable code
- Controllable: No proprietary firmware mysteries
- Future-proof: As hardware evolves, drivers evolve with community
The Personal Sovereignty Stack (on Framework)
Here's the vision (Essays 9948-9960):
┌──────────────────────────────────────┐
│ Your Applications │
│ (Clojure, Rust, whatever you want) │
└──────────────────────────────────────┘
↓
┌──────────────────────────────────────┐
│ Nix (Package Manager) │
│ - Declarative configuration │
│ - Reproducible builds │
│ - /nix/store immutable │
└──────────────────────────────────────┘
↓
┌──────────────────────────────────────┐
│ User-space Utilities │
│ - grep, cat, ls (verified!) │
│ - Written in Haskell/Rust │
│ - Compiled to RISC-V │
└──────────────────────────────────────┘
↓
┌──────────────────────────────────────┐
│ seL4 Microkernel │
│ - Formally verified (10K lines) │
│ - Capability-based security │
│ - Isolation guarantees │
└──────────────────────────────────────┘
↓
┌──────────────────────────────────────┐
│ RISC-V ISA (future) │
│ - Open instruction set │
│ - No proprietary lock-in │
└──────────────────────────────────────┘
↓
┌──────────────────────────────────────┐
│ AMD Ryzen Hardware (today) │
│ - Framework 13 or 16 │
│ - Open drivers, repairable │
└──────────────────────────────────────┘
↓
┌──────────────────────────────────────┐
│ Nock Specification (eternal) │
│ - 12 rules, frozen │
│ - Specifies all semantics │
│ - Auditable by anyone │
└──────────────────────────────────────┘
Each layer:
- Verifiable: Open source, auditable
- Replaceable: Upgrade without breaking stack
- Composable: Each layer does one thing well (Unix philosophy, Essay 9510!)
- Sovereign: You control it, not a vendor
This is Unix philosophy, end-to-end:
- Hardware (Framework): Modular, swappable
- ISA (RISC-V): Open, simple, composable
- Kernel (seL4): Minimal, verified, does one thing (isolation)
- Userspace (Nix, utilities): Each tool focused, composable
- Specification (Nock): 12 rules, eternal, simple
From silicon to semantics: Unix principles all the way down (and up!).
The Transition Path
Today → Future:
Phase 1: Today (2025)
- Hardware: Framework 13/16 with AMD
- OS: NixOS (declarative Linux)
- Kernel: Linux (5.15+, good AMD support)
- Userspace: Haskell/Rust utilities (compile to x86-64)
- Specification: Begin Nock specs for core utilities
Phase 2: Near Future (2026-2028)
- Hardware: Still Framework (maybe upgrade motherboard)
- OS: SixOS (NixOS without systemd, Essay 9952)
- Init: s6 or runit (simple supervision, Essay 9956)
- Userspace: More verified utilities (formal proofs)
- Specification: Nock specs for common workflows
Phase 3: Long-term (2029-2032)
- Hardware: Framework with RISC-V motherboard (when available!)
- OS: seL4-based (formally verified kernel)
- Userspace: Haskell/Rust compiled to RISC-V
- Specification: Complete Nock-based OS specification
- Sovereignty: Total stack ownership
Phase 4: Generational (2033+)
- Hardware: RISC-V evolution (whatever comes)
- OS: seL4 or successor (verified)
- Specification: Nock (unchanged - eternal!)
- Legacy: Pass systems to next generation
The key: Build for decades, not quarters.
Kubernetes vs. Framework: When to Use Which
Use Kubernetes When:
1. Multi-tenancy
- Multiple teams deploying apps
- Shared infrastructure
- Resource quotas, isolation
2. Scale
- 100+ services
- 1000+ containers
- Auto-scaling needed
3. High Availability
- Uptime critical (99.99%+)
- Geographic distribution
- Fault tolerance automatic
4. Team Coordination
- Many developers
- CI/CD pipelines
- GitOps workflows
5. Microservices
- Service mesh needed
- Complex networking
- Independent deployments
Example use cases:
- SaaS products (Stripe, Shopify)
- E-commerce platforms
- Social media backends
- Enterprise applications
Use Framework (Personal Stack) When:
1. Learning
- Understanding systems deeply
- Experimenting freely
- Breaking/fixing things
2. Privacy
- No telemetry
- No surveillance
- Data stays local
3. Sovereignty
- Own your hardware
- Control your software
- No vendor lock-in
4. Longevity
- Build for decades
- Upgrade incrementally
- No forced obsolescence
5. Development
- Local testing
- Rapid iteration
- Full control
6. Research
- Formal verification
- OS development
- Security research
Example use cases:
- Personal computing
- Software development
- Research/academia
- Privacy-focused work
- Long-term digital archiving
The Hybrid Approach
Most people need BOTH:
At Work (Kubernetes):
┌─────────────────────────────────┐
│ Your Company's k8s Cluster │
│ │
│ - Production workloads │
│ - Team collaboration │
│ - Customer-facing services │
│ - Managed by DevOps │
└─────────────────────────────────┘
At Home (Framework):
┌─────────────────────────────────┐
│ Your Framework Laptop │
│ │
│ - Personal projects │
│ - Learning/experimentation │
│ - Private data │
│ - Full control │
└─────────────────────────────────┘
The Bridge:
Develop locally (Framework + NixOS)
Deploy to cloud (Kubernetes cluster)
Best of both worlds:
- Rapid local iteration (no cloud latency)
- Production scalability (k8s handles it)
- Cost-effective (local development is free)
- Sovereignty where it matters (personal data stays local)
Kubernetes on Your Framework?
Can you run Kubernetes locally?
Yes! Several options:
1. Minikube
# Single-node k8s cluster on your laptop
minikube start
# Deploy apps locally
kubectl apply -f deployment.yaml
Pros: Full k8s API, good for learning
Cons: Resource-heavy (needs VM)
2. K3s
Lightweight Kubernetes (Rancher Labs):
- 100MB binary (vs 1GB+ for k8s)
- Single binary
- Great for local dev, edge, IoT
# Install curl -sfL https://get.k3s.io | sh - # Use export KUBECONFIG=/etc/rancher/k3s/k3s.yaml kubectl get nodes
3. Podman (Kubernetes-compatible)
Daemonless container engine:
- No root required
- Kubernetes YAML compatible
- Lightweight (no orchestration overhead)
# Run pod from k8s YAML podman play kube pod.yaml
Best for: Testing k8s configs locally before deploying.
The Philosophy: Centralization vs. Decentralization
Kubernetes = Managed Centralization
- Central control plane (API server, etcd)
- Distributed execution (workloads on nodes)
- Declarative coordination (desired state reconciliation)
Trade-offs:
- ✅ Handles complexity at scale
- ✅ Team coordination built-in
- ❌ Single point of failure (control plane)
- ❌ Requires expertise to operate
- ❌ Vendor lock-in (cloud k8s services)
Framework = Personal Decentralization
- No central authority (you are the admin)
- Local execution (everything on your hardware)
- Direct control (no abstraction layers)
Trade-offs:
- ✅ Complete sovereignty
- ✅ No external dependencies
- ✅ Privacy guaranteed
- ❌ Single machine limitations
- ❌ No automatic high availability
- ❌ Requires manual coordination (if multi-machine)
The insight: Different problems need different solutions.
But Unix philosophy applies to BOTH (Essay 9510):
- Kubernetes: Compose pods → services → deployments (modular cloud)
- Framework: Compose CPU → RAM → GPU → ports (modular hardware)
- Same principle: Do one thing well, make it replaceable, compose into systems
This is why Unix philosophy endures (50+ years!): It's scale-independent. Works for:
- Command-line tools (
grep | sort
) - Enterprise clouds (Kubernetes)
- Personal laptops (Framework)
- Operating systems (Unix, seL4)
The principle is universal: Simplicity, modularity, composition.
Try This
Exercise 1: Run Kubernetes Locally
Install minikube or k3s:
# k3s (simpler)
curl -sfL https://get.k3s.io | sh -
export KUBECONFIG=/etc/rancher/k3s/k3s.yaml
# Deploy nginx
kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --port=80 --type=NodePort
# Access
kubectl get services
# Visit http://localhost:<PORT>
Observe:
- Declarative deployment
- Automatic pod creation
- Self-healing (kill pod, watch it restart)
Exercise 2: Research Framework Laptops
Visit: framework.computer
Compare:
- Framework 13 vs 16
- AMD advantages
- Your current laptop
Questions:
- Can you repair your current laptop?
- Can you upgrade CPU without replacing everything?
- Are drivers open source?
- Will it work in 10 years?
Exercise 3: Plan Your Sovereignty Stack
Design your ideal system:
- Hardware: Framework 13 or 16? (AMD recommended)
- OS: NixOS? Artix? Void?
- Init: systemd, s6, runit, OpenRC?
- Userspace: Which tools do you need?
- Specification: Which workflows to specify in Nock?
This is YOUR plan. Start simple, evolve over time.
Going Deeper
Related Essays
- 9500: What Is a Computer? - Hardware foundations
- 9501: What Is Compute? - Cloud vs P2P
- 9503: What Is Nock? - Specification language
- 9510: Unix Philosophy - Composition principles
- 9952: SixOS - NixOS without systemd (9948-9960!)
- 9956: OpenRC & runit - Simple init systems (9948-9960!)
- 9958: Framework Hardware - Choosing your hardware (9948-9960!)
- 9960: Grainhouse - Complete sovereignty vision (9948-9960!)
External Resources
- Kubernetes Documentation - kubernetes.io
- Framework Laptop - framework.computer
- K3s - k3s.io (lightweight k8s)
- seL4 - sel4.systems
- RISC-V - riscv.org
- "Kubernetes Up & Running" - Kelsey Hightower et al.
Reflection Questions
- Why does Kubernetes dominate enterprise? (Solves real scale problems, vendor support, ecosystem)
- Can you have sovereignty in the cloud? (Partial - you control software, not hardware. True sovereignty requires owning silicon.)
- Is Kubernetes overkill for most projects? (Often yes! Start simple, scale when needed.)
- Why Framework over MacBook? (Repairability, ownership, longevity, open drivers - BUT MacBooks have their place too!)
- Will RISC-V replace x86/ARM? (Slowly, yes - open ISAs are inevitable long-term)
- How does Nock relate to Kubernetes? (Both are declarative specs! Kubernetes = cluster state, Nock = computation semantics)
- Can you run seL4 on Framework? (Not officially yet, but Genode OS runs on it - step in that direction!)
- Is this practical or idealistic? (Both! Framework works TODAY. seL4/RISC-V coming soon. Nock is aspirational but grounded.)
Summary
Two Paradigms:
Kubernetes (Enterprise Orchestration)
- Manage: 1000s of containers across 100s of machines
- Scale: Automatic scaling, load balancing, self-healing
- Coordination: Multiple teams, GitOps, service mesh
- Use when: Multi-tenancy, high scale, team coordination needed
Core concepts:
- Pods (smallest unit)
- Deployments (manage replicas)
- Services (stable networking)
- Declarative (YAML configs)
Philosophy: Managed centralization with distributed execution
Framework + Sovereignty Stack (Personal Computing)
- Own: Hardware, software, data
- Control: Every layer, verifiable, auditable
- Longevity: Build for decades, not quarters
- Privacy: No telemetry, no surveillance
The Stack:
- Hardware: Framework 13/16 (AMD for Linux)
- OS: NixOS → SixOS (declarative, reproducible)
- Kernel: Linux → seL4 (verified)
- ISA: x86-64 → RISC-V (open)
- Specification: Nock (12 rules, eternal)
Philosophy: Personal sovereignty through verification
The Synthesis
Use BOTH:
- Kubernetes at work (scale, teams, production)
- Framework at home (learning, privacy, sovereignty)
- Develop locally, deploy to cloud (best of both worlds)
The future:
- Kubernetes evolves (more efficient, simpler)
- Framework evolves (RISC-V motherboards!)
- Both coexist (different problems, different solutions)
In the Valley:
- We understand enterprise needs (Kubernetes)
- We prioritize personal sovereignty (Framework + verification)
- We build for generations (Nock, seL4, RISC-V)
- We choose consciously (right tool for right problem)
- We apply Unix philosophy everywhere (Essay 9510): modularity, composition, simplicity - from cloud orchestration to laptop hardware!
The through-line:
- 1970s: Unix philosophy → simple programs, pipes
- 2010s: Kubernetes → simple pods, services (Unix at scale)
- 2020s: Framework → simple modules, swappable (Unix in hardware)
- Future: Nock + seL4 + RISC-V → Unix philosophy, formally verified
We're not abandoning Unix. We're perfecting it.
Plant lens: "Kubernetes is industrial farming (monoculture, scale, efficiency). Framework is a personal garden (diversity, sovereignty, learning). Both have their place—feed cities, feed families."
Choosing Your Distribution: Artix vs. SixOS vs. Void
Now that you understand the sovereignty stack, which Linux distribution should you run on your Framework?
The Three Paths (Distilled from Essay 9959)
Artix Linux (The Pragmatic Path)
What It Is:
- Arch Linux without systemd
- Choice of init: OpenRC, runit, s6, or dinit
- Full AUR (Arch User Repository) access
- Rolling release model
Strengths:
- ✅ Mature ecosystem - Everything works, extensive documentation
- ✅ Massive software - AUR has 85,000+ packages
- ✅ Active community - Large user base, quick support
- ✅ No systemd - Use OpenRC, runit, or s6
- ✅ Proven stability - Production-ready today
Tradeoffs:
- ⚠️ Manual configuration (more work than NixOS)
- ⚠️ Package conflicts possible (dependency hell)
- ⚠️ No atomic rollbacks (like NixOS has)
Best For: Experienced Linux users who want systemd-free Arch with maximum software availability.
SixOS (The Visionary Path)
What It Is:
- NixOS without systemd (announced 38C3, January 2025)
- s6 supervision (200KB vs systemd's 1.5MB)
- "Infusion" paradigm (services as packages)
- Declarative configuration
Strengths:
- ✅ Declarative - Entire system in one config file
- ✅ Atomic rollbacks - Boot previous config if something breaks
- ✅ Reproducible - Same config = same system
- ✅ Nix ecosystem - Access to 80,000+ Nix packages
- ✅ Minimal supervision - s6 is tiny, simple, auditable
Tradeoffs:
- ⚠️ Early stage - Announced 2025, still in development
- ⚠️ Learning curve - Nix is different from traditional Linux
- ⚠️ Smaller community - Newer project, fewer users (for now)
Best For: Patient builders who want declarative, reproducible systems and are willing to help develop the ecosystem.
Void Linux (The Minimalist Path)
What It Is:
- Built from scratch (not a fork)
- runit init system (crash-only design)
- musl-libc (minimal C library)
- XBPS package manager
Strengths:
- ✅ Ultra-minimal - No bloat, clean design
- ✅ runit native - Crash-only from the start
- ✅ musl-libc - Smaller, cleaner than glibc
- ✅ Independent - Not derived from Debian/Arch/etc.
Tradeoffs:
- ⚠️ Smaller package set - Less software available
- ⚠️ Manual configuration - Like Arch, more work
- ⚠️ Smaller community - Fewer users and resources
Best For: Minimalists who prioritize simplicity and runit's crash-only philosophy.
Our Path Forward: Why SixOS + Grainstore
After exploring all options (see Essay 9959 for deep analysis), we're choosing SixOS. Here's why:
Reason 1: Declarative Configuration
NixOS's killer feature: Your entire system is ONE config file.
# configuration.nix describes EVERYTHING
{
boot.loader.grub.enable = true;
services.s6.enable = true; # SixOS uses s6!
environment.systemPackages = [ pkgs.brave pkgs.cursor ];
# ... complete system specification
}
Why this matters:
- Version control - Your OS is in git!
- Reproducibility - Same config on every machine
- Rollback - Boot previous config if new one breaks
- Documentation - Config IS documentation
Artix/Void don't have this. They use traditional config files scattered across /etc/
.
Reason 2: The Grainstore Strategy
SixOS + Nix enables the Grainstore:
{:grainstore-nix-synergy
{:nix-features
["Declarative packages"
"Reproducible builds"
"Multiple versions coexist"
"Atomic updates"]
:grainstore-benefits
["Vendor dependencies in Nix"
"Nock specs for verification"
"Test suite for equivalence"
"Jets for optimization"]
:result "Century-scale software independence"}}
Our strategy:
- Specify dependencies in Nock (eternal)
- Vendor them in Nix (reproducible)
- Verify with tests (proven equivalence)
- Deploy on Framework 16 (sovereign hardware)
Artix can't do this - No declarative package management
Void can't do this - No Nix-like reproducibility
Reason 3: s6 Without Sacrificing Ecosystem
SixOS gives us:
- ✅ s6 supervision (200KB, simple, auditable)
- ✅ Nix ecosystem (80,000+ packages)
- ✅ Declarative config (reproducible, version-controlled)
- ✅ Atomic rollbacks (safety net for experiments)
Artix gives us:
- ✅ s6/OpenRC/runit (your choice)
- ✅ AUR ecosystem (85,000+ packages)
- ❌ Manual config (traditional
/etc/
files) - ❌ No atomic rollbacks
Void gives us:
- ✅ runit (crash-only from the start)
- ✅ Ultra-minimal (clean design)
- ❌ Smaller ecosystem (fewer packages)
- ❌ Manual config
Winner: SixOS - We get s6 + Nix + declarative + ecosystem!
Reason 4: Future-Proofing
The long game (from Phase 2-4 roadmap):
{:evolution-path
{:phase-1-today "SixOS on Framework (x86-64, Linux)"
:phase-2-2028 "SixOS + verified utilities (s6 from Grainstore)"
:phase-3-2032 "SixOS + seL4 kernel (formally verified)"
:phase-4-2040 "SixOS + RISC-V (open silicon + open OS)"}}
Why SixOS is the right foundation:
- Nix's declarative model → Easy to swap kernels (Linux → seL4)
- Nix's reproducibility → Easy to target new architectures (x86 → RISC-V)
- Grainstore strategy → Dependencies already specified in Nock
- Community alignment → SixOS developers care about verification
Artix is stuck on Arch's traditional model
Void is minimal but lacks declarative power
SixOS can evolve all the way to RISC-V + seL4!
Reason 5: The Grainstore IS SixOS's Future
Our Grainstore work directly benefits SixOS:
# Today: Specify s6 in Nock
grainstore/specs/s6.nock.md ✅
# Tomorrow: Verify Clojure implementation
src/grainstore/s6.clj ✅ (65 tests passing!)
# Next Week: Create Nix overlay
grainstore/overlays/s6-grainstore.nix 🔲
# Next Month: Boot Framework 16 using Grainstore s6
nixos-rebuild switch --flake .#sixos-framework-16 🔲
This work:
- Makes SixOS more robust (Grainstore versions never break)
- Makes SixOS verifiable (Nock specs + tests)
- Makes SixOS eternal (specifications outlast implementations)
- Makes SixOS sovereign (we control dependencies)
Artix/Void can't leverage this - They lack Nix's declarative package management.
Decision: SixOS + Grainstore + Framework 16
Our stack:
Hardware: Framework 16 (AMD Ryzen 7040, modular, repairable)
OS: SixOS (NixOS without systemd, declarative)
Init: s6 (from Grainstore, Nock-specified, verified)
Desktop: Wayland + Hyprland (AMD optimized)
Apps: From Grainstore where possible
Why this wins:
- Today: Works (NixOS is stable, Framework is shipping)
- Tomorrow: Verifiable (Grainstore specifications)
- Future: Evolvable (seL4, RISC-V, Nock)
This isn't just installing Linux. This is planting seeds for century-scale computing.
Next: Ready to make this real? Essay 9514 shows you:
- How to build the Grainstore (s6, runit, Nock specs)
- How to build the SixOS ISO (using Babashka!)
- How to flash to USB (cross-platform, safe)
- How to install on Framework 16 (step-by-step)
- How to configure s6 supervision (from the Grainstore!)
Or skip to functional programming (Essay 9520) to continue the main curriculum path.
The seeds are ready. The soil is prepared. Let's plant the garden. 🌱
Navigation:
← Previous: 9512 (Unix Deep) | Phase 1 Index | Next: 9514 (SixOS Framework)
Or Skip to Main Path: 9520 (Functional Programming)
Bridge to Narrative: For the complete sovereignty quest, see 9958-9960 in the Chronicles!
Metadata:
- Phase: 1 (Foundations)
- Week: 2
- Type: DEEP DIVE (optional, advanced)
- Prerequisites: 9510, 9511, 9500, 9503, 9507
- Concepts: Framework laptops, AMD for Linux, sovereignty stack, seL4, RISC-V, Nock, 4-phase transition, verified utilities
- Reading Time: 22 minutes (comprehensive!)
- Plant Lens: Personal gardens vs. industrial farming - both have their place!
- Hands-On: Research Framework, plan sovereignty stack
Copyright © 2025 kae3g | Dual-licensed under Apache-2.0 / MIT
Competitive technology in service of clarity and beauty