explaingit

raczkovic/racos

13RustAudience · developerComplexity · 5/5LicenseSetup · hard

TLDR

RacOS is a full operating system built from scratch in Rust, with its own kernel, shell, networking stack, and package manager, running in QEMU on x86_64 machines. No Linux or GNU code is used anywhere.

Mindmap

mindmap
  root((repo))
    What it does
      Custom OS in Rust
      No Linux or GNU code
      Runs in QEMU
    Core Components
      RaCore kernel
      RacInit manager
      racsh shell
      RacTerm terminal
    Networking
      ARP and IPv4
      UDP, DNS, TCP, HTTP
      No third-party libs
    Package Tools
      rpkg local install
      rapt with dependencies
    Build and CI
      Rust nightly
      GitHub Actions
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Learn how a real operating system kernel is built from scratch in Rust without borrowing any Linux code.

USE CASE 2

Study a complete TCP/IP networking stack implemented without third-party libraries, from ARP up to HTTP.

USE CASE 3

Explore how dependency-aware service managers handle startup order in an OS.

USE CASE 4

Run a fully custom OS in QEMU to experiment with systems programming concepts.

Tech stack

Rustx86_64 AssemblyQEMUUEFIGitHub Actions

Getting it running

Difficulty · hard Time to first run · 1day+

Requires QEMU and a pinned Rust nightly toolchain, the full kernel and networking stack must be compiled before anything runs.

Use freely for any purpose including commercial use, as long as you include the required notices.

In plain English

RacOS is a custom operating system written entirely from scratch in Rust, with no code borrowed from Linux, Ubuntu, Debian, or GNU. The README is in Polish, but the technical content is clear. It targets x86_64 computers with UEFI firmware and runs in a virtual machine environment called QEMU. The project builds every layer of an operating system independently. The kernel, named RaCore, is a modular monolithic design written in Rust with a small amount of x86_64 assembly for low-level boot tasks and process switching. Above the kernel sits an init and service manager called RacInit, which handles startup order using a dependency graph. There is also a shell called racsh with its own command parser, job control, and scripting support, plus a terminal emulator called RacTerm. One notable part of the project is its networking stack. RacOS implements the full chain of network protocols from scratch, covering ARP, IPv4, UDP, DNS, TCP, and HTTP, without relying on any third-party libraries. The demo screenshots in the README show the system completing a real DNS lookup and fetching a live HTTP response from Cloudflare. The operating system includes two package management tools: rpkg for low-level local installation and rapt for handling dependencies and repositories, similar in concept to how apt works on Debian-based Linux systems. Build tooling uses Rust nightly with a pinned date to keep builds reproducible, and CI runs on GitHub Actions with multiple stages covering formatting, build, unit tests, kernel smoke tests, and interactive shell tests over a virtual serial connection. Licensed under Apache 2.0.

Copy-paste prompts

Prompt 1
Walk me through how RacOS completes a DNS lookup from scratch, starting at the ARP layer and ending at the HTTP response.
Prompt 2
Explain the RaCore kernel architecture in RacOS. What makes it modular monolithic and how does it handle process switching?
Prompt 3
How does RacOS's RacInit service manager use a dependency graph to determine startup order? Give me a concrete example.
Prompt 4
I want to build and run RacOS in QEMU. What exact steps do I follow, and what Rust nightly version does the project pin?
Prompt 5
Compare the rapt package manager in RacOS to Debian apt. What dependency features does rapt support?
Open on GitHub → Explain another repo

← raczkovic on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.