Skip to content

git-user-cpp/maestro

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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

CPU architectures support

Architecture Status
x86_64
x86
AArch64 📅
  • Supported
  • 📅 Planned (not currently supported)

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

  • Terminal
  • Memory management
    • Buddy allocator
    • Internal memory allocator, with similarities with dlmalloc's implementation
    • Per-process virtual memory
  • Processes and scheduler
    • Symmetric MultiProcessing (SMP)
    • POSIX signals
  • PCI devices enumeration
  • Unix files
    • VFS/Mountpoints
    • IDE/PATA
    • Page cache
    • Filesystem (ext2 only for now)
    • Disk partitions (MBR and GPT)
    • Virtual filesystems (/tmp and /proc)
    • initramfs
    • Unix pipes and sockets
    • Device files
  • Time
  • Linux's 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.

mdbook and mdbook-mermaid are required:

cargo install mdbook mdbook-mermaid

Build the book with:

mdbook-mermaid install doc/
mdbook build doc/

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

About

Unix-like kernel written in Rust

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

Packages

No packages published

Languages

  • Rust 98.3%
  • Other 1.7%