A microkernel operating system written in Rust, built for learning and experimentation.
CeltigarOS is a hobby operating system developed in Rust, inspired by the excellent Writing an OS in Rust tutorial series by Philipp Oppermann.
The primary goal of this project is to gain a deeper understanding of:
- Bare-metal development
- Operating system concepts
- The advantages and limitations of using Rust for OS development
This project is built from scratch with no standard library, targeting x86_64 architecture.
- ✅ Bare-metal kernel written in Rust
- ✅ Custom minimal bootloader using
bootimage - ✅ Runs on
qemu-system-x86_64 - ✅ Paging, memory management
- ✅ Cooperative multitasking
- 🚧 Preemptive Task scheduling, and system calls (in progress)
- 🧪 Unit and integration tests for kernel components
Before building CeltigarOS, make sure the following are installed on your system:
- Rust (nightly)
- QEMU (x86_64)
bootimageandllvm-tools-previewcomponents
-
Clone the Repository
git clone https://github.com/Turtel216/CeltigarOS.git cd CeltigarOS -
Install QEMU Follow the instructions for your platform: QEMU Installation Guide
-
Install Rust nightly toolchain
rustup install nightly rustup override set nightly rustup component add rust-src --toolchain nightly -
Install required components
cargo install bootimage rustup component add llvm-tools-preview
-
Build and run the OS
cargo run
-
Run tests
cargo test
CeltigarOS/
├── src/ # Kernel source code
├── Cargo.toml # Project manifest
└── .cargo/config.toml # Build target configuration
This is a personal learning project, but contributions, suggestions, or ideas are always welcome! Feel free to open issues or submit pull requests.
This project is licensed under the MIT License. See the LICENSE file for more details.