131 lines
5.1 KiB
Markdown
131 lines
5.1 KiB
Markdown
<p align="center">
|
||
<img alt="Red Bear OS" width="200" src="assets/redbear-icon.png">
|
||
</p>
|
||
|
||
<h1 align="center">Red Bear OS</h1>
|
||
|
||
<p align="center">
|
||
<strong>A microkernel operating system written in Rust, derived from <a href="https://www.redox-os.org">Redox OS</a></strong>
|
||
</p>
|
||
|
||
<p align="center">
|
||
<a href="./LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="MIT"></a>
|
||
<img src="https://img.shields.io/badge/arch-x86__64-red" alt="x86_64">
|
||
<img src="https://img.shields.io/badge/status-active%20development-orange" alt="Status">
|
||
</p>
|
||
|
||
---
|
||
|
||
## What is Red Bear OS?
|
||
|
||
Red Bear OS is a general-purpose, Unix-like operating system with a **microkernel architecture**, written in **Rust**. It is a full fork of Redox OS, frozen at release 0.1.0, with added hardware support, filesystem drivers, and a KDE Plasma desktop path.
|
||
|
||
**Goals**:
|
||
- **AMD & Intel parity** — first-class support for both platforms on bare metal
|
||
- **KDE Plasma desktop** — Wayland-based desktop environment via the KWin compositor
|
||
- **Hardware GPU acceleration** — AMD GPU (amdgpu) and Intel GPU drivers via `redox-drm`
|
||
- **Modern subsystems** — USB, Wi‑Fi, Bluetooth, ext4, GRUB, D-Bus
|
||
- **Offline-first builds** — reproducible from archived, BLAKE3-verified sources
|
||
|
||
## Quick Start
|
||
|
||
### Prerequisites
|
||
|
||
Linux x86_64 host with Rust nightly, QEMU, nasm, and standard build tools.
|
||
See the [Redox Build Guide](https://doc.redox-os.org/book/podman-build.html) for full setup.
|
||
|
||
### Build & Run
|
||
|
||
```bash
|
||
# Clone
|
||
git clone https://gitea.redbearos.org/vasilito/RedBear-OS.git
|
||
cd RedBear-OS
|
||
|
||
# Build and run the desktop target in QEMU
|
||
./scripts/run.sh --build
|
||
|
||
# Build a live ISO for bare metal
|
||
./scripts/build-iso.sh redbear-full
|
||
|
||
# Build the text-only recovery target
|
||
./scripts/run.sh --build --config redbear-mini
|
||
```
|
||
|
||
### Public Scripts
|
||
|
||
| Script | Purpose |
|
||
|--------|---------|
|
||
| `scripts/run.sh` | Build and run in QEMU (`-b` to build, `-c <config>` for target) |
|
||
| `scripts/build-iso.sh` | Build a live ISO for bare-metal boot |
|
||
| `scripts/build-all-isos.sh` | Build all live ISO targets |
|
||
| `scripts/network-boot.sh` | PXE network boot helper |
|
||
| `scripts/dual-boot.sh` | Dual-boot installation helper |
|
||
|
||
### Config Targets
|
||
|
||
| Target | Type | Description |
|
||
|--------|------|-------------|
|
||
| `redbear-full` | Desktop | Wayland + KDE + GPU drivers + D-Bus services |
|
||
| `redbear-mini` | Console | Text-only recovery / install target |
|
||
| `redbear-grub` | Console | Text-only with GRUB boot manager |
|
||
|
||
## Current Status
|
||
|
||
Red Bear OS **boots to a login prompt** in QEMU with working wired networking, D-Bus system bus, hardware detection daemons, and filesystem support (RedoxFS, ext4, FAT).
|
||
|
||
| Area | Status |
|
||
|------|--------|
|
||
| Boot (ACPI/x2APIC/SMP) | ✅ Bare-metal proven |
|
||
| Userspace drivers (PCI, storage, net) | ✅ Working in QEMU |
|
||
| D-Bus system bus + services | ✅ Working (login1, PolicyKit, UDisks, UPower) |
|
||
| ext4 / FAT filesystems | ✅ Compiles, installer-wired |
|
||
| POSIX gaps (relibc) | 🚧 Bounded Wayland-facing support |
|
||
| DRM/KMS display drivers | 🚧 AMD + Intel compile; HW validation pending |
|
||
| Wayland compositor | 🚧 Bounded proof; Qt6/KF6 clients crash at init |
|
||
| KDE Plasma desktop | 🔄 In progress (Qt6/KF6 compile; KWin/QML blocked) |
|
||
| Wi‑Fi / Bluetooth | 📋 Planned (architected, implementation pending) |
|
||
|
||
## How It Works
|
||
|
||
Red Bear OS uses a **userspace driver model** — all drivers run as unprivileged daemons:
|
||
|
||
```
|
||
Kernel (microkernel)
|
||
└── schemes: memory, irq, event, pipe, debug
|
||
└── Driver daemons (userspace)
|
||
├── pcid → PCI enumeration
|
||
├── e1000d → Intel ethernet
|
||
├── xhcid → USB controller
|
||
└── vesad → Display framebuffer
|
||
```
|
||
|
||
The kernel provides minimal services (memory, interrupts, IPC). Everything else — filesystems, networking, graphics, input — runs in userspace.
|
||
|
||
## Documentation
|
||
|
||
- [Implementation Plan](docs/07-RED-BEAR-OS-IMPLEMENTATION-PLAN.md) — roadmap and execution model
|
||
- [Desktop Path Plan](local/docs/CONSOLE-TO-KDE-DESKTOP-PLAN.md) — kernel → DRM → Mesa → Wayland → KDE
|
||
- [D-Bus Integration](local/docs/DBUS-INTEGRATION-PLAN.md) — session bus architecture
|
||
- [USB Plan](local/docs/USB-IMPLEMENTATION-PLAN.md) — USB stack design
|
||
- [Wi‑Fi Plan](local/docs/WIFI-IMPLEMENTATION-PLAN.md) — wireless architecture
|
||
- [Bluetooth Plan](local/docs/BLUETOOTH-IMPLEMENTATION-PLAN.md) — BT stack design
|
||
- [Documentation Index](docs/README.md) — full doc map
|
||
|
||
## Contributing
|
||
|
||
Red Bear OS uses a **full fork** model. Upstream Redox sources are frozen and archived. All custom work lives in `local/`:
|
||
|
||
```
|
||
local/
|
||
├── patches/ # Durable changes to upstream source trees
|
||
├── recipes/ # Custom packages (drivers, GPU, system)
|
||
├── docs/ # Integration and planning docs
|
||
└── scripts/ # Build, test, and release tooling
|
||
```
|
||
|
||
We welcome contributions made with or without AI assistance — we care about **quality**, not how the code was produced.
|
||
|
||
## License
|
||
|
||
[MIT](./LICENSE) — same as upstream Redox OS.
|