Red Bear OS — microkernel OS in Rust, based on Redox

Derivative of Redox OS (https://www.redox-os.org) adding:
- AMD GPU driver (amdgpu) via LinuxKPI compat layer
- ext4 filesystem support (ext4d scheme daemon)
- ACPI fixes for AMD bare metal (x2APIC, DMAR, IVRS, MCFG)
- Custom branding (hostname, os-release, boot identity)

Build system is full upstream Redox with RBOS overlay in local/.
Patches for kernel, base, and relibc are symlinked from local/patches/
and protected from make clean/distclean. Custom recipes live in
local/recipes/ with symlinks into the recipes/ search path.

Build:  make all CONFIG_NAME=redbear-full
Sync:   ./local/scripts/sync-upstream.sh
This commit is contained in:
2026-04-12 19:05:00 +01:00
commit 50b731f1b7
3392 changed files with 98327 additions and 0 deletions
+85
View File
@@ -0,0 +1,85 @@
# Configuration file to install the recipe dependencies inside the Podman container
FROM docker.io/library/debian:trixie
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
appstream \
appstream-compose \
autoconf \
autoconf2.69 \
automake \
autopoint \
bison \
bsdextrautils \
build-essential \
cmake \
curl \
dos2unix \
doxygen \
expect \
file \
flex \
fuse3 \
g++ \
genisoimage \
git \
git-lfs \
gobject-introspection \
gtk-doc-tools \
gtk-update-icon-cache \
help2man \
ipxe-qemu \
intltool \
libtool \
libaudiofile-dev \
libdbus-glib-1-dev-bin \
libfuse3-dev \
libgdk-pixbuf2.0-bin \
libglib2.0-dev-bin \
libhtml-parser-perl \
librsvg2-common \
libsdl1.2-dev \
libsdl2-ttf-dev \
lzip \
m4 \
make \
meson \
nano \
nasm \
ninja-build \
patch \
patchelf \
perl \
pkg-config \
po4a \
protobuf-compiler \
qemu-system-x86 \
qemu-system-arm \
qemu-efi-aarch64 \
python3 \
python3-dev \
python3-libxml2 \
python3-mako \
python3-venv \
python3-yaml \
rsync \
ruby \
scons \
ssh \
texinfo \
unifdef \
unzip \
wget \
xdg-utils \
xfonts-utils \
xserver-xorg-dev \
xutils-dev \
xxd \
zip \
zstd \
&& if [ "$(uname -m)" = "x86_64" ]; then \
apt-get install -y --no-install-recommends \
libc6-dev-i386 \
syslinux-utils \
; fi
+15
View File
@@ -0,0 +1,15 @@
FROM debian:stable-backports
RUN apt-get update \
&& apt-get install -y --no-install-recommends -t stable-backports \
python3 \
python3-pip \
gdb \
curl \
&& rm -rf /var/lib/apt/lists/*
RUN pip3 install gdbgui --break-system-packages
EXPOSE 5000
ENTRYPOINT [ "gdbgui", "--remote", "--port", "5000" ]
+46
View File
@@ -0,0 +1,46 @@
# Configuration file to build linux toolchain using lower glibc constraint
FROM docker.io/library/debian:oldstable-backports
RUN apt-get update \
&& apt-get install -y --no-install-recommends -t oldstable-backports \
autoconf \
autoconf2.69 \
automake \
autopoint \
bison \
build-essential \
cmake \
curl \
dos2unix \
doxygen \
expect \
file \
flex \
fuse3 \
g++ \
git \
git-lfs \
help2man \
libfuse3-dev \
lzip \
m4 \
make \
meson \
nano \
nasm \
ninja-build \
patch \
patchelf \
perl \
pkg-config \
po4a \
python3 \
rsync \
scons \
texinfo \
unifdef \
unzip \
wget \
zip \
zstd
+40
View File
@@ -0,0 +1,40 @@
# The Redox build server configuration for host tools
# Packages listed here is to aid the build server to compile `host:` recipes
# commonly found within dev dependencies of packages and distribute them.
# This is not a replacement for cross compilers that exist within the prebuilt
# prefix: GCC, Rust, LLVM and Clang. This is the place for the rest of
# cross compilers that's might be needed by other recipes, such as Go or Zig.
# General settings
[general]
# Do not prompt if settings are not defined
prompt = false
[packages]
# Binaries
#dotnet10 = {}
#go = {}
gperf = {}
installer = {}
itstool = {}
luajit = {}
neovim = {}
nodejs-21 = {}
#openjdk21 = {}
#perl5 = {}
#protobuf = {}
python312 = {}
redoxfs = {}
redoxer = {}
#ruby = {}
xz = {}
#zig = {}
# Libraries
libarchive = {}
libjpeg = {}
libogg = {}
libxml = {}
libxslt = {}
ncurses = {}
+20
View File
@@ -0,0 +1,20 @@
#!/usr/bin/env bash
# This must be run outside podman build so the build/podman volume mount to /root contains all home folder changes
set -ex
echo "Installing rust..."
curl "https://sh.rustup.rs" -sSf | sh -s -- -y --default-toolchain stable --profile minimal
echo "Downloading sccache..."
SCCACHE_URL="https://github.com/mozilla/sccache/releases/download/v0.10.0/sccache-v0.10.0-$(uname -m)-unknown-linux-musl.tar.gz"
wget -qO- --show-progress "${SCCACHE_URL}" | tar -xz -C ~/.cargo/bin --strip-components=1 --wildcards '*/sccache'
echo "Downloading just..."
JUST_URL="https://github.com/casey/just/releases/download/1.45.0/just-1.45.0-$(uname -m)-unknown-linux-musl.tar.gz"
wget -qO- --show-progress "${JUST_URL}" | tar -xz -C ~/.cargo/bin --wildcards 'just'
echo "Downloading cbindgen..."
CBINDGEN_NAME="$( [ "$(uname -m)" = "x86_64" ] && echo "ubuntu22.04" || echo "ubuntu22.04-aarch64" )"
CBINDGEN_URL="https://github.com/mozilla/cbindgen/releases/download/0.29.0/cbindgen-${CBINDGEN_NAME}"
wget -qO- --show-progress "${CBINDGEN_URL}" > ~/.cargo/bin/cbindgen
chmod +x ~/.cargo/bin/cbindgen