65 lines
1.9 KiB
Markdown
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.
|
|
|
|

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