mercury-site/index.md

2.8 KiB

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 Rust1
  • Built mainly for ARM/RISC-V architecture
  • Not POSIX compatible
  • OCAP2 security, with an Actor based system
  • Well documented using rustdoc and mdBook
  • Microkernel3 with features being split into different crates & libraries
  • Full UTF-8 support, because it's 2023
  • Easy global configuration, NixOS/Guix style4
  • Build with 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 with Automated Tests and Fuzzing
  • 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
  • HMAC5 message verification
  • UUID identification with a petname system