d7d719775be72885f5b83b57cf95c21d876bfc2b
Comprehensive fix for overlapping bootloader text. The loader ran three phases
(filesystem, resolution menu, loading) that all wrote to one never-fully-cleared
screen at absolute cursor positions, so they overprinted each other. Most
visibly, the loading phase began printing "live: .../..." exactly where the menu
had left the cursor (the "Autobooting" row), so "live" landed on top of the
countdown. clear_text() also only ran for the 2nd+ video output, so on a single
display the menu was drawn under the header.
Introduce draw_header(os): clear the screen and draw a consistent, branded
"Red Bear OS" title + version/platform + separator. Call it at the start of each
phase so every screen is clean and no phase overprints another:
- Phase 1 (filesystem / password prompt)
- Phase 2 (resolution menu, per video output)
- Phase 3 (kernel/initfs load + optional live preload)
Also:
- Rebrand user-facing strings: "Redox OS Bootloader" -> "Red Bear OS", and
the env editor title -> "Red Bear OS Boot Environment Editor". (RedoxFS /
the RedoxFtw initfs magic are left as-is: those are real format names.)
- Drop the raw "Hardware descriptor: {:x?}" Debug dump from the UI.
- Indent all loading-phase progress lines (RedoxFS/live/kernel/initfs) to
match the header for a consistent layout.
Verified: cargo check passes for x86_64-unknown-uefi (--bin) and
x86-unknown-none (--lib).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Bootloader
Redox OS Bootloader
Requirements
These software needs to be available on the PATH at build time:
Building
make TARGET=<triplet> BUILD=build all
The <triplet> is one of:
| ARCH | Boot Mode | Triplets |
|---|---|---|
i686 |
BIOS | x86-unknown-none |
x86_64 |
BIOS | x86-unknown-none |
x86_64 |
UEFI | x86_64-unknown-uefi |
aarch64 |
UEFI | aarch64-unknown-uefi |
riscv64gc |
UEFI | riscv64gc-unknown-uefi |
See mk directory for more information of how the build is working.
Entry points
Please read Boot Process in the Redox OS Book for an introductory guide.
In this source code, some interesting files for entry points are:
- BIOS boot stages: asm/x86-unknown-none/bootloader.asm
- BIOS boot entry:
fn startat src/os/bios/mod.rs - UEFI boot entry:
fn mainat src/os/uefi/mod.rs - Common boot process:
fn mainat src/main.rs - UEFI kernel entry:
fn kernel_entryin each arch:x86_64: src/os/uefi/arch/x86_64.rsaarch64: src/os/uefi/arch/aarch64.rsriscv64gc: src/os/uefi/arch/riscv64/mod.rs
Debugging
QEMU
make TARGET=<triplet> BUILD=build qemu
How To Contribute
To learn how to contribute to this system component you need to read the following document:
Development
To learn how to do development with this system component inside the Redox build system you need to read the Build System and Coding and Building pages.
Description
RedBear Operating System, based on RedoxOS. Licenced under MIT license.
https://redbearos.org
Languages
C
37.5%
C++
37.2%
JavaScript
6.7%
QML
3.4%
HTML
3.2%
Other
11.4%