Skip to content
/ lojoh_os Public

Experimental operating system written in Rust.

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

lojoh/lojoh_os

Repository files navigation

Lojoh OS

Experimental operating system written in Rust.

I am following the Writing an OS in Rust series at os.phil-opp.com. If you use this and find it helpful please head over there and support him.

Roadmap

This project is a work in progress, below is the current status of the roadmap:

  • Create operating system kernel
  • Implement support for VGA Text Mode
  • Create a testing framework
  • Handling CPU Exceptions
  • Handling Double (and Triple) Faults
  • Set up Interrupt Controller for Hardware Interrupts
  • Memory Management: Paging
  • Memory Management: Support for Heap Allocation
  • Support for Async/Await

Set nightly

Rust has three release channels: stable, beta, and nightly. The Rust Book explains the difference between these channels really well: https://doc.rust-lang.org/book/appendix-07-nightly-rust.html#choo-choo-release-channels-and-riding-the-trains.

For building an operating system, we will need some experimental features that are only available on the nightly channel, so we need to install a nightly version of Rust.

rustup override set nightly

Install dependencies

rustup component add llvm-tools-preview
cargo install bootimage

Build

cargo bootimage

Run

To run the application you can use a virtual machine. See this link for instructions regarding installing and using qemu: https://www.minitool.com/partition-disk/qemu-for-windows.html

First step is to copy target/x86_64-lojoh_os/debug/bootimage-lojoh_os.bin to the folder where qemu is running:

copy .\target\x86_64-lojoh_os\debug\bootimage-lojoh_os.bin <qemu-location>

Then cd to qemu-location:

cd <qemu-location>

...and run the os:

qemu-system-x86_64 -drive format=raw,file=bootimage-lojoh_os.bin

License

This project is licensed under either of

at your option.

About

Experimental operating system written in Rust.

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages