Scarlet

Run binaries from multiple operating systems on a single kernel. Linux, xv6, and more — all natively, all together.

Multi OS Compatibility, Even GUI

Run binaries from different operating systems natively. Linux, xv6, and Scarlet applications work together seamlessly — including graphical applications.

Scarlet Shell
# Running Linux binary on Scarlet Shell
$ uname -a
Linux scarlet 6.1.0-scarlet riscv64 GNU/Linux
# Pipe between Scarlet native and Linux binary
$ scarlet_hello | busybox cat
Hello from Scarlet!
Scarlet Desktop

Scarlet Native apps (ScarletUI) and Linux GTK3 applications running on the same desktop

Built for Flexibility

Multi-ABI Support

Run Linux, xv6, and other OS binaries natively without virtualization

Written in Rust

Memory-safe kernel with Rust's safety guarantees

SWS & Scarlet UI & Wayland Bridge

Native window system protocol and UI framework with Wayland compatibility

Scarlet Package Manager

SCPM - Native package management system for Scarlet applications and libraries

Runtime Delegation

Execute binaries via userland runtimes (Wasm, emulators)

Built-in Hypervisor

Type-2 VMM with RISC-V H-extension and AArch64 virtualization

Get Started in Minutes

terminal
# Get started with Docker (recommended)
$ docker build -t scarlet-dev .
$ docker run -it --rm -v $(pwd):/workspaces/Scarlet scarlet-dev \
bash -c "cargo make run-riscv64"

# Once Scarlet boots:
Login successful for user: root
Scarlet Shell (Interactive Mode)
# hello
Hello, world!
PID = 5
PPID = 3

Current Progress

Architecture Support

  • RISC-V 64-bit Primary
  • AArch64 (ARM64) In Development

ABI Support

  • Scarlet Native Complete
  • Linux (RISC-V 64-bit / AArch64) Partial
  • xv6 (RISC-V 64-bit) Experimental