A microkernel OS, written in Rust, and based on Xinu.
Go to file
shibedrill b6f9889c15
All checks were successful
Continuous Integration / Check (push) Successful in 2m26s
Continuous Integration / Rustfmt (push) Successful in 1m37s
Continuous Integration / Clippy (push) Successful in 2m5s
Continuous Integration / Build (x86_64) (push) Successful in 2m27s
CI: Fix missing target download
2025-07-23 01:45:03 -04:00
.cargo It boots! 2025-02-10 14:14:17 -05:00
.gitea/workflows CI: Fix missing target download 2025-07-23 01:45:03 -04:00
.vscode Replace Makefile 2025-05-07 19:01:21 -04:00
configs Reorganize documentation 2025-07-07 00:43:31 -04:00
docs Format: Display memory values in hex 2025-07-17 23:28:06 -04:00
src Clippy: Fix lints 2025-07-23 01:33:20 -04:00
.gitignore Replace Makefile 2025-05-07 19:01:21 -04:00
build.rs Reorganize, process capabilities 2025-03-13 00:28:50 -04:00
Cargo.lock Add image to README 2025-07-07 00:58:39 -04:00
Cargo.toml Add image to README 2025-07-07 00:58:39 -04:00
gila_serial.png Add image to README 2025-07-07 00:58:39 -04:00
LICENSE Added README and LICENSE 2025-02-09 20:59:44 -05:00
Makefile.toml Remove "prepare" from build dependencies for offline dev 2025-07-07 11:06:49 -04:00
README.md Add image to README 2025-07-07 00:58:39 -04:00
rust-toolchain.toml build tool stuff 2025-02-10 14:22:53 -05:00

Gila v0.3.1 - a Rust Microkernel

Gila is a Rust microkernel OS, inspired by the Xinu embedded OS, as well as Linux. I aim to implement multitasking and different users for processes, and eventually a filesystem. I do not aim to make it POSIX-compatible, but it will likely end up sharing many features with POSIX operating systems.

A screenshot of serial console output from Gila's boot process.

Development

Information on the build system, repo structure, features, configuration options, supported architectures, design philosophies, and more, is available in the docs folder. If you want to build Gila for yourself, consider reading DEVELOPMENT.md for explicit instructions.

Features

Complete

  • Builds for aarch64, riscv64, x86_64, and loongarch64
  • Valid Limine kernel
  • Boots on x86_64 (both UEFI and BIOS)
  • Kernel command line parameters
  • initramfs loading
  • Logging
    • Serial output

In-Progress

  • Display console
  • Serial console
  • Device discovery & APIs
  • Power management
  • Paging
  • initramfs decompression & manifest parsing

Future/Desired

  • Userspace binaries/processes
  • Interprocess communication
  • Driver server interface
  • Interrupts and timers
  • Context switching
  • Process scheduling
  • System calls (multi-convention?)
  • Capability access control
  • Simultaneous multiprocessing support
  • Hypervisor functionality

Additional Future Features (Userspace)

  • Device drivers
  • Filesystem drivers
  • Shell
  • Standard system API
  • Rust and C stdlib port
  • Display/windowing
  • Application sandboxing

Licensing

Licensed under the GNU Public License v3. See LICENSE for details.

Credits

The linker script stuff is from limine-rust-template, which is available under the BSD 0-Clause License.