gila/README.md
August 386852263a
All checks were successful
Continuous Integration / Check (push) Successful in 58s
Continuous Integration / Clippy (push) Successful in 1m6s
Remove unneeded CI jobs
2025-10-10 23:38:31 -04:00

65 lines
1.9 KiB
Markdown

# Gila v0.3.1 - a Rust Microkernel
Gila is a Rust microkernel OS, inspired by microkernel projects such as seL4 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.
![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
- 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](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.