Skip to content

An Operating System from fully scratch with rust

License

GPL-3.0, MIT licenses found

Licenses found

GPL-3.0
LICENSE-GPL
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

Walker-00/chaos

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Chaos (Cha-Os)

GitHub GitHub language count GitHub Repo stars

Just a fun project to build an Operating System from fully scratch with rust

Bootloader is written is assembly and Kernel is written in rust

[Bootloader Features]

  • Multiboot
  • Real Mode (16 bits)
  • Pagging
  • Memory Mapping
  • Global Descriptor Table loading
  • Protected Mode(x86 32bits)
  • Long Mode (x86_64 bits)
  • Copy Kernel from disk to Protected Memory
  • Stack Mem

[Kernel Features]

  • VGA Driver
  • print! and println! macros to write text to VGF text buffer

[More To Come]

  • Keyboard Driver
  • CPU exceptions handler
  • Programmable Interrupt Controller Driver
  • Keyboard Driver

[Building]

  • First You need to download and install Rustup!

  • Go to https://www.rust-lang.org for Rustup!

  • And we need nasm to compile assembly, grub for multiboot grub and qemu to run image.

  • Please install those first.

  • If you're done follow these steps.

rustup update nightly
rustup default nightly
rustup target add x86_64-unknown-none

  • We use nightly to use unstable features of rust.
  • And add x86_64-unknown-none for 64 bits bare metal architecture.

git clone https://github.com/Walker-00/chaos
cd chaos
make build
make run

[Note]

If you got some issues like header missing or multiboot header missing!
Please run make clean and make build in different shell.
Or If you got any other issues please report me.

Jokes Card

[Contributors]

About

An Operating System from fully scratch with rust

Resources

License

GPL-3.0, MIT licenses found

Licenses found

GPL-3.0
LICENSE-GPL
MIT
LICENSE-MIT

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published