Skip to content

erinzm/lossy

Repository files navigation

         _             _            _           _      _        _   
        _\ \          /\ \         / /\        / /\   /\ \     /\_\ 
       /\__ \        /  \ \       / /  \      / /  \  \ \ \   / / / 
      / /_ \_\      / /\ \ \     / / /\ \__  / / /\ \__\ \ \_/ / /  
     / / /\/_/     / / /\ \ \   / / /\ \___\/ / /\ \___\\ \___/ /   
    / / /         / / /  \ \_\  \ \ \ \/___/\ \ \ \/___/ \ \ \_/    
   / / /         / / /   / / /   \ \ \       \ \ \        \ \ \     
  / / / ____    / / /   / / /_    \ \ \  _    \ \ \        \ \ \    
 / /_/_/ ___/\ / / /___/ / //_/\__/ / / /_/\__/ / /         \ \ \   
/_______/\__\// / /____\/ / \ \/___/ /  \ \/___/ /           \ \_\  
\_______\/    \/_________/   \_____\/    \_____\/             \/_/  
                                                                    


What's this?

An operating system written in Rust, aiming to do more than echoing the keyboard to the screen ;)

What can it do right now?

Nothing. At all. (this is quite ironic, given the previous statement)

Roadmap

  • - Build system
  • - Bootable do-nothing system
  • - Video buffer driver
  • - Page frame allocator
  • - Interrupts
  • - Keyboard driver
  • - Allocator
  • - Proper stack/heap
  • - Switching out of BIOS video

How can I help?

Find something to do (the issues will help with that), fix it, and submit a PR. Oh, by the way, you might want to read about hacking on Lossy.

Hacking on the code

You need the following dependencies:

  • grub-mkrescue
  • xorriso
  • mtools
  • nasm
  • qemu
  • Rust

Get Rust through multirust. After installation, run multirust override nightly in the project directory. Run make patch_libcore to patch the nofp patch into libcore. Then run make runtime to build libcore.

Following this setup, you can simply execute make run to build and run in QEMU.