Neptune is my attempt at writing an operating system in rust
Go to file
Ishan Jain 4d923d2bc7 Added unit tests, Serial interface to talk to qemu device and log output from qemu device to console 2019-05-02 22:43:39 +05:30
src Added unit tests, Serial interface to talk to qemu device and log output from qemu device to console 2019-05-02 22:43:39 +05:30
.gitignore Completed code to build for a custom architecture that is independent of linux etc 2018-07-20 17:33:26 +05:30
Cargo.lock Added unit tests, Serial interface to talk to qemu device and log output from qemu device to console 2019-05-02 22:43:39 +05:30
Cargo.toml Added unit tests, Serial interface to talk to qemu device and log output from qemu device to console 2019-05-02 22:43:39 +05:30
LICENSE.md Added readme and license 2019-05-02 15:31:20 +05:30
README.md Added readme and license 2019-05-02 15:31:20 +05:30
neptune-x86_64.json Added print/println macros, Changed color, Implemented a simple panic handler 2019-05-02 15:19:51 +05:30

README.md

Neptune

Neptune is my attempt at writing an Operating System from scratch in Rust.

Building

  1. You'll need nightly version of latest rust compiler. A simple, slightly dangerous way to do this is to run curl -sSf https://sh.rustup.rs | bash and follow the instructions.

  2. The OS for now uses BIOS to boot. I did not wrote the required ASM to boot into 16 bit and switch from 16 bit -> protected mode for this operating system because I had already done that in an older attempt at writing an operating system. So, For this project, I used bootimage. Install it using cargo install cargo-bootimage.

Running

Run it in qemu with qemu-system-x86_64 -drive format=raw,file=./target/neptune-x86_64/debug/bootimage-neptune.bin

Future Plans

  1. Boot with UEFI.
  2. Implement a short term scheduler.
  3. Threads.
  4. A Graphics Subsystem, mainly to be used to implement games and not an actual GUI interface.

License

MIT