Skip to content
ALaggyDevPublic

About

A toy kernel written in Rust

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

39 Commits

Folders and files

Repository files navigation

Elytra OS

My toy kernel written in Rust. This is my second attempt at writing a kernel, the first one is here.

GUI demo

Serial output

Progress:

  • Serial output
  • GDT
  • IDT
  • Buddy allocator
  • Slab allocator
  • Paging
  • User mode
  • Tasks & context switch
    • Cooperative multi-tasking
    • Preemptive multi-tasking
    • Inactive tasks and wakeup
  • ELF loading
  • Syscalls
  • Interrupt handling
  • GUI
    • Wallpaper
    • Image rendering
    • Text rendering
    • Input system
    • Window management
  • Hardware drivers
  • Security

Running

Elytra OS features a simple build system powered by xtask. Cargo can automatically download Rust nightly and the required dependencies.

Run cargo kernel for a list of subcommands.

The ElytraOS build system

Commands:
  build   Build the kernel without running it
  run     Build and run the kernel in QEMU
  fmt     Run cargo fmt
  clippy  Run cargo clippy
  help    Print this message or the help of the given subcommand(s)

To run the kernel in QEMU, use cargo kernel run.

Build and run the kernel in QEMU

Options:
      --release    Build the kernel with optimizations
      --wsl        Use WSL to run QEMU
      --gdb        Listen and wait for a GDB connection in QEMU
      --nographic  Disable graphical output in QEMU
      --kvm        KVM acceleration (need root privileges)

Tested version: rustc 1.101.0-nightly (12433c307 2026-10-24).

About

A toy kernel written in Rust

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages