Skip to content

My implementation of a bare metal operating system in Rust.

Notifications You must be signed in to change notification settings

evanmwilliams/rust_os

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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!

About

My implementation of a bare metal operating system in Rust.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages