All Projects → robert-w-gries → rxinu

robert-w-gries / rxinu

Licence: other
Rust implementation of Xinu educational operating system

Programming Languages

rust
11053 projects
Dockerfile
14818 projects

Projects that are alternatives of or similar to rxinu

phoenix-rtos-kernel
Phoenix-RTOS microkernel repository
Stars: ✭ 77 (+196.15%)
Mutual labels:  kernel, operating-system, microkernel
poplar
Microkernel and userspace written in Rust exploring modern ideas
Stars: ✭ 217 (+734.62%)
Mutual labels:  kernel, operating-system, microkernel
OpenHarmony
华为鸿蒙分布式操作系统(Huawei OpenHarmony)开发技术交流,鸿蒙技术资料,手册,指南,共建国产操作系统万物互联新生态。
Stars: ✭ 373 (+1334.62%)
Mutual labels:  kernel, operating-system, microkernel
fpos
Free Pascal Operating System (FPOS) is a operating system consists of a minimal kernel built on FreePascal. It contains a Scheme implementation of a hard drive (ATA) driver, keyboard (PS2), serial (8250 UART), FAT32 filesystem and a small real time clock manager. The project was built to experiment with developement of operating system using a h…
Stars: ✭ 36 (+38.46%)
Mutual labels:  kernel, operating-system, microkernel
KnutOS
An x86_64 hobbyist OS written in C and Assembly
Stars: ✭ 16 (-38.46%)
Mutual labels:  kernel, operating-system
TravorOS
A simple OS running on Intel x86 architecture | No longer updating
Stars: ✭ 24 (-7.69%)
Mutual labels:  kernel, operating-system
kernel
My ongoing experimentation on operating system internals, aiming at providing a kernel to the FreeDOS-32 project.
Stars: ✭ 23 (-11.54%)
Mutual labels:  kernel, microkernel
NightOS
A highly secure, performant and robust operating system for the future 🌔 🚀
Stars: ✭ 15 (-42.31%)
Mutual labels:  operating-system, microkernel
scaraOS
A 32bit multiboot OS kernel for IA32 (PC/AT) systems.
Stars: ✭ 31 (+19.23%)
Mutual labels:  kernel, operating-system
flower
A learning OS
Stars: ✭ 50 (+92.31%)
Mutual labels:  kernel, operating-system
RocketOS
RocketOS is a Unix based OS that uses legacy BIOS and GRUB and is written in C17. It is being developed for educational purposes primarily, but it still is a serious project. It is currently in its infancy.
Stars: ✭ 23 (-11.54%)
Mutual labels:  kernel, operating-system
Fukuro
Simple microkernel (early stage)
Stars: ✭ 18 (-30.77%)
Mutual labels:  kernel, microkernel
SimpleOS
Operating System Coded in Assembly and C
Stars: ✭ 72 (+176.92%)
Mutual labels:  kernel, operating-system
GENADEV OS
An AArch64 hobbyist OS for the Raspberry Pi 3 B+
Stars: ✭ 14 (-46.15%)
Mutual labels:  kernel, operating-system
Sigma
Abandoned overcomplicated Microkernel using modern x86_64 features
Stars: ✭ 36 (+38.46%)
Mutual labels:  kernel, microkernel
CuriOS
Simple GUI based Operating System - Based upon my own Microcokernel, heavily inspired by the original 1980s AmigaOS (though somewhat simpler).
Stars: ✭ 32 (+23.08%)
Mutual labels:  operating-system, microkernel
infinity
A secure, modern and intelligent operative system
Stars: ✭ 27 (+3.85%)
Mutual labels:  kernel, operating-system
hermit-playground
A playground to build C/C++/Go/Fortran applications on top of RustyHermit
Stars: ✭ 13 (-50%)
Mutual labels:  kernel, operating-system
Methylenix
The operating system written in Rust
Stars: ✭ 32 (+23.08%)
Mutual labels:  kernel, operating-system
cxos
Operating System development experiment in Ada
Stars: ✭ 32 (+23.08%)
Mutual labels:  kernel, operating-system

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].