gila/README.md

62 lines
1.8 KiB
Markdown

# 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](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.