Files
RedBear-OS/docs/07-RED-BEAR-OS-IMPLEMENTATION-PLAN.md
T
2026-04-14 11:43:37 +01:00

378 lines
8.6 KiB
Markdown

# 07 — Red Bear OS Implementation Plan
## Purpose
This document defines a clear, practical implementation plan for Red Bear OS. It focuses on
building a usable, validated system through disciplined packaging, profile-based composition, and
incremental hardware enablement, while preserving Redox architecture: userspace drivers, services,
and capability-oriented system boundaries.
This is the canonical public plan for how Red Bear OS should evolve at the repository level.
Detailed subsystem notes still live in focused documents such as
`local/docs/AMD-FIRST-INTEGRATION.md`, `docs/03-WAYLAND-ON-REDOX.md`, and
`docs/05-KDE-PLASMA-ON-REDOX.md`.
## Core Principles
### Preserve the architecture
- Keep drivers and services in userspace.
- Preserve clear system boundaries and capability-based design.
- Stay aligned with upstream Redox where practical.
### Packaging is the integration layer
- Deliver functionality as packages and package groups.
- Compose profiles from packages rather than monolithic changes.
- Prefer packaging and configuration work over invasive core-tree rewrites when possible.
### Keep Red Bear changes isolated
- Place Red Bear-specific work under `local/` whenever possible.
- Keep upstream-facing areas clean and rebase-friendly.
- Use scripts and overlays to make sync/rebase work predictable.
### Profiles are products
The supported product surfaces are:
- `redbear-minimal`
- `redbear-desktop`
- `redbear-full`
- `redbear-live`
Each profile must be buildable, testable, and documented.
### Validation over claims
- “Compiles” is not the same as “supported”.
- Every user-visible feature must map to a profile.
- Support status must be explicit, reproducible, and evidence-backed.
## System Structure
### Layers
1. **Upstream platform** — Redox kernel, libc, and core services
2. **Red Bear integration (`local/`)** — patches, recipes, configs, scripts, overlays
3. **Profiles** — concrete system builds assembled from packages and package groups
### Profiles
#### `redbear-minimal`
Console-focused.
- Boot
- Storage
- Package manager
- Wired networking
This is the primary development and validation target.
#### `redbear-desktop`
Wayland plus base desktop services.
This is the main integration environment for graphics, input, and desktop bring-up.
#### `redbear-full`
KDE Plasma target.
This profile should only include graphics and networking paths that are validated enough to be
presented as real user-facing system behavior.
#### `redbear-live`
Live, demo, and rescue environment.
This profile should prioritize diagnostics, recovery workflows, and installability.
## Packaging Model
### Package groups
- `base-core`
- `storage-base`
- `desktop-base`
- `wayland-base`
- `kde-base`
- `net-base`
- `net-vm`
- `net-wired-common`
- `net-wifi-experimental`
- `gpu-intel-experimental`
- `gpu-amd-experimental`
- `redbear-branding`
- `redbear-live-tools`
- `redbear-hwdiag`
### Rules
- All functionality is delivered via packages.
- Drivers are packaged individually.
- Profiles depend on package groups.
- Package metadata should make support status obvious.
## Workstreams
### 1. Repository discipline
Define and maintain contribution rules.
- Keep all custom work under `local/` where possible.
- Provide scripts for rebasing, diffing, and resyncing upstream.
- Make repository governance visible and repeatable.
**Outputs**
- `local/docs/repo-governance.md`
- Maintenance scripts
**Acceptance**
- Custom work is easy to identify.
- Upstream sync work is predictable and documented.
### 2. Profiles and packaging
Formalize profile definitions and package-group composition.
- Map each profile to package groups.
- Standardize package metadata and support labeling.
- Keep profile behavior reproducible.
**Acceptance**
- Profiles are reproducible and documented.
### 3. Driver substrate
Implement and stabilize the shared driver base.
- `redox-driver-sys` for shared driver plumbing
- PCI, MMIO, IRQ, and DMA support
- Driver daemon template for new device work
**Acceptance**
- A new driver can be created from a known template.
### 4. Graphics and Wayland
Drive the graphical stack through concrete milestones.
**Milestones**
- Run one Wayland application
- Start KWin
- Launch Plasma shell
**Acceptance**
- At least one profile runs a real graphical session.
### 5. Networking
#### Architecture
- Per-NIC driver daemons
- Network service for interfaces, DHCP, and routing
- D-Bus compatibility surface where desktop software expects it
#### Milestones
**N1: VM networking**
- `virtio-net`
- DHCP and package access
**N2: Wired hardware**
- Intel NICs
- Realtek NICs
**N3: KDE integration**
- NetworkManager-compatible D-Bus subset
**N4: Wi-Fi (experimental)**
- Single chipset family first
**Acceptance**
- Wired networking works in at least one real profile.
### 6. KDE integration
- Package the D-Bus session path
- Provide a networking shim where KDE expects one
- Provide an audio compatibility layer where needed
- Package session startup and startup dependencies
**Acceptance**
- A KDE session launches and its limitations are documented.
### 7. Live image and diagnostics
- Hardware detection tools
- Network diagnostics
- Graphics diagnostics
**Acceptance**
- The live image can diagnose common failure cases.
### 8. Validation and CI
#### Support labels
- `builds`
- `boots`
- `network`
- `wayland`
- `kde`
- `validated`
- `experimental`
#### Tasks
- VM-based tests
- Hardware validation matrix
**Acceptance**
- Support status is explicit and reproducible.
## Execution Phases
### Phase 1 — Repository discipline and profile reproducibility
- Establish repository rules for Red Bear-specific work.
- Make tracked profiles explicit.
- Reduce duplicated profile wiring through shared config fragments.
- Keep build helpers aligned with the tracked profile set.
**Primary targets**
- `redbear-minimal`
- `redbear-desktop`
**Acceptance**
- Profile composition is easier to audit.
- Shared Red Bear service wiring is not copy-pasted across profile files.
- Repository governance and support-language rules are documented.
### Phase 2 — Minimal system baseline
- Boot
- Package management
- VM networking
**Acceptance**
- `redbear-minimal` remains the primary reproducible validation baseline.
### Phase 3 — Driver and runtime substrate
- Shared driver layer
- Firmware loading
- Input/runtime service prerequisites
**Acceptance**
- The driver/runtime substrate needed by graphics and desktop work is explicitly packaged and wired.
### Phase 4 — Graphics and Wayland path
- Wayland runtime path
- Qt application bring-up
- Profile-level graphics integration
**Acceptance**
- At least one profile can carry a coherent graphical session path.
### Phase 5 — Wired networking and desktop integration
- Wired networking on real profiles
- KDE-visible networking path
- Session-level compatibility surfaces
**Acceptance**
- Wired networking works in at least one profile with documented limits.
### Phase 6 — KDE session viability
- KWin
- Plasma shell
- Session startup packaging
**Acceptance**
- KDE session launch is possible with documented limitations.
### Phase 7 — Hardware validation and support labels
- One fully validated profile
- Support matrix and validation evidence
**Acceptance**
- Support claims are explicit, reproducible, and tied to a profile.
### Phase 8 — Wi-Fi expansion
- Experimental Wi-Fi support for one chipset family first
**Acceptance**
- Wi-Fi work remains clearly marked as experimental until validated.
## Task Template
Every substantial work item should capture:
- **Title**
- **Objective**
- **Scope**
- **Files affected**
- **Dependencies**
- **Implementation notes**
- **Acceptance criteria**
- **Validation steps**
- **Risks**
## Final Direction
Red Bear OS should evolve as a profile-driven, package-defined system built on Redox architecture.
Progress should be measured by working profiles, not theoretical completeness.
### Priority order
1. Repository discipline
2. Profile reproducibility
3. VM usability
4. Graphics bring-up
5. Wired networking
6. KDE integration
7. Hardware validation
8. Wi-Fi expansion
## Related Documents
- [Root README](../README.md)
- [Architecture Overview](01-REDOX-ARCHITECTURE.md)
- [Gap Analysis & Roadmap](02-GAP-ANALYSIS.md)
- [Wayland on Redox](03-WAYLAND-ON-REDOX.md)
- [Linux Driver Compatibility Layer](04-LINUX-DRIVER-COMPAT.md)
- [KDE Plasma on Redox](05-KDE-PLASMA-ON-REDOX.md)
- [`local/docs/AMD-FIRST-INTEGRATION.md`](../local/docs/AMD-FIRST-INTEGRATION.md)
- [`local/docs/repo-governance.md`](../local/docs/repo-governance.md)
- [`local/docs/PROFILE-MATRIX.md`](../local/docs/PROFILE-MATRIX.md)