f159a47f1cb1f998e31ec524e63e4a846e856a3d
Ports two pieces of menu work that were stranded on the abandoned
`bootloader-detached-pending` lineage (a divergent full-history upstream-1.0.0
rebase that was never merged into this build branch and never pushed):
- 3d41cf7 "categorized resolution menu": replaces the flat area-sorted grid
selector with a categorized list (4K / 2.5K / FullHD / HD / 1024x768) plus
a "More resolutions" sub-menu (select_obscure) for uncommon modes.
- 9a12ee2 "fix garbled text — pad all console lines to consistent width":
the UEFI text console does not clear old characters when a shorter line
overwrites a longer one at the same position, so menu/countdown/live-mode
lines are padded to fixed widths ({:<50}/{:<70}/{:<40}) and fully
overwritten each frame.
Adapted to this branch's select_mode signature and merged with this branch's
best_resolution() fallback: the initial highlight prefers 1280x720, then the
display's EDID-preferred mode, then the largest available — so hardware native
resolution is not lost by the categorized default.
Verified: cargo check passes for both x86_64-unknown-uefi (--bin) and
x86-unknown-none (--lib). Supersedes the menu work on
bootloader-detached-pending, which is being removed.
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%