1tgr / rust-os

An operating system in Rust

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Build Status

A Rust operating system

Screenshot

Based on the Rust barebones kernel.

Rustdocs for the kernel: http://1tgr.github.io/rust-os/kernel/

Features:

  • Targets 64-bit x86
  • Kernel has embedded unit tests
  • Scheduler
    • Threads
    • Processes
  • Memory manager
    • Demand paging
    • Memory protection
    • Shared memory
  • Input and output
    • Keyboard input
    • Mouse input
    • Text-mode output
    • Linear frame buffer (on QEMU/Bochs/VirtualBox)
  • User mode
    • Separation between user mode (ring 3) and kernel mode (ring 0)
    • Syscall interface (via SYSCALL/SYSRET instructions)
    • C runtime (Newlib)
    • Cairo graphics
    • FreeType fonts
  • Graphics compositor

Works in progress:

  • Window system
  • 32-bit ARM target (Raspberry Pi)

Todo:

  • File system
  • Networking

Wallpaper credit: by Dollar Gill on Unsplash

About

An operating system in Rust

License:MIT License


Languages

Language:Rust 96.1%Language:Assembly 2.4%Language:Makefile 0.5%Language:C 0.3%Language:Python 0.3%Language:Dockerfile 0.2%Language:Shell 0.1%