Rxinu Save

Rust implementation of Xinu educational operating system

Project README

Build Status

rxinu

Rust implementation of Xinu, based on the excellent blog written by Philipp Oppermann

sudo apt-get install gcc qemu -y
curl https://sh.rustup.rs -sSf | sh -s -- -y
export PATH="${PATH}:$HOME/.cargo/bin"
rustup default nightly
rustup component add rust-src
rustup component add llvm-tools-preview
cargo install bootimage
cargo run # run kernel using qemu

Running

Docker

docker build -t rxinu .
docker run -v ${PWD}:/home/rxinu/rxinu -i -t rxinu

QEMU headless mode

There are multiple methods of running QEMU in headless mode. To use the curses option, use the following:

cargo run -- -curses

Other methods

See here for instructions on running the kernel on VirtualBox or on real hardware.

Debugging

See Phillipp Oppermann's blog post regarding gdb to build a gdb binary that can debug x86_64 kernels.

qemu-system-x86_64 -drive format=raw,file=bootimage.bin -d int -s -S &
rust-gdb target/x86_64-rxinu/debug/rxinu -ex "target remote :1234"

Features

  • Architectures
    • x86_64
  • MMU
    • Paging
    • Heap Allocation
  • Interrupt Handling
    • Exceptions
    • IRQ
  • Scheduling
    • Cooperative Scheduler
    • Preemptive Scheduler
  • Device Drivers
    • PIC
    • PIT
    • PS/2 Keyboard
    • Serial
    • VGA

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Open Source Agenda is not affiliated with "Rxinu" Project. README Source: robert-w-gries/rxinu
Stars
34
Open Issues
6
Last Commit
3 years ago
License

Open Source Agenda Badge

Open Source Agenda Rating