This is a sketch of the orbital browser. Despite being called a browser this browser doesn't support HTML. It is better phrased as an 'app runner' with strong security.
This particular repo is arranges all the parts and attempts to bring up a whole system from those parts; this includes a multi-threaded kernel, a message system, dynamically loaded blobs and a simple user interface.
cargo run
-
Broker. This service runs at startup. This becomes a place where other services can register. Services are individual threads of execution that can receive and send messages (typically via the broker). The only way services can communicate with each other or with anything at all is via messages.
-
Messaging. There is a concept of a shared messaging namespace to allow services to talk to each other. The namespace is arranged (by convention) with some services mounted at canonical locations such as "/device/mouse".
-
Package Manager. Some services are built in, but other services can be fetched over the internet. There is a system for managing service revisions.
-
Factory. Services themselves are their own factories. Built-in services are built by hand at startup and are manually registered with the broker. Subsequent services can be instantiated by talking to existing services.
-
Security. There is security around each service instance.
-
Apps. Apps are collections of related services.
-
Manifest. Apps are described by manifests. Manifests define services and wires between services and security policies between each of the services as well.
-
Broker is started by hand.
-
Several core services are started by hand and registered with broker.
-
Rust side main() logic orders the scripting engine to run "boot.js"
-
App Runner. The boot.js logic passes a boot application manifest to an application runner / manager.
-
Boot Login. The boot manifest produces user interface (on the display service) and lets the user login to the desktop.
-
Desktop. The desktop produces a simple desktop that lets users fetch, start, stop and manage other apps.