A simple OS microkernel written in Rust, and designed for security and modularity.
Go to file
2026-07-03 03:10:49 +00:00
.cargo It boots! 2025-02-10 14:14:17 -05:00
.gitea/workflows Remove unneeded CI jobs 2025-10-10 23:38:31 -04:00
.vscode Formatting 2026-06-23 15:21:52 +00:00
configs Debugging triple fault 2026-07-03 03:09:37 +00:00
docs Initial userboot support 2026-06-30 21:25:33 +00:00
resources Initial userboot support 2026-06-30 21:25:33 +00:00
src Clippy fix 2026-07-03 03:10:49 +00:00
.envrc Formatting 2026-06-23 15:21:52 +00:00
.gitignore del log dir 2026-07-03 00:46:14 +00:00
build.rs shut up clippy 2026-06-30 21:27:27 +00:00
Cargo.lock Initial userboot support 2026-06-30 21:25:33 +00:00
Cargo.toml Initial userboot support 2026-06-30 21:25:33 +00:00
Dockerfile Toolchain file, dockerfile 2025-10-16 17:32:55 -04:00
LICENSE Relicense to MIT 2025-10-09 13:12:54 -04:00
Makefile.toml Debugging triple fault 2026-07-03 03:09:37 +00:00
README.md Initial userboot support 2026-06-30 21:25:33 +00:00
rust-toolchain.toml Toolchain file, dockerfile 2025-10-16 17:32:55 -04:00
shell.nix Try spawning a process (doesn't work) 2026-07-02 02:52:52 +00:00

Gila v0.4.0 - a Rust Microkernel

An illustrated Gila monster, and the text "Gila: A Minimal Rust Microkernel", superimposed over some serial log output.

Gila is a Rust microkernel OS, inspired by microkernel projects such as seL4, Zircon, and Redox. I aim to implement multitasking, userspace drivers, IPC, and sandboxing. I do not aim to make it POSIX-compatible, but it will likely end up sharing many features with POSIX operating systems. Its design philosophy is focused around simplicity, isolation, modularity, and minimal privilege.

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

  • Valid Limine kernel
  • Boots on x86_64 (both UEFI and BIOS)
  • Kernel command line parameters
  • initramfs loading
  • Logging
    • Serial output
  • Page table enumeration
  • Processor identification

In-Progress

  • Display console
  • Serial console
  • Paging

Future/Desired

  • Multi-architecture features
  • 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 MIT License. See LICENSE for details.

Credits

  • The linker script stuff is from limine-rust-template, which is available under the BSD 0-Clause License.
  • The Gila kernel mascot, Gilbert (prounounced "Hilbert"), was illustrated by @lilu-the-almighty on Tumblr.