mercury-site/index.md

63 lines
2.8 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.
## What's the Point?
There's already a great microkernel Rust operating system in development - [Redox]().
It's worked on by a ton of people and works well at this point, so what's the point in developing another one?
1. Because it's fun. This is really the main reason, it's really just because I want to do it.
2. For new ideas. While this OS may not take off, some of the ideas in it might. With it's separation, it makes parts of it easy to implement in other things and show implementations of the ideas.
## 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)