A microkernel OS, written in Rust, and based on Xinu.
|
||
---|---|---|
.cargo | ||
.gitea/workflows | ||
.vscode | ||
configs | ||
docs | ||
src | ||
.gitignore | ||
build.rs | ||
Cargo.lock | ||
Cargo.toml | ||
gila_serial.png | ||
LICENSE | ||
Makefile.toml | ||
README.md | ||
rust-toolchain.toml |
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.
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
, andloongarch64
- 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.