# 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.](gila_serial.png) ## Development Information on the build system, repo structure, features, configuration options, supported architectures, design philosophies, and more, is available in the [docs](docs/) folder. If you want to build Gila for yourself, consider reading [DEVELOPMENT.md](docs/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](LICENSE) for details. ## Credits The linker script stuff is from [limine-rust-template](https://github.com/jasondyoungberg/limine-rust-template), which is available under the BSD 0-Clause License.