56 lines
2.3 KiB
Markdown
56 lines
2.3 KiB
Markdown
---
|
|
layout: default.liquid
|
|
---
|
|
# {{ site.title }}
|
|
|
|
## About
|
|
**Mercury** is going to be an Operating System with a radically unique and new design.
|
|
This includes being based around new ideas and features, sacrificing backwards compatibility for them.
|
|
|
|
## Main Features
|
|
- Written in **Rust**[^rust]
|
|
- Built mainly for **ARM**/**RISC-V** architecture
|
|
- Not **POSIX** compatible
|
|
- **OCAP**[^ocap] security, with an **Actor** based system
|
|
- Well documented using [rustdoc](https://doc.rust-lang.org/rustdoc) and [mdBook](https://rust-lang.github.io/mdBook/)
|
|
- **Microkernel**[^microkernel] with features being split into different `crates` & `libraries`
|
|
- Full **UTF-8** support, because it's *2023*
|
|
- Easy global configuration, **NixOS**/**Guix** style[^home]
|
|
- Build with [security](/security/) in mind from the start
|
|
- **Vulkan** rendering
|
|
- `serde` for serializing data into/from different formats
|
|
- Allows for easy message passing
|
|
- Store/read data in `bytes` easily
|
|
- Can use anything supported by `serde` for configuration
|
|
- [Comprehensive Testing](https://www.youtube.com/watch?v=2hXNd6x9sZs) with [Automated Tests](https://doc.rust-lang.org/book/ch11-00-testing.html) and [Fuzzing](https://lib.rs/crates/cargo-fuzz)
|
|
- **Async** & multithreaded
|
|
|
|
### GUI
|
|
- Using the same **Actor** system
|
|
- Accessibility as a priority
|
|
- Global styling & configuration
|
|
- Responsive and dynamic
|
|
- Full multimedia support
|
|
- Navigable fully by both mouse & keyboard
|
|
|
|
### Actors
|
|
#### Why?
|
|
- Work as an abstraction over any sort of data
|
|
- Allows for all systems to be able to work together, and use the same features
|
|
- Reduces work of implementation
|
|
#### Features
|
|
- Data verification with checksums
|
|
- **AES** encryption
|
|
- **HMAC**[^hmac] message verification
|
|
- **UUID** identification with a [petname](https://spritely.institute/static/papers/petnames.html) system
|
|
|
|
[^rust]: **Why?** Because I like writing in it, and it's memory safe
|
|
|
|
[^ocap]: [Object Capabilities](https://decentralized-id.com/web-standards/object-capabilities/)
|
|
|
|
[^microkernel]: [Redox | Microkernels](https://doc.redox-os.org/book/ch04-01-microkernels.html)
|
|
|
|
[^home]: [Guix | Keeping Ones Home Tidy](https://guix.gnu.org/blog/2022/keeping-ones-home-tidy/)
|
|
|
|
[^hmac]: [MAC and Key Derivation](https://cryptobook.nakov.com/mac-and-key-derivation)
|