zodiac 0.2.0

Rust OS framework that offers safe interfaces for kernel development
Documentation

Zodiac

Zodiac is a framework for framekernel, inspired by ostd

Usage

First, you need to add zodiac to your project's Cargo.toml file:

[dependencies]
zodiac = "0.1.0"

Then, you need a main function with the attribute #[zodiac::main] and a panic handler with the attribute #[zodiac::panic_handler]:

#[zodiac::main]
pub fn main() {
    // Your code here
}

#[zodiac::panic_handler]
pub fn panic_handler(info: &PanicInfo) -> ! {
    log::error!("panic: {}", info);
    loop {
        core::hint::spin_loop();
    }
}

And there are other necessary options, which are listed below:

  • allocator
  • scheduler

If you like, you can also specify the logger and the user page fault handler.

For more examples, please refer to racaOS.

Roadmap

  • Bootloader: limine
  • Memory Management
  • SMP
  • Interrupt handling
  • Multitask
  • Syscall
  • PCIe
  • MSI & MSI-X
  • IOMMU