Unix-like kernel written in Rust
Go to file
2024-10-01 01:29:16 +02:00
.github/workflows chore: update rust toolchain 2024-09-19 21:18:27 +02:00
doc refactor: doc and various code cleanup 2024-10-01 01:10:58 +02:00
inttest refactor: doc and various code cleanup 2024-10-01 01:10:58 +02:00
kernel refactor: doc and various code cleanup 2024-10-01 01:10:58 +02:00
macros fix: pointer provenances 2024-09-21 02:25:32 +02:00
mod fix: remove debug message 2024-09-07 20:32:02 +02:00
utils refactor: doc and various code cleanup 2024-10-01 01:10:58 +02:00
COPYING feat(license): switch to AGPLv3 2024-02-26 00:30:40 +01:00
README.md fix(README): version badge 2024-10-01 01:29:16 +02:00
rust-toolchain.toml chore: update rust toolchain 2024-09-19 21:18:27 +02:00
rustfmt.toml style(rustfmt): reorganize imports 2024-02-26 20:16:41 +01:00

logo

AGPL-3.0 license Version Rust toolchain Continuous integration Stars Discord

About

Maestro is a lightweight Unix-like kernel written in Rust.

The goal is to provide a lightweight operating system able to use the safety features of the Rust language to be reliable.

This project is still in early stage development, thus it is highly unstable and misses a lot of features. Do not use it in production!

To stay updated with the project, follow the blog!

neofetch

Neofetch and bash running on the OS.

Features

The following features are currently implemented (non-exhaustive):

  • Terminal with VGA text mode and PS/2 keyboard (with forward compatibility with USB handled by the motherboard's firmware)
  • Memory allocation/virtual memory
    • Buddy allocator
    • Internal memory allocator, with similarities with dlmalloc's implementation, working on top of the buddy allocator
  • Processes and scheduler (round-robin)
    • POSIX signals
  • PCI devices enumeration
  • Files:
    • Mountpoints
    • IDE/PATA driver
    • Filesystem (ext2 only for now)
    • Disk partitions (MBR and GPT)
    • Virtual filesystems (/tmp and /proc)
    • initramfs
  • Time/Clock (RTC)
  • Linux system calls (roughly 30% are currently implemented)
  • Kernel modules
  • ELF programs

Quickstart

This repository is not a full operating system in itself but only the kernel.

You can either:

  • Use the installer to build a full operating system from an ISO file
  • Build the OS by hand. For this, you can check the kernel's book

The OS can then be run by a virtual machine such a QEMU or VirtualBox, or on a physical machine.

Build

To build and/or run the OS, cd into the kernel's crate:

cd kernel/

Then follow the instructions in README.md

Documentation

The kernel's book contains general information on how to use the kernel.

The book can be built using mdbook, with the command:

mdbook build doc/

Then, it can be accessed at doc/book/index.html.