Linux ABI-compatible kernel written in Rust

Overview

GalaxyOS-logo

Linux ABI-compatible kernel written in Rust rust-logo

🖼️ Screenshot (v0.1.0-alpha.1)

screenshot

📦 Build dependencies

To compile GalaxyOS kernel and create basic OS ISO image you need to install following dependencies:

  • python3 (to run build.py script)
  • nasm
  • rust nightly toolchain (with rust-src component)
  • grub
  • xorriso
  • GNU mtools

You can install them with following commands:

Debian-based distributions:

apt install python3 nasm grub-common xorriso mtools curl   # as root
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
rustup toolchain install nightly
rustup component add rust-src

Arch-based distributions:

pacman -S python3 nasm rustup grub xorriso mtools   # as root
rustup toolchain install nightly
rustup component add rust-src

⚙️ Compiling

Clone GalaxyOS repository and change working directory to its location.

To compile use build.py Python (3.6+) script. You can change _*_BINARY variales inside the script to specify non-standard executable locations.

chmod +x build.py
./build.py
# or
python3 build.py

▶️ Running

The kernel binary and basic OS iso are located in build/ directory after compiling.

If you have qemu installed, you can run basic OS in the qemu virtual machine with:

qemu-system-x86_64 -cdrom build/galaxyos.iso

📃 License

This project is distributed under the MIT License, see LICENSE

Copyright (c) 2022 Krzysztof Stefańczyk

You might also like...
Open Source Rust kernel; Runs WASM and WASI as lightweight containers.

😳 etheryal Kernel etheryal kernel is an Open Source capability-based Kernel written in the Rust programming language. The kernel allows implementing

Basic Rust kernel using Limine

Rust Limine Barebones This is a small kernel that boots using Limine. Build First of all, download Rust ! (I guess you already did it if you are here

Examples on how to write Windows kernel drivers in Rust

windows-kernel-rs Note: this is still work in progress! This is a Windows kernel framework in Rust that consists of windows-kernel-sys, a crate that p

An x86-64 kernel with ~100% Rust (originally) in a week
An x86-64 kernel with ~100% Rust (originally) in a week

litchi-rs An x86-64 kernel with ~100% Rust (originally) in a week. The continuation of Litchi. Try it Make sure the Rust toolchains and qemu-system-x8

Kernel density estimation in Rust.
Kernel density estimation in Rust.

kernel-density-estimation Kernel density estimation in Rust. Kernel density estimation (KDE) is a non-parametric method to estimate the probability de

💻 An x86_64 kernel in the works

BruhOS a basic x86_64 kernel in the works. cool stuff written in rust boots with any stivale2-compliant bootloader framebuffer bitmap font renderer pm

The official kernel for Popcorn OS, and operating system designed for handheld devices.

About Popkern is the kernel for Popcorn OS, an operating system designed for handheld devices. As such, the kernel is (to be) optimised at all levels

The kernel for LibertyOS.
The kernel for LibertyOS.

This is the official repository of the LibertyOS kernel. LibertyOS is an operating system, built with Rust, that is open-source, free-to-use, and open to new contributors.

A custom kernel for educational reasons

A custom kernel for educational reasons

Releases(v0.1.0-alpha.1)
  • v0.1.0-alpha.1(Nov 12, 2022)

    This is first alpha release of GalaxyOS.

    It includes basic kernel with 8259 PIC interrupts support.

    • Multiboot2 kernel parameters are loaded and put on the screen
    • The kernel successfully allocates pages, remaps itself and initializes memory allocator
    • You can type something on the keyboard, but deleting characters and moving a cursor is still not supported.
    • There is uptime displayed on the screen every 10 seconds.

    It is known that on some devices Double fault occurs immediately after boot.

    Only BIOS boot is supported (VGA Text mode does not exist on UEFI)

    image

    Source code(tar.gz)
    Source code(zip)
    galaxyos(404.71 KB)
    galaxyos.iso(26.32 MB)
Owner
Krzysztof Stefańczyk
I am Krzysztof Stefańczyk and I am 15yo programmer.
Krzysztof Stefańczyk
Linux kernel modules written in Rust

Linux kernel modules written in Rust A collection of in-progress experimental Linux kernel modules written for the Rust for Linux project To run the o

Milan 10 Nov 13, 2022
Library for loading Linux kernel modules.

liblmod - Library for loading Linux kernel modules Features: modprobe rmmod Example code: extern crate liblmod; fn main() -> std::io::Result<()> {

Zapomnij 2 Aug 2, 2022
An OS kernel written in rust. Non POSIX

"Tifflin" Experimental Kernel (and eventually Operating System) This is an experiment in writing an OS Kernel in rust (http://rust-lang.org). Mostly t

John Hodge (Mutabah) 618 Jan 8, 2023
A tiny 32 bit kernel written in Rust

rustboot A tiny 32 bit kernel written in Rust. I was inspired to download Rust and try to do this after seeing zero.rs - a stub that lets Rust program

Charlie Somerville 1.5k Dec 30, 2022
Experimental kernel for embedded devices written in Rust

bkernel is an experimental kernel for embedded devices written in Rust. I'm mostly trying out Rust now to see how it applies to kernel development. Pr

Alexey Shmalko 84 Dec 13, 2022
Minimal x86_64 OS kernel written in Rust

rkernel A minimal x86_64 Rust OS kernel. Multiboot2 VGA driver PIC PIT PS/2 Keyboard driver PS/2 Mouse driver TSC RTC Allocator ATA PIO (In progress..

Divy Srivastava 36 Apr 26, 2022
🍒 Small, simple, and fast kernel written in Rust. 🌸

?? Small, simple, and fast kernel written in Rust. ??

Cherry Developers 5 May 20, 2022
Xrs is a POSIX-subset operating system kernel written in Rust.

XRS-OS ( ?? WIP) Xrs is a POSIX-subset operating system kernel written in Rust. Current project team members 0x5459 core developer (he/him) 0x5457 cor

null 7 Nov 16, 2022
Rux - An x86_64 toy operating system kernel written in Rust

Rux - An x86_64 toy operating system kernel written in Rust. Rux is a port of the Hux kernel, my x86 32-bit single-CPU toy kernel written in C, following the OSTEP book structure and terminology.

Guanzhou Jose Hu 6 Feb 26, 2022
An super minimal kernel written in rust

Grisha This project depends on this blog serie Philipp Oppermann's blog Required Knowlege I don't know what you really need to know to learn efficient

Ismail Ait Bella 3 Feb 3, 2022