Skip to content

Rust implementation of Xinu educational operating system

License

Apache-2.0, MIT licenses found

Licenses found

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

robert-w-gries/rxinu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

a24f3b3 · Oct 19, 2020

History

86 Commits
Oct 6, 2020
Oct 19, 2020
Oct 19, 2020
Nov 22, 2017
May 7, 2018
Oct 6, 2020
Oct 19, 2020
Oct 6, 2020
Dec 20, 2017
Dec 20, 2017
Oct 15, 2020
Jul 30, 2018

Repository files navigation

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.

About

Rust implementation of Xinu educational operating system

Topics

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Packages

No packages published