Skip to content

Latest commit

 

History

History
41 lines (27 loc) · 1.69 KB

README.md

File metadata and controls

41 lines (27 loc) · 1.69 KB

rust_os

My implementation of a bare metal operating system in Rust. I created this following Phil Opperman's blog at https://os.phil-opp.com/.

Running the application

You need to have Rust installed to run the application. Once you do, you can simply type cargo run in your terminal!

Testing

To run all of the unit tests run cargo test from any directory. All unit tests are packaged with the modules they are testing, and integration tests can be found in the tests directory. You can run specific integration tests by running cargo test --test [test_name].

Dependencies

This project has many external dependencies on libraries that assist with OS development. All of these dependencies are managed by cargo, the build system shipped with Rust. Some of these external packages include:

Moreover, the code base uses Nightly Rust with some experimental features that are not yet included in the main language.

Functionality

The application includes many different functionalities including:

  • VGA Text Display
  • CPU Exceptions
  • Hardware Interrupts
  • Paging
  • Heap Allocation
  • Async/Await

Here's a sample of the OS running:

Sample execution of OS

Documentation

To see documentation, run cargo doc --open from your terminal.

Future Work

Many of the fundamental ideas behind operating systems have been implemented, but it would be cool to try implementing more user-friendly features, such as file-systems or actually getting processes to run!