Home

Chris Williams edited this page Nov 29, 2015 · 7 revisions
Clone this wiki locally

Welcome to the diosix wiki!

Herein lies the documentation for the diosix project. This will grow as the codebase grows and improves. Get in touch if you've got any suggestions or bright ideas.

Code tree

  • build – where the non-Rust toolchain's intermediary files are stored.
  • Cargo.toml – the Rust build system's configuration file.
  • platform – home of the hardware-specific source code.
    • x86 – the hardware-specific code for the 64-bit x86 port of diosix.
      • asm/multiboot_head.s – defines the MultiBoot 2 header, used by the GRUB boot loader to start the kernel.
      • asm/start32.s – low-level 32-bit code that performs preflight checks and initializes the system's memory management before jumping to start64.
      • asm/start64.s – low-level code running in 64-bit long mode that continues to bring up the system.
      • grub.cfg – the boot loader's configuration file for this kernel.
      • linker.ld – the linker script for gluing this kernel together.
      • makefile – the makefile for building and booting the kernel.
  • release – where the filesystem tree for the bootable ISO image is stored.
  • src – where the portable and non-portable Rust kernel code lives.
    • lib.rs – where kmain, the Rust kernel's entry point, is defined.
  • target – where the Rust toolchain's intermediary files are stored.

Internal APIs

Each of the platform ports can define their own internal API. These will probably be tweaked, improved and rewritten over time.

External API

None yet.