A developer-focused Linux distribution built from scratch with custom tooling.
_____ _ _
| __ \ | | (_)
| |__) |__ ___ _____ _ __ | | _ _ __ _ ___ __
| _ // _` \ \ / / _ \ '_ \ | | | | '_ \| | | \ \/ /
| | \ \ (_| |\ V / __/ | | | | |____| | | | | |_| |> <
|_| \_\__,_| \_/ \___|_| |_| |______|_|_| |_|\__,_/_/\_\
RavenLinux is an independent Linux distribution designed for developers and application development. It features:
- Custom Package Manager (
rvn) - Fast, Rust-based package management with developer workspaces - Custom Bootloader (RavenBoot) - Multi-boot UEFI bootloader with Linux EFI stub support
- Native Tools Integration - First-class support for Vem editor, Carrion language, and Ivaldi VCS
- Minimal Base - Built with musl libc for a clean, lightweight system
- Rolling Release - Always up-to-date packages
Download the latest release from GitHub Releases:
| File | Description |
|---|---|
ravenlinux-vX.X.X.iso |
Bootable ISO image |
raven-usb-vX.X.X-linux-x86_64 |
USB flasher tool |
ravenlinux-vX.X.X-source.tar.gz |
Complete source code |
ravenlinux-tools-vX.X.X-linux-x86_64.tar.gz |
All tools bundled |
# Download the ISO and raven-usb tool, then flash to USB
chmod +x raven-usb-*-linux-x86_64
sudo ./raven-usb-*-linux-x86_64 ravenlinux-*.iso /dev/sdX
# Boot from USB and follow the installer| Component | Language | Description |
|---|---|---|
| Kernel | C | Linux kernel with EFI stub |
| Bootloader | Rust | UEFI multi-boot loader (RavenBoot) |
| Init System | Rust | Custom init and service manager |
| Package Manager | Rust | System package management (rvn) |
| Text Editor | Go | Vem - Modal editor with syntax highlighting |
| Version Control | Go | Ivaldi - Distributed VCS |
| Programming Language | Go | Carrion - Custom programming language |
| WiFi Manager | Go | TUI/GUI tools to connect to WiFi networks |
| Installer | Go | GUI system installer |
| USB Flasher | Go | Tool to create bootable USB drives |
RavenLinux includes these custom development tools:
Modal text editor with syntax highlighting and modern editing features.
vem myfile.txtCustom programming language designed for system scripting and application development.
carrion run script.crnDistributed version control system with a focus on simplicity.
ivaldi init
ivaldi commit -m "Initial commit"Connecting to WiFi is simple. Just run:
sudo wifiThis opens an interactive terminal interface where you can:
- See all available networks with signal strength
- Use arrow keys to select a network
- Enter password when prompted
- Connection is automatically saved for next time
That's it! No complicated commands to remember.
Note: RavenLinux ships rtw89 firmware and sets options rtw89_pci disable_aspm=1 by default to ensure RTL8852BE cards reliably create a wlan* interface at boot.
If you prefer a graphical interface:
raven-wifiFor power users who prefer raw commands:
# Using iwd
iwctl station wlan0 scan
iwctl station wlan0 get-networks
iwctl station wlan0 connect "NetworkName"
# Using wpa_supplicant (fallback)
wpa_passphrase "NetworkName" "password" > /etc/wpa_supplicant.conf
wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant.conf
dhcpcd wlan0- Linux system (tested on Arch Linux)
- 20GB+ disk space
- 8GB+ RAM recommended
- Rust toolchain
- Go toolchain (1.23+)
- Build tools: gcc, make, cmake, meson
# Clone the repository
git clone https://github.com/javanhut/RavenLinux.git
cd RavenLinux
# Build everything and generate ISO
./scripts/build.sh all
# Or build individual stages:
./scripts/build.sh stage1 # Download toolchain and build base
./scripts/build.sh stage2 # Build native sysroot
./scripts/build.sh stage3 # Build packages
./scripts/build.sh stage4 # Generate ISO# Set up development environment
./scripts/dev-env.sh setup
# Mount overlay filesystem for editing
./scripts/dev-env.sh mount
# Enter chroot to test
./scripts/dev-env.sh chroot
# Boot in QEMU with graphics
./scripts/dev-env.sh qemu -g
# Boot in QEMU headless (no new window, serial console in this terminal)
# Tip: In the RavenBoot menu select "Raven Linux (Serial Console)" for best logs/debugging.
./scripts/dev-env.sh qemu
# Console access:
# - tty1: starts `/bin/raven-shell` via `agetty --skip-login` (PAM-free rescue shell)
# - tty2: starts a normal `login` prompt (use this to test PAM/password logins)
# Check status
./scripts/dev-env.sh statusRavenLinux/
├── bootloader/ # RavenBoot UEFI bootloader (Rust)
├── init/ # Init system and service manager (Rust)
├── tools/
│ ├── rvn/ # Package manager (Rust)
│ ├── raven-installer/ # GUI system installer (Go)
│ └── raven-usb/ # USB flasher tool (Go)
├── configs/ # System configurations
│ └── kernel/ # Kernel configs
├── scripts/ # Build and utility scripts
│ ├── build.sh # Main build script
│ ├── dev-env.sh # Development environment
│ ├── build-initramfs.sh
│ └── stages/ # Build stage scripts
├── etc/ # Base system configuration
└── .github/workflows/ # CI/CD pipelines
# Install packages
rvn install rust nodejs python
# Search packages
rvn search editor
# Sync repository metadata (required for fast/offline search)
rvn sync
# Generate an index.json for a repo directory (expects ./packages/*.rvn)
rvn repo index /path/to/raven_linux_v0.1.0
# Developer tools
rvn dev rust # Set up Rust toolchain
rvn dev node 20 # Set up Node.js 20
# Workspaces (isolated dev environments)
rvn workspace create myproject --lang rust,python
rvn workspace enter myproject
# System management
rvn system snapshot # Create system snapshot
rvn system rollback # Rollback to snapshot
rvn system health # Check system healthThe custom UEFI bootloader supports:
- Linux EFI stub booting with initrd support
- Multi-boot with other operating systems
- Auto-detection of Windows, other Linux distros
- Keyboard navigation and configurable timeout
- Configuration via
/EFI/raven/boot.cfg(preferred) or/EFI/raven/boot.conf - Recovery mode boot option
# /EFI/raven/boot.cfg
timeout = 5
default = 0
[entry]
name = "Raven Linux"
kernel = "\EFI\raven\vmlinuz"
initrd = "\EFI\raven\initramfs.img"
cmdline = "rdinit=/init quiet"
type = linux-efi
[entry]
name = "Raven Linux (Recovery)"
kernel = "\EFI\raven\vmlinuz"
initrd = "\EFI\raven\initramfs.img"
cmdline = "rdinit=/init single"
type = linux-efi
- x86_64 CPU with UEFI firmware
- 2GB RAM minimum (4GB recommended)
- 20GB disk space
- Linux system
- 20GB+ disk space
- 8GB+ RAM recommended
- Internet connection for downloading sources
Contributions welcome! Please open an issue or pull request on GitHub.
MIT License - See LICENSE file